diff --git a/src/main/java/cn/citycraft/ItemMamager/ItemMamager.java b/src/main/java/cn/citycraft/ItemMamager/ItemMamager.java index f87ea02..58aff48 100644 --- a/src/main/java/cn/citycraft/ItemMamager/ItemMamager.java +++ b/src/main/java/cn/citycraft/ItemMamager/ItemMamager.java @@ -7,7 +7,7 @@ import org.bukkit.plugin.java.JavaPlugin; import cn.citycraft.ItemMamager.commands.BindCommand; import cn.citycraft.ItemMamager.listen.PlayerListen; -import cn.citycraft.PluginHelper.commands.HandlerCommand; +import cn.citycraft.PluginHelper.commands.HandlerSubCommand; /** * 物品管理器主类 @@ -20,7 +20,7 @@ public class ItemMamager extends JavaPlugin { @Override public void onEnable() { this.getServer().getPluginManager().registerEvents(new PlayerListen(this), this); - HandlerCommand cmdhandler = new HandlerCommand(this); + HandlerSubCommand cmdhandler = new HandlerSubCommand(this); cmdhandler.registerCommand(new BindCommand()); this.getCommand("im").setExecutor(cmdhandler); this.getCommand("im").setTabCompleter(cmdhandler); diff --git a/src/main/java/cn/citycraft/ItemMamager/commands/BindCommand.java b/src/main/java/cn/citycraft/ItemMamager/commands/BindCommand.java index 34ace0a..4f790e5 100644 --- a/src/main/java/cn/citycraft/ItemMamager/commands/BindCommand.java +++ b/src/main/java/cn/citycraft/ItemMamager/commands/BindCommand.java @@ -1,5 +1,6 @@ package cn.citycraft.ItemMamager.commands; +import org.bukkit.command.Command; import org.bukkit.command.CommandException; import org.bukkit.command.CommandSender; @@ -12,7 +13,7 @@ public class BindCommand extends BaseCommand { } @Override - public void execute(CommandSender sender, String label, String[] args) throws CommandException { + public void execute(CommandSender sender, Command command, String label, String[] args) throws CommandException { // TODO 自动生成的方法存根 } diff --git a/src/main/java/cn/citycraft/ItemMamager/manager/ItemHandler.java b/src/main/java/cn/citycraft/ItemMamager/manager/ItemHandler.java index da7372d..f5cb17d 100644 --- a/src/main/java/cn/citycraft/ItemMamager/manager/ItemHandler.java +++ b/src/main/java/cn/citycraft/ItemMamager/manager/ItemHandler.java @@ -7,6 +7,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import cn.citycraft.ItemMamager.utils.ItemUtil.MARK; import cn.citycraft.ItemMamager.utils.ItemUtil.TAG; /** @@ -31,6 +32,22 @@ public class ItemHandler { return false; } + public String getBindName(ItemStack itemStack) { + if (isBound(itemStack, TAG.TIME) || isBound(itemStack, TAG.TIMEBIND)) { + String mark = getMarkString(itemStack, MARK.BIND); + return MARK.BIND.clearMark(mark); + } + return null; + } + + public String getBindTime(ItemStack itemStack) { + if (isBound(itemStack, TAG.BIND) || isBound(itemStack, TAG.TIMEBIND)) { + String mark = getMarkString(itemStack, MARK.TIME); + return MARK.TIME.clearMark(mark); + } + return null; + } + public int getIndex(ItemStack itemStack, TAG tag) { if (!itemStack.hasItemMeta()) return -1; @@ -38,16 +55,33 @@ public class ItemHandler { if (!itemMeta.hasLore()) return -1; List lores = itemMeta.getLore(); - return lores.lastIndexOf(tag.getTag()); + return tag.getIndex(lores); + } + + public String getMarkString(ItemStack itemStack, MARK mark) { + if (!itemStack.hasItemMeta()) + return null; + ItemMeta itemMeta = itemStack.getItemMeta(); + if (!itemMeta.hasLore()) + return null; + List lores = itemMeta.getLore(); + for (int i = 0; i < lores.size(); i++) + if (mark.hasMark(lores.get(i))) + return lores.get(i); + return null; } public boolean isBound(ItemStack itemStack) { for (TAG tag : TAG.values()) - if (getIndex(itemStack, tag) != -1) + if (isBound(itemStack, tag)) return true; return false; } + public boolean isBound(ItemStack itemStack, TAG tag) { + return getIndex(itemStack, tag) != -1; + } + public boolean unbind(ItemStack itemStack) { return false; } diff --git a/src/main/java/cn/citycraft/ItemMamager/utils/GuiUtil.java b/src/main/java/cn/citycraft/ItemMamager/utils/GuiUtil.java new file mode 100644 index 0000000..4146626 --- /dev/null +++ b/src/main/java/cn/citycraft/ItemMamager/utils/GuiUtil.java @@ -0,0 +1,5 @@ +package cn.citycraft.ItemMamager.utils; + +public class GuiUtil { + +} diff --git a/src/main/java/cn/citycraft/ItemMamager/utils/ItemUtil.java b/src/main/java/cn/citycraft/ItemMamager/utils/ItemUtil.java index 1b64d19..464c3c2 100644 --- a/src/main/java/cn/citycraft/ItemMamager/utils/ItemUtil.java +++ b/src/main/java/cn/citycraft/ItemMamager/utils/ItemUtil.java @@ -17,28 +17,47 @@ public class ItemUtil { public enum BIND { PICKUP(ChatColor.DARK_RED + "拾取后绑定"), USE(ChatColor.DARK_RED + "使用后绑定"), - EQUIP(ChatColor.DARK_RED + "装备后绑定"); + EQUIP(ChatColor.DARK_RED + "装备后绑定"), - String tag; + TIME(ChatColor.DARK_RED + "有效期: "); - BIND(String tag) { - this.tag = tag; + String bind; + + BIND(String bind) { + this.bind = bind; + } + + public int getIndex(List lores) { + return lores.lastIndexOf(bind); + } + + public boolean isBind(List lores) { + return lores.lastIndexOf(bind) != -1; } } public enum MARK { - BIND("§b§m"), - TIME("§t§m"); + BIND(ChatColor.GOLD + "绑定玩家: "), + TIME(ChatColor.GOLD + "到期时间: "); - String tag; + String mark; - MARK(String tag) { - this.tag = tag; + MARK(String mark) { + this.mark = mark; } - public boolean isMark(String lore) { - return lore.startsWith(tag); + public String addMark(String lore) { + return mark + lore; } + + public String clearMark(String lore) { + return lore.replaceAll(mark, ""); + } + + public boolean hasMark(String lore) { + return lore.startsWith(mark); + } + } public enum STONE { @@ -46,18 +65,18 @@ public class ItemUtil { TIMEBIND(ChatColor.DARK_RED + "限时绑定石"), UNBIND(ChatColor.DARK_RED + "解绑石"); - String tag; + String stone; - STONE(String tag) { - this.tag = tag; + STONE(String stone) { + this.stone = stone; } public int getIndex(List lores) { - return lores.lastIndexOf(tag); + return lores.lastIndexOf(stone); } - public boolean is(List lores) { - return lores.lastIndexOf(tag) != -1; + public boolean isStone(List lores) { + return lores.lastIndexOf(stone) != -1; } } @@ -73,8 +92,12 @@ public class ItemUtil { this.tag = tag; } - public String getTag() { - return tag; + public int getIndex(List lores) { + return lores.lastIndexOf(tag); + } + + public boolean hasTag(List lores) { + return lores.lastIndexOf(tag) != -1; } }