Dieser Commit ist enthalten in:
Ursprung
6915b52eef
Commit
239c7895ff
196
SpigotCore_Main/src/de/steamwar/inventory/BannerBuilder.java
Normale Datei
196
SpigotCore_Main/src/de/steamwar/inventory/BannerBuilder.java
Normale Datei
@ -0,0 +1,196 @@
|
|||||||
|
package de.steamwar.inventory;
|
||||||
|
|
||||||
|
import org.bukkit.DyeColor;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.block.banner.Pattern;
|
||||||
|
import org.bukkit.block.banner.PatternType;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.BannerMeta;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class BannerBuilder {
|
||||||
|
|
||||||
|
public static ItemStack createCross(DyeColor baseColor, DyeColor color) {
|
||||||
|
return new BannerBuilder(baseColor).addCross(color).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ItemStack createDiagonalCross(DyeColor baseColor, DyeColor color) {
|
||||||
|
return new BannerBuilder(baseColor).addDiagonalCross(color).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ItemStack createNumber(DyeColor baseColor, DyeColor color, int number) {
|
||||||
|
BannerBuilder builder = new BannerBuilder(baseColor);
|
||||||
|
switch (number) {
|
||||||
|
case 0:
|
||||||
|
builder.addZero(color);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
builder.addOne(color);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
builder.addTwo(color);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
builder.addThree(color);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
builder.addFour(color);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
builder.addFive(color);
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
builder.addSix(color);
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
builder.addSeven(color);
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
builder.addEight(color);
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
builder.addNine(color);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new IllegalArgumentException("Number must be between 0 and 9");
|
||||||
|
}
|
||||||
|
return builder.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private final BannerMeta meta;
|
||||||
|
private final ItemStack itemStack;
|
||||||
|
private final DyeColor baseColor;
|
||||||
|
|
||||||
|
public BannerBuilder(DyeColor baseColor) {
|
||||||
|
this.baseColor = baseColor;
|
||||||
|
itemStack = new ItemStack(Material.valueOf(baseColor.name() + "_BANNER"));
|
||||||
|
meta = (BannerMeta) itemStack.getItemMeta();
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBuilder addPattern(DyeColor color, PatternType patternType) {
|
||||||
|
meta.addPattern(new Pattern(color, patternType));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBuilder addCross(DyeColor color) {
|
||||||
|
addPattern(color, PatternType.STRAIGHT_CROSS);
|
||||||
|
addPattern(baseColor, PatternType.STRIPE_BOTTOM);
|
||||||
|
addPattern(baseColor, PatternType.STRIPE_TOP);
|
||||||
|
addPattern(baseColor, PatternType.STRIPE_LEFT);
|
||||||
|
return addPattern(baseColor, PatternType.STRIPE_RIGHT);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBuilder addDiagonalCross(DyeColor color) {
|
||||||
|
addPattern(color, PatternType.CROSS);
|
||||||
|
addPattern(baseColor, PatternType.STRIPE_BOTTOM);
|
||||||
|
addPattern(baseColor, PatternType.STRIPE_TOP);
|
||||||
|
addPattern(baseColor, PatternType.STRIPE_LEFT);
|
||||||
|
return addPattern(baseColor, PatternType.STRIPE_RIGHT);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBuilder addOne(DyeColor color) {
|
||||||
|
addPattern(color, PatternType.STRIPE_CENTER);
|
||||||
|
addPattern(color, PatternType.SQUARE_TOP_LEFT);
|
||||||
|
addPattern(baseColor, PatternType.CURLY_BORDER);
|
||||||
|
addPattern(color, PatternType.STRIPE_BOTTOM);
|
||||||
|
return addPattern(baseColor, PatternType.BORDER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBuilder addTwo(DyeColor color) {
|
||||||
|
addPattern(color, PatternType.STRIPE_TOP);
|
||||||
|
addPattern(baseColor, PatternType.CIRCLE_MIDDLE);
|
||||||
|
addPattern(color, PatternType.STRIPE_BOTTOM);
|
||||||
|
addPattern(color, PatternType.STRIPE_DOWNLEFT);
|
||||||
|
return addPattern(baseColor, PatternType.BORDER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBuilder addThree(DyeColor color) {
|
||||||
|
addPattern(color, PatternType.STRIPE_BOTTOM);
|
||||||
|
addPattern(color, PatternType.STRIPE_MIDDLE);
|
||||||
|
addPattern(color, PatternType.STRIPE_TOP);
|
||||||
|
addPattern(baseColor, PatternType.CURLY_BORDER);
|
||||||
|
addPattern(color, PatternType.STRIPE_RIGHT);
|
||||||
|
return addPattern(baseColor, PatternType.BORDER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBuilder addFour(DyeColor color) {
|
||||||
|
addPattern(color, PatternType.STRIPE_LEFT);
|
||||||
|
addPattern(baseColor, PatternType.STRIPE_BOTTOM);
|
||||||
|
addPattern(color, PatternType.STRIPE_RIGHT);
|
||||||
|
addPattern(color, PatternType.STRIPE_MIDDLE);
|
||||||
|
return addPattern(baseColor, PatternType.BORDER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBuilder addFive(DyeColor color) {
|
||||||
|
addPattern(color, PatternType.STRIPE_BOTTOM);
|
||||||
|
addPattern(baseColor, PatternType.RHOMBUS_MIDDLE);
|
||||||
|
addPattern(color, PatternType.STRIPE_TOP);
|
||||||
|
addPattern(color, PatternType.STRIPE_DOWNRIGHT);
|
||||||
|
return addPattern(baseColor, PatternType.BORDER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBuilder addSix(DyeColor color) {
|
||||||
|
addPattern(color, PatternType.STRIPE_BOTTOM);
|
||||||
|
addPattern(color, PatternType.STRIPE_RIGHT);
|
||||||
|
addPattern(baseColor, PatternType.HALF_HORIZONTAL);
|
||||||
|
addPattern(color, PatternType.STRIPE_MIDDLE);
|
||||||
|
addPattern(color, PatternType.STRIPE_TOP);
|
||||||
|
addPattern(color, PatternType.STRIPE_LEFT);
|
||||||
|
return addPattern(baseColor, PatternType.BORDER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBuilder addSeven(DyeColor color) {
|
||||||
|
addPattern(color, PatternType.STRIPE_DOWNLEFT);
|
||||||
|
addPattern(color, PatternType.STRIPE_TOP);
|
||||||
|
return addPattern(baseColor, PatternType.BORDER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBuilder addEight(DyeColor color) {
|
||||||
|
addPattern(color, PatternType.STRIPE_TOP);
|
||||||
|
addPattern(color, PatternType.STRIPE_LEFT);
|
||||||
|
addPattern(color, PatternType.STRIPE_MIDDLE);
|
||||||
|
addPattern(color, PatternType.STRIPE_BOTTOM);
|
||||||
|
addPattern(color, PatternType.STRIPE_RIGHT);
|
||||||
|
return addPattern(baseColor, PatternType.BORDER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBuilder addNine(DyeColor color) {
|
||||||
|
addPattern(color, PatternType.STRIPE_LEFT);
|
||||||
|
addPattern(baseColor, PatternType.HALF_HORIZONTAL_MIRROR);
|
||||||
|
addPattern(color, PatternType.STRIPE_MIDDLE);
|
||||||
|
addPattern(color, PatternType.STRIPE_TOP);
|
||||||
|
addPattern(color, PatternType.STRIPE_RIGHT);
|
||||||
|
addPattern(color, PatternType.STRIPE_BOTTOM);
|
||||||
|
return addPattern(baseColor, PatternType.BORDER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBuilder addZero(DyeColor color) {
|
||||||
|
addPattern(color, PatternType.STRIPE_BOTTOM);
|
||||||
|
addPattern(color, PatternType.STRIPE_LEFT);
|
||||||
|
addPattern(color, PatternType.STRIPE_TOP);
|
||||||
|
addPattern(color, PatternType.STRIPE_RIGHT);
|
||||||
|
addPattern(color, PatternType.STRIPE_DOWNLEFT);
|
||||||
|
return addPattern(baseColor, PatternType.BORDER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemMeta getMeta() {
|
||||||
|
return meta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBuilder setDisplayName(String name) {
|
||||||
|
meta.setDisplayName(name);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBuilder setLore(List<String> lore) {
|
||||||
|
meta.setLore(lore);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack build() {
|
||||||
|
itemStack.setItemMeta(meta);
|
||||||
|
return itemStack;
|
||||||
|
}
|
||||||
|
}
|
In neuem Issue referenzieren
Einen Benutzer sperren