API Improvements on PanelItem and Flags

Their respective builders now have default values
Flags get automatically registered once built
Added some convenience methods
This commit is contained in:
Florian CUNY 2018-01-28 13:31:07 +01:00
parent 2b434bf93a
commit 1d5b0ab8dd
4 changed files with 31 additions and 10 deletions

View File

@ -4,6 +4,7 @@ import java.util.Optional;
import org.bukkit.event.Listener;
import us.tastybento.bskyblock.BSkyBlock;
import us.tastybento.bskyblock.api.panels.PanelItem;
public class Flag {
@ -16,6 +17,7 @@ public class Flag {
this.id = id;
this.icon = icon;
this.listener = listener;
BSkyBlock.getInstance().getFlagsManager().registerFlag(this);
}
public String getID() {

View File

@ -11,8 +11,8 @@ import us.tastybento.bskyblock.api.panels.builders.PanelItemBuilder;
public class FlagBuilder {
private String id;
private PanelItem icon;
private String id = "";
private PanelItem icon = PanelItem.empty();
private Optional<Listener> listener = Optional.empty();
public FlagBuilder id(String id) {

View File

@ -3,15 +3,21 @@ package us.tastybento.bskyblock.api.panels;
import java.util.List;
import java.util.Optional;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import us.tastybento.bskyblock.api.commands.User;
import us.tastybento.bskyblock.api.panels.builders.PanelItemBuilder;
public class PanelItem {
public static PanelItem empty() {
return new PanelItemBuilder().build();
}
private ItemStack icon;
private Optional<ClickHandler> clickHandler;
private List<String> description;

View File

@ -1,20 +1,28 @@
package us.tastybento.bskyblock.api.panels.builders;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import us.tastybento.bskyblock.api.panels.PanelItem;
import us.tastybento.bskyblock.api.panels.PanelItem.ClickHandler;
public class PanelItemBuilder {
private ItemStack icon;
private String name;
private List<String> description;
private boolean glow;
private ItemStack icon = new ItemStack(Material.AIR);
private String name = "";
private List<String> description = new ArrayList<>();
private boolean glow = false;
private Optional<PanelItem.ClickHandler> clickHandler = Optional.empty();
public PanelItemBuilder icon(Material icon) {
this.icon = new ItemStack(icon);
return this;
}
public PanelItemBuilder icon(ItemStack icon) {
this.icon = icon;
return this;
@ -25,13 +33,18 @@ public class PanelItemBuilder {
return this;
}
public PanelItemBuilder description(List<String> list) {
this.description = list;
public PanelItemBuilder description(List<String> description) {
this.description = description;
return this;
}
public PanelItemBuilder description(String description2) {
this.description.add(description2);
public PanelItemBuilder description(String... description) {
Collections.addAll(this.description, description);
return this;
}
public PanelItemBuilder description(String description) {
this.description.add(description);
return this;
}