From 1a6f2071dfbcb9149c4009f4ba8cc1cfe9b4339c Mon Sep 17 00:00:00 2001 From: CarmJos Date: Sun, 13 Mar 2022 17:31:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=8C=87=E4=BB=A4=E9=83=A8?= =?UTF-8?q?=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 30 ++-- pom.xml | 27 ++- .../plugin/commanditem/CommandItemAPI.java | 11 -- .../commanditem/command/CMDItemsCommand.java | 44 ----- .../command/ItemSettingsAdapter.java | 14 -- .../command/ItemSettingsCompleter.java | 18 -- .../configuration/PluginMessages.java | 31 ---- .../{commanditem => scriptitems}/Main.java | 33 ++-- .../plugin/scriptitems/ScriptItemsAPI.java | 26 +++ .../command/ScriptItemsCommand.java | 166 ++++++++++++++++++ .../configuration/PluginConfig.java | 2 +- .../configuration/PluginMessages.java | 76 ++++++++ .../database/DBConfiguration.java | 2 +- .../database/DBTables.java | 2 +- .../database/DataManager.java | 6 +- .../hooker/GHUpdateChecker.java | 2 +- .../item/ItemAction.java | 2 +- .../item/ItemActionGroup.java | 2 +- .../item/ItemActionType.java | 2 +- .../item/ItemExecuteResult.java | 2 +- .../item/ItemRestrictions.java | 4 +- .../item/ItemSettings.java | 9 +- .../item/ItemStackConfig.java | 2 +- .../item/ScriptItem.java} | 6 +- .../listener/ItemListener.java | 28 +-- .../manager/ConfigManager.java | 44 ++--- .../manager/ItemsManager.java | 18 +- .../util/DatabaseTable.java | 2 +- .../util/JarResourceUtils.java | 2 +- src/main/resources/PLUGIN_INFO | 9 +- src/main/resources/plugin.yml | 13 +- 31 files changed, 391 insertions(+), 244 deletions(-) delete mode 100644 src/main/java/cc/carm/plugin/commanditem/CommandItemAPI.java delete mode 100644 src/main/java/cc/carm/plugin/commanditem/command/CMDItemsCommand.java delete mode 100644 src/main/java/cc/carm/plugin/commanditem/command/ItemSettingsAdapter.java delete mode 100644 src/main/java/cc/carm/plugin/commanditem/command/ItemSettingsCompleter.java delete mode 100644 src/main/java/cc/carm/plugin/commanditem/configuration/PluginMessages.java rename src/main/java/cc/carm/plugin/{commanditem => scriptitems}/Main.java (64%) create mode 100644 src/main/java/cc/carm/plugin/scriptitems/ScriptItemsAPI.java create mode 100644 src/main/java/cc/carm/plugin/scriptitems/command/ScriptItemsCommand.java rename src/main/java/cc/carm/plugin/{commanditem => scriptitems}/configuration/PluginConfig.java (95%) create mode 100644 src/main/java/cc/carm/plugin/scriptitems/configuration/PluginMessages.java rename src/main/java/cc/carm/plugin/{commanditem => scriptitems}/database/DBConfiguration.java (97%) rename src/main/java/cc/carm/plugin/{commanditem => scriptitems}/database/DBTables.java (97%) rename src/main/java/cc/carm/plugin/{commanditem => scriptitems}/database/DataManager.java (93%) rename src/main/java/cc/carm/plugin/{commanditem => scriptitems}/hooker/GHUpdateChecker.java (96%) rename src/main/java/cc/carm/plugin/{commanditem => scriptitems}/item/ItemAction.java (96%) rename src/main/java/cc/carm/plugin/{commanditem => scriptitems}/item/ItemActionGroup.java (94%) rename src/main/java/cc/carm/plugin/{commanditem => scriptitems}/item/ItemActionType.java (98%) rename src/main/java/cc/carm/plugin/{commanditem => scriptitems}/item/ItemExecuteResult.java (82%) rename src/main/java/cc/carm/plugin/{commanditem => scriptitems}/item/ItemRestrictions.java (96%) rename src/main/java/cc/carm/plugin/{commanditem => scriptitems}/item/ItemSettings.java (93%) rename src/main/java/cc/carm/plugin/{commanditem => scriptitems}/item/ItemStackConfig.java (97%) rename src/main/java/cc/carm/plugin/{commanditem/item/CommandItem.java => scriptitems/item/ScriptItem.java} (75%) rename src/main/java/cc/carm/plugin/{commanditem => scriptitems}/listener/ItemListener.java (81%) rename src/main/java/cc/carm/plugin/{commanditem => scriptitems}/manager/ConfigManager.java (75%) rename src/main/java/cc/carm/plugin/{commanditem => scriptitems}/manager/ItemsManager.java (89%) rename src/main/java/cc/carm/plugin/{commanditem => scriptitems}/util/DatabaseTable.java (98%) rename src/main/java/cc/carm/plugin/{commanditem => scriptitems}/util/JarResourceUtils.java (98%) diff --git a/README.md b/README.md index 01800d6..ca2dd4c 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,18 @@ ```text - ___ _ ___ _ - / __|___ _ __ _ __ __ _ _ _ __| |_ _| |_ ___ _ __ -| (__/ _ \ ' \| ' \/ _` | ' \/ _` || || _/ -_) ' \ - \___\___/_|_|_|_|_|_\__,_|_||_\__,_|___|\__\___|_|_|_| + ____ _ __ ______ + / __/_______(_)__ / /_/ _/ /____ __ _ ___ + _\ \/ __/ __/ / _ \/ __// // __/ -_) ' \(_-< +/___/\__/_/ /_/ .__/\__/___/\__/\__/_/_/_/___/ + /_/ ``` -# CommandItem +# ScriptItems -[![workflow](https://github.com/CarmJos/CommandItem/actions/workflows/maven.yml/badge.svg?branch=master)](https://github.com/CarmJos/CommandItem/actions/workflows/maven.yml) +[![workflow](https://github.com/CarmJos/ScriptItems/actions/workflows/maven.yml/badge.svg?branch=master)](https://github.com/CarmJos/ScriptItems/actions/workflows/maven.yml) ![Support](https://img.shields.io/badge/Minecraft-Java%201.12--Latest-yellow) -![](https://visitor-badge.glitch.me/badge?page_id=CommandItem.readme) +![](https://visitor-badge.glitch.me/badge?page_id=ScriptItems.readme) -物品指令绑定插件,给予玩家可执行对应指令的消耗物品,基于EasyPlugin实现。 +脚本物品插件,给予玩家可执行对应操作的物品,基于EasyPlugin实现。 ## 插件功能与优势 @@ -45,32 +46,35 @@ 详见源文件。 -### 消息配置文件 ([messages.yml](src/main/java/cc/carm/plugin/commanditem/configuration/PluginMessages.java)) +### 消息配置文件 ([messages.yml](src/main/java/cc/carm/plugin/scriptitems/configuration/PluginMessages.java)) 详见代码源文件,将在首次启动时生成配置。 ## 插件指令 -插件主指令为 `/CommandItem`,所需权限为 `CommandItem.admin`。 +插件主指令为 `/ScriptItems`,所需权限为 `ScriptItems.admin`。 ```text # help - 查看插件帮助 -# give <玩家> <物品ID> <数量> +# reload +- 重载插件配置文件。 + +# give <玩家> <物品ID> [数量(默认为1)] - 给予指定玩家指定数量的物品。 # apply <物品ID> - 为手中的物品直接绑定一个配置。 -# details <物品ID> +# info <物品ID> - 查看物品的发放与领取情况。 ``` ## 使用统计 -[![bStats](https://bstats.org/signatures/bukkit/CommandItem.svg)](https://bstats.org/plugin/bukkit/CommandItem/14560) +[![bStats](https://bstats.org/signatures/bukkit/ScriptItems.svg)](https://bstats.org/plugin/bukkit/ScriptItems/14615) ## 支持与捐赠 diff --git a/pom.xml b/pom.xml index 13ad780..7e276a6 100644 --- a/pom.xml +++ b/pom.xml @@ -13,25 +13,25 @@ cc.carm.plugin - commanditem + scriptitems 0.1.0-SNAPSHOT - CommandItem - 物品指令绑定插件,给予玩家可执行对应指令的消耗物品,基于EasyPlugin实现。 - https://github.com/CarmJos/CommandItem + ScriptItems + 物品操作绑定插件,给予玩家可执行对应操作的物品,基于EasyPlugin实现。 + https://github.com/CarmJos/ScriptItems GitHub Issues - https://github.com/CarmJos/CommandItem/issues + https://github.com/CarmJos/ScriptItems/issues GitHub Actions - https://github.com/CarmJos/CommandItem/actions/workflows/maven.yml + https://github.com/CarmJos/ScriptItems/actions/workflows/maven.yml - https://github.com/CarmJos/CommandItem/releases + https://github.com/CarmJos/ScriptItems/releases @@ -111,13 +111,6 @@ true - - com.github.SaiintBrisson.command-framework - bukkit - 1.3.0 - compile - - org.spigotmc spigot-api @@ -241,15 +234,15 @@ cc.carm.lib - cc.carm.plugin.commanditem.lib + cc.carm.plugin.scriptitems.lib org.bstats - cc.carm.plugin.commanditem.lib.bstats + cc.carm.plugin.scriptitems.lib.bstats org.json - cc.carm.plugin.commanditem.lib.json + cc.carm.plugin.scriptitems.lib.json diff --git a/src/main/java/cc/carm/plugin/commanditem/CommandItemAPI.java b/src/main/java/cc/carm/plugin/commanditem/CommandItemAPI.java deleted file mode 100644 index fe3d5a1..0000000 --- a/src/main/java/cc/carm/plugin/commanditem/CommandItemAPI.java +++ /dev/null @@ -1,11 +0,0 @@ -package cc.carm.plugin.commanditem; - -import cc.carm.plugin.commanditem.manager.ItemsManager; - -public class CommandItemAPI { - - public static ItemsManager getItemsManager() { - return Main.getInstance().itemsManager; - } - -} diff --git a/src/main/java/cc/carm/plugin/commanditem/command/CMDItemsCommand.java b/src/main/java/cc/carm/plugin/commanditem/command/CMDItemsCommand.java deleted file mode 100644 index b4eb75a..0000000 --- a/src/main/java/cc/carm/plugin/commanditem/command/CMDItemsCommand.java +++ /dev/null @@ -1,44 +0,0 @@ -package cc.carm.plugin.commanditem.command; - -import cc.carm.plugin.commanditem.item.ItemSettings; -import me.saiintbrisson.minecraft.command.annotation.Command; -import me.saiintbrisson.minecraft.command.annotation.Completer; -import me.saiintbrisson.minecraft.command.command.Context; -import me.saiintbrisson.minecraft.command.target.CommandTarget; -import org.bukkit.Material; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; - - -public class CMDItemsCommand { - - @Command( - name = "commanditem", aliases = "cmdItem", - description = "CommandItem的主要指令。", - usage = "/CommandItem help", - permission = "CommandItem.admin" - ) - public void main(Context sender) { - help(sender); - } - - @Command(name = "commanditem.help") - public void help(Context sender) { - sender.getSender().sendMessage("§a§lCommandItem §f§l指令帮助"); - } - - @Command(name = "commanditem.apply", target = CommandTarget.PLAYER) - @Completer(name = "settings") - public void apply(Context sender, - ItemSettings settings) { - Player player = sender.getSender(); - if (player.getInventory().getItemInMainHand().getType() != Material.AIR) { - ItemStack applied = settings.applyItem(player.getInventory().getItemInMainHand()); - player.getInventory().setItemInMainHand(applied); - } - player.sendMessage("应用成功"); - } - - -} diff --git a/src/main/java/cc/carm/plugin/commanditem/command/ItemSettingsAdapter.java b/src/main/java/cc/carm/plugin/commanditem/command/ItemSettingsAdapter.java deleted file mode 100644 index 6ebbf65..0000000 --- a/src/main/java/cc/carm/plugin/commanditem/command/ItemSettingsAdapter.java +++ /dev/null @@ -1,14 +0,0 @@ -package cc.carm.plugin.commanditem.command; - -import cc.carm.plugin.commanditem.CommandItemAPI; -import cc.carm.plugin.commanditem.item.ItemSettings; -import me.saiintbrisson.minecraft.command.argument.TypeAdapter; - -public class ItemSettingsAdapter implements TypeAdapter { - - @Override - public ItemSettings convert(String s) { - return CommandItemAPI.getItemsManager().getItemSettings(s); - } - -} diff --git a/src/main/java/cc/carm/plugin/commanditem/command/ItemSettingsCompleter.java b/src/main/java/cc/carm/plugin/commanditem/command/ItemSettingsCompleter.java deleted file mode 100644 index fa6fc76..0000000 --- a/src/main/java/cc/carm/plugin/commanditem/command/ItemSettingsCompleter.java +++ /dev/null @@ -1,18 +0,0 @@ -package cc.carm.plugin.commanditem.command; - -import cc.carm.plugin.commanditem.CommandItemAPI; -import me.saiintbrisson.minecraft.command.command.Context; -import me.saiintbrisson.minecraft.command.executor.CompleterExecutor; -import org.bukkit.command.CommandSender; - -import java.util.ArrayList; -import java.util.List; - -public class ItemSettingsCompleter implements CompleterExecutor { - - @Override - public List execute(Context context) { - return new ArrayList<>(CommandItemAPI.getItemsManager().listItemSettings().keySet()); - } - -} diff --git a/src/main/java/cc/carm/plugin/commanditem/configuration/PluginMessages.java b/src/main/java/cc/carm/plugin/commanditem/configuration/PluginMessages.java deleted file mode 100644 index 8ddd53b..0000000 --- a/src/main/java/cc/carm/plugin/commanditem/configuration/PluginMessages.java +++ /dev/null @@ -1,31 +0,0 @@ -package cc.carm.plugin.commanditem.configuration; - - -import cc.carm.lib.easyplugin.configuration.language.EasyMessageList; -import cc.carm.lib.easyplugin.configuration.language.MessagesRoot; - -public class PluginMessages extends MessagesRoot { - - - public final static EasyMessageList COOLDOWN = EasyMessageList.builder() - .contents("&f您需要等待 &c%(time)秒 &f才可再次使用指令物品。") - .params("time").build(); - - public static class Restrictions { - - public final static EasyMessageList INVALID = EasyMessageList.builder() - .contents("&c&l抱歉!&f由于配置的时间限制错误,该物品目前暂不可用。") - .build(); - - public final static EasyMessageList NOT_STARTED = EasyMessageList.builder() - .contents("&f该物品目前还到可使用的时间,请在 &c%(time) &f后使用~") - .params("time") - .build(); - - public final static EasyMessageList EXPIRED = EasyMessageList.builder() - .contents("&c&l抱歉!&f由于该物品已过最后使用期限,故无法继续使用。") - .params("time") - .build(); - } - -} diff --git a/src/main/java/cc/carm/plugin/commanditem/Main.java b/src/main/java/cc/carm/plugin/scriptitems/Main.java similarity index 64% rename from src/main/java/cc/carm/plugin/commanditem/Main.java rename to src/main/java/cc/carm/plugin/scriptitems/Main.java index e0c574e..42a7def 100644 --- a/src/main/java/cc/carm/plugin/commanditem/Main.java +++ b/src/main/java/cc/carm/plugin/scriptitems/Main.java @@ -1,19 +1,14 @@ -package cc.carm.plugin.commanditem; +package cc.carm.plugin.scriptitems; import cc.carm.lib.easyplugin.EasyPlugin; import cc.carm.lib.easyplugin.i18n.EasyPluginMessageProvider; -import cc.carm.plugin.commanditem.command.CMDItemsCommand; -import cc.carm.plugin.commanditem.command.ItemSettingsAdapter; -import cc.carm.plugin.commanditem.command.ItemSettingsCompleter; -import cc.carm.plugin.commanditem.configuration.PluginConfig; -import cc.carm.plugin.commanditem.hooker.GHUpdateChecker; -import cc.carm.plugin.commanditem.item.ItemSettings; -import cc.carm.plugin.commanditem.listener.ItemListener; -import cc.carm.plugin.commanditem.manager.ConfigManager; -import cc.carm.plugin.commanditem.manager.ItemsManager; -import cc.carm.plugin.commanditem.util.JarResourceUtils; -import me.saiintbrisson.bukkit.command.BukkitFrame; -import me.saiintbrisson.bukkit.command.executor.BukkitSchedulerExecutor; +import cc.carm.plugin.scriptitems.command.ScriptItemsCommand; +import cc.carm.plugin.scriptitems.configuration.PluginConfig; +import cc.carm.plugin.scriptitems.hooker.GHUpdateChecker; +import cc.carm.plugin.scriptitems.listener.ItemListener; +import cc.carm.plugin.scriptitems.manager.ConfigManager; +import cc.carm.plugin.scriptitems.manager.ItemsManager; +import cc.carm.plugin.scriptitems.util.JarResourceUtils; import org.bstats.bukkit.Metrics; import org.bukkit.Bukkit; @@ -32,13 +27,15 @@ public class Main extends EasyPlugin { return instance; } + protected ConfigManager configManager; protected ItemsManager itemsManager; @Override protected boolean initialize() { info("加载配置文件..."); - if (!ConfigManager.initConfig()) { + this.configManager = new ConfigManager(this); + if (!configManager.initConfig()) { severe("配置文件初始化失败,请检查。"); setEnabled(false); return false; @@ -49,18 +46,14 @@ public class Main extends EasyPlugin { this.itemsManager.initialize(); info("注册指令..."); - BukkitFrame frame = new BukkitFrame(this); - frame.setExecutor(new BukkitSchedulerExecutor(this)); - frame.registerAdapter(ItemSettings.class, new ItemSettingsAdapter()); - frame.registerCommands(new CMDItemsCommand()); - frame.registerCompleter("commanditem.apply", new ItemSettingsCompleter()); + registerCommand("ScriptItems", new ScriptItemsCommand()); info("注册监听器..."); regListener(new ItemListener()); if (PluginConfig.METRICS.get()) { info("启用统计数据..."); - new Metrics(this, 14560); + new Metrics(this, 14615); } if (PluginConfig.CHECK_UPDATE.get()) { diff --git a/src/main/java/cc/carm/plugin/scriptitems/ScriptItemsAPI.java b/src/main/java/cc/carm/plugin/scriptitems/ScriptItemsAPI.java new file mode 100644 index 0000000..ec500d4 --- /dev/null +++ b/src/main/java/cc/carm/plugin/scriptitems/ScriptItemsAPI.java @@ -0,0 +1,26 @@ +package cc.carm.plugin.scriptitems; + +import cc.carm.plugin.scriptitems.manager.ConfigManager; +import cc.carm.plugin.scriptitems.manager.ItemsManager; +import org.bukkit.Material; +import org.bukkit.entity.Player; + +import java.util.stream.IntStream; + +public class ScriptItemsAPI { + + public static ItemsManager getItemsManager() { + return Main.getInstance().itemsManager; + } + + public static ConfigManager getConfigManager() { + return Main.getInstance().configManager; + } + + public static boolean hasEmptySlot(Player player) { + return IntStream.range(0, 36) + .mapToObj(i -> player.getInventory().getItem(i)) + .anyMatch(i -> i == null || i.getType() == Material.AIR); + } + +} diff --git a/src/main/java/cc/carm/plugin/scriptitems/command/ScriptItemsCommand.java b/src/main/java/cc/carm/plugin/scriptitems/command/ScriptItemsCommand.java new file mode 100644 index 0000000..37874e2 --- /dev/null +++ b/src/main/java/cc/carm/plugin/scriptitems/command/ScriptItemsCommand.java @@ -0,0 +1,166 @@ +package cc.carm.plugin.scriptitems.command; + +import cc.carm.plugin.scriptitems.ScriptItemsAPI; +import cc.carm.plugin.scriptitems.configuration.PluginMessages; +import cc.carm.plugin.scriptitems.item.ItemSettings; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.util.StringUtil; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.stream.Collectors; + + +public class ScriptItemsCommand implements CommandExecutor, TabCompleter { + + + @Override + public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, + @NotNull String alias, @NotNull String[] args) { + if (args.length >= 1) { + String aim = args[0]; + if (aim.equalsIgnoreCase("reload")) { + try { + ScriptItemsAPI.getConfigManager().reload(); + sender.sendMessage("配置文件重载完成!"); + } catch (Exception e) { + sender.sendMessage("配置文件重载失败!"); + e.printStackTrace(); + } + return true; + } else if (aim.equalsIgnoreCase("apply")) { + if (args.length < 2) { + PluginMessages.USAGE.send(sender); + return true; + } + + if (!(sender instanceof Player)) { + PluginMessages.ONLY_PLAYER.send(sender); + return true; + } + + ItemSettings settings = ScriptItemsAPI.getItemsManager().getItemSettings(args[1]); + if (settings == null) { + PluginMessages.NOT_EXISTS.send(sender); + return true; + } + + Player player = (Player) sender; + ItemStack item = player.getInventory().getItemInMainHand(); + if (item.getType() == Material.AIR) { + PluginMessages.USE_ITEM.send(sender); + return true; + } + + ItemStack after = settings.applyItem(item); + player.getInventory().setItemInMainHand(after); + PluginMessages.APPLIED.send(sender); + + return true; + } else if (aim.equalsIgnoreCase("give")) { + + if (args.length < 3) { + PluginMessages.USAGE.send(sender); + return true; + } + + Player player = Bukkit.getPlayer(args[1]); + + if (player == null) { + PluginMessages.NOT_ONLINE.send(sender); + return true; + } + + ItemSettings settings = ScriptItemsAPI.getItemsManager().getItemSettings(args[2]); + if (settings == null) { + PluginMessages.NOT_EXISTS.send(sender); + return true; + } + + int amount = 1; + if (args.length >= 4) { + try { + amount = Integer.parseInt(args[3]); + } catch (Exception ignored) { + amount = -1; + } + } + if (amount < 1) { + PluginMessages.WRONG_AMOUNT.send(sender); + return true; + } + + ItemStack item = settings.generateItem(amount); + if (item == null) { + PluginMessages.WRONG_ITEM.send(sender); + return true; + } + + HashMap remain = player.getInventory().addItem(item); + if (remain.isEmpty()) { + PluginMessages.GIVEN_ALL.send(sender, player, item.getAmount(), settings.getName()); + } else { + int remainAmount = remain.values().stream().mapToInt(ItemStack::getAmount).sum(); + PluginMessages.GIVEN_SOME.send(sender, player, item.getAmount() - remainAmount, settings.getName(), remainAmount); + } + + return true; + } else { + PluginMessages.USAGE.send(sender); + return true; + } + } else { + PluginMessages.USAGE.send(sender); + return true; + } + } + + + @Nullable + @Override + public List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, + @NotNull String alias, @NotNull String[] args) { + List allCompletes = new ArrayList<>(); + switch (args.length) { + case 1: { + allCompletes.add("help"); + allCompletes.add("give"); + if (sender instanceof Player) allCompletes.add("apply"); + allCompletes.add("reload"); + break; + } + case 2: { + String aim = args[args.length - 1]; + if (aim.equalsIgnoreCase("give")) { + allCompletes = Bukkit.getOnlinePlayers().stream().map(HumanEntity::getName).collect(Collectors.toList()); + } else if (aim.equalsIgnoreCase("apply")) { + allCompletes = new ArrayList<>(ScriptItemsAPI.getItemsManager().listItemSettings().keySet()); + } + break; + } + case 3: { + String aim = args[args.length - 1]; + if (aim.equalsIgnoreCase("give")) { + allCompletes = new ArrayList<>(ScriptItemsAPI.getItemsManager().listItemSettings().keySet()); + } + break; + } + } + + return allCompletes.stream() + .filter(s -> StringUtil.startsWithIgnoreCase(s, args[args.length - 1])) + .limit(10).collect(Collectors.toList()); + } + +} diff --git a/src/main/java/cc/carm/plugin/commanditem/configuration/PluginConfig.java b/src/main/java/cc/carm/plugin/scriptitems/configuration/PluginConfig.java similarity index 95% rename from src/main/java/cc/carm/plugin/commanditem/configuration/PluginConfig.java rename to src/main/java/cc/carm/plugin/scriptitems/configuration/PluginConfig.java index b4428fd..687c702 100644 --- a/src/main/java/cc/carm/plugin/commanditem/configuration/PluginConfig.java +++ b/src/main/java/cc/carm/plugin/scriptitems/configuration/PluginConfig.java @@ -1,4 +1,4 @@ -package cc.carm.plugin.commanditem.configuration; +package cc.carm.plugin.scriptitems.configuration; import cc.carm.lib.easyplugin.configuration.values.ConfigValue; diff --git a/src/main/java/cc/carm/plugin/scriptitems/configuration/PluginMessages.java b/src/main/java/cc/carm/plugin/scriptitems/configuration/PluginMessages.java new file mode 100644 index 0000000..225bb4f --- /dev/null +++ b/src/main/java/cc/carm/plugin/scriptitems/configuration/PluginMessages.java @@ -0,0 +1,76 @@ +package cc.carm.plugin.scriptitems.configuration; + + +import cc.carm.lib.easyplugin.configuration.language.EasyMessageList; +import cc.carm.lib.easyplugin.configuration.language.MessagesRoot; + +public class PluginMessages extends MessagesRoot { + + public static final EasyMessageList USAGE = EasyMessageList.builder().contents( + "&2&l脚本指令 &f指令帮助", + "&8#&f give &a<玩家名> &a<箱子ID> &2[数量]", + "&8-&7 给予指定玩家指定数量的物品。", + "&8#&f apply &a<箱子ID>", + "&8-&7 为手中的物品直接绑定一个配置。", + "&8#&f reload", + "&8-&7 重载配置文件。" + ).build(); + + + public final static EasyMessageList COOLDOWN = EasyMessageList.builder() + .contents("&f您需要等待 &c%(time)秒 &f才可再次使用该物品。") + .params("time").build(); + + public final static EasyMessageList ONLY_PLAYER = EasyMessageList.builder() + .contents("&c抱歉,只有作为玩家时才能使用该指令。").build(); + + public final static EasyMessageList USE_ITEM = EasyMessageList.builder() + .contents("&f请手持任意物品后再使用该指令。").build(); + + public final static EasyMessageList NOT_ONLINE = EasyMessageList.builder() + .contents("&f玩家 &a%(player) &f并不在线。") + .params("player").build(); + + public final static EasyMessageList NOT_EXISTS = EasyMessageList.builder() + .contents("&f脚本配置 &a%(id) &f并不存在。") + .params("id").build(); + + public final static EasyMessageList WRONG_AMOUNT = EasyMessageList.builder() + .contents("&f请输入正确的数量!") + .build(); + + public final static EasyMessageList WRONG_ITEM = EasyMessageList.builder() + .contents("&f该脚本并未成功配置具体物品,请使用 &a/ScriptItems apply &f来绑定到指定物品上,或在配置文件中正确配置物品。") + .build(); + + public final static EasyMessageList GIVEN_ALL = EasyMessageList.builder() + .contents("&f您成功给予 &a%(player) &f了 &a%(amount) &f个 &a%(item) &f。") + .params("player", "amount", "item").build(); + + public final static EasyMessageList GIVEN_SOME = EasyMessageList.builder().contents( + "&f您成功给予 &a%(player) &f了 &a%(amount) &f个 &a%(item) &f。", + "&f但由于目标玩家背包已满,仍有 &a%(remain) &f个 &a%(item) &f未成功放入背包。" + ).params("player", "amount", "item", "remain").build(); + + + public final static EasyMessageList APPLIED = EasyMessageList.builder() + .contents("&f已成功为手上物品绑定脚本。").build(); + + public static class Restrictions { + + public final static EasyMessageList INVALID = EasyMessageList.builder() + .contents("&c&l抱歉!&f由于配置的时间限制错误,该物品目前暂不可用。") + .build(); + + public final static EasyMessageList NOT_STARTED = EasyMessageList.builder() + .contents("&f该物品目前还到可使用的时间,请在 &c%(time) &f后使用~") + .params("time") + .build(); + + public final static EasyMessageList EXPIRED = EasyMessageList.builder() + .contents("&c&l抱歉!&f由于该物品已过最后使用期限,故无法继续使用。") + .params("time") + .build(); + } + +} diff --git a/src/main/java/cc/carm/plugin/commanditem/database/DBConfiguration.java b/src/main/java/cc/carm/plugin/scriptitems/database/DBConfiguration.java similarity index 97% rename from src/main/java/cc/carm/plugin/commanditem/database/DBConfiguration.java rename to src/main/java/cc/carm/plugin/scriptitems/database/DBConfiguration.java index d5abbbc..22b25a9 100644 --- a/src/main/java/cc/carm/plugin/commanditem/database/DBConfiguration.java +++ b/src/main/java/cc/carm/plugin/scriptitems/database/DBConfiguration.java @@ -1,4 +1,4 @@ -package cc.carm.plugin.commanditem.database; +package cc.carm.plugin.scriptitems.database; import cc.carm.lib.easyplugin.configuration.values.ConfigValue; diff --git a/src/main/java/cc/carm/plugin/commanditem/database/DBTables.java b/src/main/java/cc/carm/plugin/scriptitems/database/DBTables.java similarity index 97% rename from src/main/java/cc/carm/plugin/commanditem/database/DBTables.java rename to src/main/java/cc/carm/plugin/scriptitems/database/DBTables.java index c754d18..a60d391 100644 --- a/src/main/java/cc/carm/plugin/commanditem/database/DBTables.java +++ b/src/main/java/cc/carm/plugin/scriptitems/database/DBTables.java @@ -1,4 +1,4 @@ -package cc.carm.plugin.commanditem.database; +package cc.carm.plugin.scriptitems.database; import cc.carm.lib.easyplugin.configuration.values.ConfigValue; diff --git a/src/main/java/cc/carm/plugin/commanditem/database/DataManager.java b/src/main/java/cc/carm/plugin/scriptitems/database/DataManager.java similarity index 93% rename from src/main/java/cc/carm/plugin/commanditem/database/DataManager.java rename to src/main/java/cc/carm/plugin/scriptitems/database/DataManager.java index 2354983..b41c7eb 100644 --- a/src/main/java/cc/carm/plugin/commanditem/database/DataManager.java +++ b/src/main/java/cc/carm/plugin/scriptitems/database/DataManager.java @@ -1,9 +1,9 @@ -package cc.carm.plugin.commanditem.database; +package cc.carm.plugin.scriptitems.database; import cc.carm.lib.easysql.EasySQL; import cc.carm.lib.easysql.api.SQLManager; -import cc.carm.plugin.commanditem.Main; -import cc.carm.plugin.commanditem.util.DatabaseTable; +import cc.carm.plugin.scriptitems.Main; +import cc.carm.plugin.scriptitems.util.DatabaseTable; import java.sql.SQLException; diff --git a/src/main/java/cc/carm/plugin/commanditem/hooker/GHUpdateChecker.java b/src/main/java/cc/carm/plugin/scriptitems/hooker/GHUpdateChecker.java similarity index 96% rename from src/main/java/cc/carm/plugin/commanditem/hooker/GHUpdateChecker.java rename to src/main/java/cc/carm/plugin/scriptitems/hooker/GHUpdateChecker.java index 576c8bc..84d2d5c 100644 --- a/src/main/java/cc/carm/plugin/commanditem/hooker/GHUpdateChecker.java +++ b/src/main/java/cc/carm/plugin/scriptitems/hooker/GHUpdateChecker.java @@ -1,4 +1,4 @@ -package cc.carm.plugin.commanditem.hooker; +package cc.carm.plugin.scriptitems.hooker; import cc.carm.lib.githubreleases4j.GithubReleases4J; diff --git a/src/main/java/cc/carm/plugin/commanditem/item/ItemAction.java b/src/main/java/cc/carm/plugin/scriptitems/item/ItemAction.java similarity index 96% rename from src/main/java/cc/carm/plugin/commanditem/item/ItemAction.java rename to src/main/java/cc/carm/plugin/scriptitems/item/ItemAction.java index 6aba250..aca5475 100644 --- a/src/main/java/cc/carm/plugin/commanditem/item/ItemAction.java +++ b/src/main/java/cc/carm/plugin/scriptitems/item/ItemAction.java @@ -1,4 +1,4 @@ -package cc.carm.plugin.commanditem.item; +package cc.carm.plugin.scriptitems.item; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/cc/carm/plugin/commanditem/item/ItemActionGroup.java b/src/main/java/cc/carm/plugin/scriptitems/item/ItemActionGroup.java similarity index 94% rename from src/main/java/cc/carm/plugin/commanditem/item/ItemActionGroup.java rename to src/main/java/cc/carm/plugin/scriptitems/item/ItemActionGroup.java index 51a2d56..e45ae80 100644 --- a/src/main/java/cc/carm/plugin/commanditem/item/ItemActionGroup.java +++ b/src/main/java/cc/carm/plugin/scriptitems/item/ItemActionGroup.java @@ -1,4 +1,4 @@ -package cc.carm.plugin.commanditem.item; +package cc.carm.plugin.scriptitems.item; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/cc/carm/plugin/commanditem/item/ItemActionType.java b/src/main/java/cc/carm/plugin/scriptitems/item/ItemActionType.java similarity index 98% rename from src/main/java/cc/carm/plugin/commanditem/item/ItemActionType.java rename to src/main/java/cc/carm/plugin/scriptitems/item/ItemActionType.java index 2155d69..21933c9 100644 --- a/src/main/java/cc/carm/plugin/commanditem/item/ItemActionType.java +++ b/src/main/java/cc/carm/plugin/scriptitems/item/ItemActionType.java @@ -1,4 +1,4 @@ -package cc.carm.plugin.commanditem.item; +package cc.carm.plugin.scriptitems.item; import cc.carm.lib.easyplugin.utils.MessageUtils; import org.bukkit.Bukkit; diff --git a/src/main/java/cc/carm/plugin/commanditem/item/ItemExecuteResult.java b/src/main/java/cc/carm/plugin/scriptitems/item/ItemExecuteResult.java similarity index 82% rename from src/main/java/cc/carm/plugin/commanditem/item/ItemExecuteResult.java rename to src/main/java/cc/carm/plugin/scriptitems/item/ItemExecuteResult.java index 9a05f51..051d41e 100644 --- a/src/main/java/cc/carm/plugin/commanditem/item/ItemExecuteResult.java +++ b/src/main/java/cc/carm/plugin/scriptitems/item/ItemExecuteResult.java @@ -1,4 +1,4 @@ -package cc.carm.plugin.commanditem.item; +package cc.carm.plugin.scriptitems.item; public enum ItemExecuteResult { diff --git a/src/main/java/cc/carm/plugin/commanditem/item/ItemRestrictions.java b/src/main/java/cc/carm/plugin/scriptitems/item/ItemRestrictions.java similarity index 96% rename from src/main/java/cc/carm/plugin/commanditem/item/ItemRestrictions.java rename to src/main/java/cc/carm/plugin/scriptitems/item/ItemRestrictions.java index 44658b0..31ecece 100644 --- a/src/main/java/cc/carm/plugin/commanditem/item/ItemRestrictions.java +++ b/src/main/java/cc/carm/plugin/scriptitems/item/ItemRestrictions.java @@ -1,8 +1,8 @@ -package cc.carm.plugin.commanditem.item; +package cc.carm.plugin.scriptitems.item; import cc.carm.lib.easyplugin.configuration.language.EasyMessageList; import cc.carm.lib.easysql.api.util.TimeDateUtils; -import cc.carm.plugin.commanditem.configuration.PluginMessages; +import cc.carm.plugin.scriptitems.configuration.PluginMessages; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/cc/carm/plugin/commanditem/item/ItemSettings.java b/src/main/java/cc/carm/plugin/scriptitems/item/ItemSettings.java similarity index 93% rename from src/main/java/cc/carm/plugin/commanditem/item/ItemSettings.java rename to src/main/java/cc/carm/plugin/scriptitems/item/ItemSettings.java index e5bf6be..81a1a93 100644 --- a/src/main/java/cc/carm/plugin/commanditem/item/ItemSettings.java +++ b/src/main/java/cc/carm/plugin/scriptitems/item/ItemSettings.java @@ -1,8 +1,7 @@ -package cc.carm.plugin.commanditem.item; +package cc.carm.plugin.scriptitems.item; -import cc.carm.plugin.commanditem.CommandItemAPI; -import cc.carm.plugin.commanditem.manager.ConfigManager; -import me.saiintbrisson.minecraft.command.argument.TypeAdapter; +import cc.carm.plugin.scriptitems.ScriptItemsAPI; +import cc.carm.plugin.scriptitems.manager.ConfigManager; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; @@ -90,7 +89,7 @@ public class ItemSettings { } public @NotNull ItemStack applyItem(ItemStack originalItem) { - return CommandItemAPI.getItemsManager().applyTag(originalItem, identifier, UUID.randomUUID()); + return ScriptItemsAPI.getItemsManager().applyTag(originalItem, identifier, UUID.randomUUID()); } public static @NotNull ItemSettings load(@NotNull File file) throws Exception { diff --git a/src/main/java/cc/carm/plugin/commanditem/item/ItemStackConfig.java b/src/main/java/cc/carm/plugin/scriptitems/item/ItemStackConfig.java similarity index 97% rename from src/main/java/cc/carm/plugin/commanditem/item/ItemStackConfig.java rename to src/main/java/cc/carm/plugin/scriptitems/item/ItemStackConfig.java index 1162f68..70ecb9e 100644 --- a/src/main/java/cc/carm/plugin/commanditem/item/ItemStackConfig.java +++ b/src/main/java/cc/carm/plugin/scriptitems/item/ItemStackConfig.java @@ -1,4 +1,4 @@ -package cc.carm.plugin.commanditem.item; +package cc.carm.plugin.scriptitems.item; import cc.carm.lib.easyplugin.utils.ColorParser; import cc.carm.lib.easyplugin.utils.ItemStackFactory; diff --git a/src/main/java/cc/carm/plugin/commanditem/item/CommandItem.java b/src/main/java/cc/carm/plugin/scriptitems/item/ScriptItem.java similarity index 75% rename from src/main/java/cc/carm/plugin/commanditem/item/CommandItem.java rename to src/main/java/cc/carm/plugin/scriptitems/item/ScriptItem.java index 9ad89d9..d8ee4cf 100644 --- a/src/main/java/cc/carm/plugin/commanditem/item/CommandItem.java +++ b/src/main/java/cc/carm/plugin/scriptitems/item/ScriptItem.java @@ -1,18 +1,18 @@ -package cc.carm.plugin.commanditem.item; +package cc.carm.plugin.scriptitems.item; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; import java.util.UUID; -public class CommandItem { +public class ScriptItem { @NotNull UUID uuid; @NotNull ItemSettings settings; @NotNull ItemStack itemStack; - public CommandItem(@NotNull UUID uuid, @NotNull ItemSettings settings, @NotNull ItemStack itemStack) { + public ScriptItem(@NotNull UUID uuid, @NotNull ItemSettings settings, @NotNull ItemStack itemStack) { this.uuid = uuid; this.settings = settings; this.itemStack = itemStack; diff --git a/src/main/java/cc/carm/plugin/commanditem/listener/ItemListener.java b/src/main/java/cc/carm/plugin/scriptitems/listener/ItemListener.java similarity index 81% rename from src/main/java/cc/carm/plugin/commanditem/listener/ItemListener.java rename to src/main/java/cc/carm/plugin/scriptitems/listener/ItemListener.java index 8392463..7fd026b 100644 --- a/src/main/java/cc/carm/plugin/commanditem/listener/ItemListener.java +++ b/src/main/java/cc/carm/plugin/scriptitems/listener/ItemListener.java @@ -1,12 +1,12 @@ -package cc.carm.plugin.commanditem.listener; +package cc.carm.plugin.scriptitems.listener; -import cc.carm.plugin.commanditem.CommandItemAPI; -import cc.carm.plugin.commanditem.configuration.PluginConfig; -import cc.carm.plugin.commanditem.configuration.PluginMessages; -import cc.carm.plugin.commanditem.item.CommandItem; -import cc.carm.plugin.commanditem.item.ItemActionGroup; -import cc.carm.plugin.commanditem.item.ItemRestrictions; -import cc.carm.plugin.commanditem.item.ItemSettings; +import cc.carm.plugin.scriptitems.ScriptItemsAPI; +import cc.carm.plugin.scriptitems.configuration.PluginConfig; +import cc.carm.plugin.scriptitems.configuration.PluginMessages; +import cc.carm.plugin.scriptitems.item.ScriptItem; +import cc.carm.plugin.scriptitems.item.ItemActionGroup; +import cc.carm.plugin.scriptitems.item.ItemRestrictions; +import cc.carm.plugin.scriptitems.item.ItemSettings; import org.bukkit.entity.EntityType; import org.bukkit.entity.Item; import org.bukkit.entity.Player; @@ -38,8 +38,8 @@ public class ItemListener implements Listener { if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK) return; ItemStack item = event.getPlayer().getInventory().getItemInMainHand(); - CommandItem commandItem = CommandItemAPI.getItemsManager().parseCommandItem(item); - if (commandItem == null) return; + ScriptItem scriptItem = ScriptItemsAPI.getItemsManager().parseItem(item); + if (scriptItem == null) return; event.setCancelled(true); // 阻止事件执行 Player player = event.getPlayer(); @@ -49,7 +49,7 @@ public class ItemListener implements Listener { } updateTime(player.getUniqueId()); - ItemSettings settings = commandItem.getSettings(); + ItemSettings settings = scriptItem.getSettings(); // 检查物品的相关使用限制是否满足要求 ItemRestrictions.CheckResult result = settings.getRestrictions().check(); @@ -73,7 +73,7 @@ public class ItemListener implements Listener { @EventHandler public void onCraft(CraftItemEvent event) { boolean shouldCancel = Arrays.stream(event.getInventory().getMatrix()) - .anyMatch(matrix -> CommandItemAPI.getItemsManager().isCommandItem(matrix)); + .anyMatch(matrix -> ScriptItemsAPI.getItemsManager().isScriptItem(matrix)); if (shouldCancel) event.setCancelled(true); } @@ -88,7 +88,7 @@ public class ItemListener implements Listener { if (event.getEntity().getType() == EntityType.PLAYER) return; ItemStack item = event.getItem().getItemStack(); - if (CommandItemAPI.getItemsManager().isCommandItem(item)) { + if (ScriptItemsAPI.getItemsManager().isScriptItem(item)) { event.setCancelled(true); } } @@ -103,7 +103,7 @@ public class ItemListener implements Listener { if (event.getEntity().getType() != EntityType.DROPPED_ITEM) return; Item droppedItem = ((org.bukkit.entity.Item) event.getEntity()); ItemStack item = droppedItem.getItemStack(); - if (CommandItemAPI.getItemsManager().isCommandItem(item)) { + if (ScriptItemsAPI.getItemsManager().isScriptItem(item)) { event.setCancelled(true); } } diff --git a/src/main/java/cc/carm/plugin/commanditem/manager/ConfigManager.java b/src/main/java/cc/carm/plugin/scriptitems/manager/ConfigManager.java similarity index 75% rename from src/main/java/cc/carm/plugin/commanditem/manager/ConfigManager.java rename to src/main/java/cc/carm/plugin/scriptitems/manager/ConfigManager.java index b0210e2..3ae028e 100644 --- a/src/main/java/cc/carm/plugin/commanditem/manager/ConfigManager.java +++ b/src/main/java/cc/carm/plugin/scriptitems/manager/ConfigManager.java @@ -1,11 +1,11 @@ -package cc.carm.plugin.commanditem.manager; +package cc.carm.plugin.scriptitems.manager; import cc.carm.lib.easyplugin.configuration.file.FileConfig; import cc.carm.lib.easyplugin.configuration.language.MessagesConfig; import cc.carm.lib.easyplugin.configuration.language.MessagesInitializer; -import cc.carm.plugin.commanditem.Main; -import cc.carm.plugin.commanditem.configuration.PluginMessages; +import cc.carm.plugin.scriptitems.configuration.PluginMessages; import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.plugin.java.JavaPlugin; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -17,13 +17,19 @@ import java.util.function.Function; public class ConfigManager { - private static FileConfig config; - private static MessagesConfig messageConfig; + private final JavaPlugin plugin; - public static boolean initConfig() { + private FileConfig config; + private MessagesConfig messageConfig; + + public ConfigManager(JavaPlugin plugin) { + this.plugin = plugin; + } + + public boolean initConfig() { try { - ConfigManager.config = new FileConfig(Main.getInstance()); - ConfigManager.messageConfig = new MessagesConfig(Main.getInstance()); + this.config = new FileConfig(plugin); + this.messageConfig = new MessagesConfig(plugin); FileConfig.pluginConfiguration = () -> config; FileConfig.messageConfiguration = () -> messageConfig; @@ -36,28 +42,22 @@ public class ConfigManager { } } - public static FileConfig getPluginConfig() { + public FileConfig getPluginConfig() { return config; } - public static FileConfig getMessageConfig() { + public FileConfig getMessageConfig() { return messageConfig; } - public static void reload() { - try { - getPluginConfig().reload(); - getMessageConfig().reload(); - } catch (Exception ignored) { - } + public void reload() throws Exception { + getPluginConfig().reload(); + getMessageConfig().reload(); } - public static void saveConfig() { - try { - getPluginConfig().save(); - getMessageConfig().save(); - } catch (Exception ignored) { - } + public void saveConfig() throws Exception { + getPluginConfig().save(); + getMessageConfig().save(); } public static Map readStringMap(@Nullable ConfigurationSection section, diff --git a/src/main/java/cc/carm/plugin/commanditem/manager/ItemsManager.java b/src/main/java/cc/carm/plugin/scriptitems/manager/ItemsManager.java similarity index 89% rename from src/main/java/cc/carm/plugin/commanditem/manager/ItemsManager.java rename to src/main/java/cc/carm/plugin/scriptitems/manager/ItemsManager.java index 4baaa67..f56898d 100644 --- a/src/main/java/cc/carm/plugin/commanditem/manager/ItemsManager.java +++ b/src/main/java/cc/carm/plugin/scriptitems/manager/ItemsManager.java @@ -1,9 +1,9 @@ -package cc.carm.plugin.commanditem.manager; +package cc.carm.plugin.scriptitems.manager; -import cc.carm.plugin.commanditem.Main; -import cc.carm.plugin.commanditem.item.CommandItem; -import cc.carm.plugin.commanditem.item.ItemSettings; -import cc.carm.plugin.commanditem.util.JarResourceUtils; +import cc.carm.plugin.scriptitems.Main; +import cc.carm.plugin.scriptitems.item.ItemSettings; +import cc.carm.plugin.scriptitems.item.ScriptItem; +import cc.carm.plugin.scriptitems.util.JarResourceUtils; import com.google.common.collect.ImmutableMap; import org.bukkit.Material; import org.bukkit.NamespacedKey; @@ -32,7 +32,7 @@ public class ItemsManager { this.idKey = new NamespacedKey(Main.getInstance(), "id"); this.uuidKey = new NamespacedKey(Main.getInstance(), "uuid"); loadItems(); - Main.info("成功加载了 " + items.size() + " 个指令物品。"); + Main.info("成功加载了 " + items.size() + " 个脚本物品。"); } public void loadItems() { @@ -105,7 +105,7 @@ public class ItemsManager { return originalItem; } - public @Nullable CommandItem parseCommandItem(@Nullable ItemStack item) { + public @Nullable ScriptItem parseItem(@Nullable ItemStack item) { if (item == null || item.getType() == Material.AIR) return null; if (!item.hasItemMeta()) return null; ItemMeta meta = item.getItemMeta(); @@ -116,10 +116,10 @@ public class ItemsManager { if (settingsID == null || itemUUID == null) return null; ItemSettings settings = getItemSettings(settingsID); if (settings == null) return null; - return new CommandItem(UUID.fromString(itemUUID), settings, item); + return new ScriptItem(UUID.fromString(itemUUID), settings, item); } - public boolean isCommandItem(ItemStack item) { + public boolean isScriptItem(ItemStack item) { return item.hasItemMeta() && item.getItemMeta() != null && item.getItemMeta().getCustomTagContainer().hasCustomTag(idKey, ItemTagType.STRING); } diff --git a/src/main/java/cc/carm/plugin/commanditem/util/DatabaseTable.java b/src/main/java/cc/carm/plugin/scriptitems/util/DatabaseTable.java similarity index 98% rename from src/main/java/cc/carm/plugin/commanditem/util/DatabaseTable.java rename to src/main/java/cc/carm/plugin/scriptitems/util/DatabaseTable.java index 4c4cf3d..bc753e6 100644 --- a/src/main/java/cc/carm/plugin/commanditem/util/DatabaseTable.java +++ b/src/main/java/cc/carm/plugin/scriptitems/util/DatabaseTable.java @@ -1,4 +1,4 @@ -package cc.carm.plugin.commanditem.util; +package cc.carm.plugin.scriptitems.util; import cc.carm.lib.easysql.api.SQLManager; import cc.carm.lib.easysql.api.action.PreparedSQLUpdateAction; diff --git a/src/main/java/cc/carm/plugin/commanditem/util/JarResourceUtils.java b/src/main/java/cc/carm/plugin/scriptitems/util/JarResourceUtils.java similarity index 98% rename from src/main/java/cc/carm/plugin/commanditem/util/JarResourceUtils.java rename to src/main/java/cc/carm/plugin/scriptitems/util/JarResourceUtils.java index fb594fe..8c3a880 100644 --- a/src/main/java/cc/carm/plugin/commanditem/util/JarResourceUtils.java +++ b/src/main/java/cc/carm/plugin/scriptitems/util/JarResourceUtils.java @@ -1,4 +1,4 @@ -package cc.carm.plugin.commanditem.util; +package cc.carm.plugin.scriptitems.util; import org.jetbrains.annotations.Nullable; diff --git a/src/main/resources/PLUGIN_INFO b/src/main/resources/PLUGIN_INFO index 5a74d1d..73a4b9d 100644 --- a/src/main/resources/PLUGIN_INFO +++ b/src/main/resources/PLUGIN_INFO @@ -1,4 +1,5 @@ -&c ___ _ &4___ _ -&c / __|___ _ __ _ __ __ _ _ _ __| |&4_ _| |_ ___ _ __ -&c| (__/ _ \ ' \| ' \/ _` | ' \/ _` |&4| || _/ -_) ' \ -&c \___\___/_|_|_|_|_|_\__,_|_||_\__,_|&4___|\__\___|_|_|_| \ No newline at end of file +&a ____ _ __ &2______ +&a / __/_______(_)__ / /_&2/ _/ /____ __ _ ___ +&a _\ \/ __/ __/ / _ \/ __/&2/ // __/ -_) ' \(_-< +&a/___/\__/_/ /_/ .__/\__/&2___/\__/\__/_/_/_/___/ +&a /_/ \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 8451939..4a1147d 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ -main: cc.carm.plugin.commanditem.Main -name: CommandItem +main: cc.carm.plugin.scriptitems.Main +name: ScriptItems version: ${project.version} description: ${project.description} @@ -11,4 +11,11 @@ authors: softdepend: - PlaceholderAPI -api-version: 1.13 \ No newline at end of file +api-version: 1.13 + +commands: + "ScriptItems": + aliases: "sitems" + usage: "/ScriptItems help" + description: "ScriptItems 的主指令。" + permission: "ScriptItems.admin" \ No newline at end of file