Created
July 31, 2018 12:44
-
-
Save DiscowZombie/98a5c2873b39b871ee794292c05023ce to your computer and use it in GitHub Desktop.
BannerBuilder
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public BannerBuilder FRENCH_FLAG = new BannerBuilder() | |
| .data((byte) 15) | |
| .addPattern(new Pattern(DyeColor.BLUE, PatternType.STRIPE_LEFT)) | |
| .addPattern(new Pattern(DyeColor.RED, PatternType.STRIPE_RIGHT)); | |
| public BannerBuilder BRITISH_FLAG = new BannerBuilder() | |
| .data((byte)4) | |
| .addPattern(new Pattern(DyeColor.WHITE, PatternType.STRIPE_DOWNLEFT)) | |
| .addPattern(new Pattern(DyeColor.WHITE, PatternType.STRIPE_DOWNRIGHT)) | |
| .addPattern(new Pattern(DyeColor.WHITE, PatternType.STRIPE_CENTER)) | |
| .addPattern(new Pattern(DyeColor.WHITE, PatternType.STRIPE_MIDDLE)) | |
| .addPattern(new Pattern(DyeColor.RED, PatternType.CROSS)) | |
| .addPattern(new Pattern(DyeColor.RED, PatternType.STRAIGHT_CROSS)); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import org.bukkit.Material; | |
| import org.bukkit.block.banner.Pattern; | |
| import org.bukkit.enchantments.Enchantment; | |
| import org.bukkit.inventory.ItemStack; | |
| import org.bukkit.inventory.meta.BannerMeta; | |
| import java.util.ArrayList; | |
| import java.util.HashMap; | |
| import java.util.List; | |
| import java.util.Map; | |
| public class BannerBuilder { | |
| /** | |
| * @author Mathéo | DiscowZombie | |
| */ | |
| private Integer amount = 1; | |
| private byte data = 0; | |
| private String name = null; | |
| private List<String> lore = null; | |
| private Map<Enchantment, Integer> enchantments = null; | |
| private List<Pattern> patterns = null; | |
| public BannerBuilder() { | |
| } | |
| /** | |
| * @param | |
| * @return {@link ItemBuilder} | |
| */ | |
| public BannerBuilder amount(Integer amount) { | |
| this.amount = amount; | |
| return this; | |
| } | |
| /** | |
| * @param | |
| * @return {@link ItemBuilder} | |
| */ | |
| public BannerBuilder data(byte data) { | |
| this.data = data; | |
| return this; | |
| } | |
| /** | |
| * @param | |
| * @return {@link ItemBuilder} | |
| */ | |
| public BannerBuilder name(String name) { | |
| this.name = name; | |
| return this; | |
| } | |
| /** | |
| * @param | |
| * @return {@link ItemBuilder} | |
| */ | |
| public BannerBuilder lore(String... strings) { | |
| if (lore == null) { | |
| lore = new ArrayList<>(); | |
| } | |
| for (String s : strings) { | |
| if (s != null) { | |
| lore.add(s); | |
| } | |
| } | |
| return this; | |
| } | |
| /** | |
| * @param | |
| * @return {@link ItemBuilder} | |
| */ | |
| public BannerBuilder addEnchantment(Enchantment enchantment, Integer level) { | |
| if (this.enchantments == null) { | |
| this.enchantments = new HashMap<>(); | |
| } | |
| this.enchantments.put(enchantment, level); | |
| return this; | |
| } | |
| public BannerBuilder addPattern(Pattern pattern) { | |
| if (this.patterns == null) { | |
| patterns = new ArrayList<>(); | |
| } | |
| this.patterns.add(pattern); | |
| return this; | |
| } | |
| /** | |
| * @return {@link ItemStack} | |
| */ | |
| public ItemStack create() { | |
| ItemStack is = new ItemStack(Material.BANNER, amount, data); | |
| BannerMeta meta = (BannerMeta) is.getItemMeta(); | |
| if (name != null) { | |
| meta.setDisplayName(name); | |
| } | |
| if (lore != null) { | |
| meta.setLore(lore); | |
| } | |
| if (enchantments != null) { | |
| for (Map.Entry<Enchantment, Integer> m : enchantments.entrySet()) { | |
| meta.addEnchant(m.getKey(), m.getValue(), true); | |
| } | |
| } | |
| if (patterns != null) { | |
| meta.setPatterns(this.patterns); | |
| } | |
| is.setItemMeta(meta); | |
| return is; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment