From e19e6b062714bd2eacc4d64634e50bd3e2895633 Mon Sep 17 00:00:00 2001 From: CarmJos Date: Sun, 13 Mar 2022 18:29:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=B1=BB=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../command/ScriptItemsCommand.java | 6 ++-- .../scriptitems/item/ItemActionGroup.java | 29 ---------------- .../scriptitems/item/ItemExecuteResult.java | 20 ----------- .../{ItemAction.java => ScriptAction.java} | 14 ++++---- .../scriptitems/item/ScriptActionGroup.java | 29 ++++++++++++++++ ...mActionType.java => ScriptActionType.java} | 8 ++--- ...Settings.java => ScriptConfiguration.java} | 34 +++++++++---------- .../plugin/scriptitems/item/ScriptItem.java | 6 ++-- ...trictions.java => ScriptRestrictions.java} | 18 +++++----- .../scriptitems/listener/ItemListener.java | 14 ++++---- .../scriptitems/manager/ItemsManager.java | 18 +++++----- 11 files changed, 88 insertions(+), 108 deletions(-) delete mode 100644 src/main/java/cc/carm/plugin/scriptitems/item/ItemActionGroup.java delete mode 100644 src/main/java/cc/carm/plugin/scriptitems/item/ItemExecuteResult.java rename src/main/java/cc/carm/plugin/scriptitems/item/{ItemAction.java => ScriptAction.java} (65%) create mode 100644 src/main/java/cc/carm/plugin/scriptitems/item/ScriptActionGroup.java rename src/main/java/cc/carm/plugin/scriptitems/item/{ItemActionType.java => ScriptActionType.java} (93%) rename src/main/java/cc/carm/plugin/scriptitems/item/{ItemSettings.java => ScriptConfiguration.java} (70%) rename src/main/java/cc/carm/plugin/scriptitems/item/{ItemRestrictions.java => ScriptRestrictions.java} (82%) diff --git a/src/main/java/cc/carm/plugin/scriptitems/command/ScriptItemsCommand.java b/src/main/java/cc/carm/plugin/scriptitems/command/ScriptItemsCommand.java index 6c66c19..9db9f7e 100644 --- a/src/main/java/cc/carm/plugin/scriptitems/command/ScriptItemsCommand.java +++ b/src/main/java/cc/carm/plugin/scriptitems/command/ScriptItemsCommand.java @@ -2,7 +2,7 @@ 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 cc.carm.plugin.scriptitems.item.ScriptConfiguration; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.command.Command; @@ -50,7 +50,7 @@ public class ScriptItemsCommand implements CommandExecutor, TabCompleter { return true; } - ItemSettings settings = ScriptItemsAPI.getItemsManager().getItemSettings(args[1]); + ScriptConfiguration settings = ScriptItemsAPI.getItemsManager().getItemSettings(args[1]); if (settings == null) { PluginMessages.NOT_EXISTS.send(sender, args[1]); return true; @@ -81,7 +81,7 @@ public class ScriptItemsCommand implements CommandExecutor, TabCompleter { return true; } - ItemSettings settings = ScriptItemsAPI.getItemsManager().getItemSettings(args[2]); + ScriptConfiguration settings = ScriptItemsAPI.getItemsManager().getItemSettings(args[2]); if (settings == null) { PluginMessages.NOT_EXISTS.send(sender, args[2]); return true; diff --git a/src/main/java/cc/carm/plugin/scriptitems/item/ItemActionGroup.java b/src/main/java/cc/carm/plugin/scriptitems/item/ItemActionGroup.java deleted file mode 100644 index e45ae80..0000000 --- a/src/main/java/cc/carm/plugin/scriptitems/item/ItemActionGroup.java +++ /dev/null @@ -1,29 +0,0 @@ -package cc.carm.plugin.scriptitems.item; - -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; - -import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; - -public class ItemActionGroup { - - - List actions; - - public ItemActionGroup(List actions) { - this.actions = actions; - } - - public void execute(Player player) { - actions.forEach(action -> action.execute(player)); - } - - public static @NotNull ItemActionGroup read(@NotNull List actionsString) { - List actions = actionsString.stream() - .map(ItemAction::read).filter(Objects::nonNull).collect(Collectors.toList()); - return new ItemActionGroup(actions); - } - -} diff --git a/src/main/java/cc/carm/plugin/scriptitems/item/ItemExecuteResult.java b/src/main/java/cc/carm/plugin/scriptitems/item/ItemExecuteResult.java deleted file mode 100644 index 051d41e..0000000 --- a/src/main/java/cc/carm/plugin/scriptitems/item/ItemExecuteResult.java +++ /dev/null @@ -1,20 +0,0 @@ -package cc.carm.plugin.scriptitems.item; - -public enum ItemExecuteResult { - - SUCCESS(0), - FAILED(1), - - ; - - int id; - - ItemExecuteResult(int id) { - this.id = id; - } - - public int getId() { - return id; - } - -} diff --git a/src/main/java/cc/carm/plugin/scriptitems/item/ItemAction.java b/src/main/java/cc/carm/plugin/scriptitems/item/ScriptAction.java similarity index 65% rename from src/main/java/cc/carm/plugin/scriptitems/item/ItemAction.java rename to src/main/java/cc/carm/plugin/scriptitems/item/ScriptAction.java index aca5475..4e96132 100644 --- a/src/main/java/cc/carm/plugin/scriptitems/item/ItemAction.java +++ b/src/main/java/cc/carm/plugin/scriptitems/item/ScriptAction.java @@ -4,17 +4,17 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class ItemAction { +public class ScriptAction { - @NotNull ItemActionType type; + @NotNull ScriptActionType type; @Nullable String actionContent; - public ItemAction(@NotNull ItemActionType type, @Nullable String actionContent) { + public ScriptAction(@NotNull ScriptActionType type, @Nullable String actionContent) { this.type = type; this.actionContent = actionContent; } - public @NotNull ItemActionType getType() { + public @NotNull ScriptActionType getType() { return type; } @@ -26,17 +26,17 @@ public class ItemAction { return getType().execute(player, getActionContent()); } - public static @Nullable ItemAction read(@Nullable String actionString) { + public static @Nullable ScriptAction read(@Nullable String actionString) { if (actionString == null) return null; int prefixStart = actionString.indexOf("["); int prefixEnd = actionString.indexOf("]"); if (prefixStart < 0 || prefixEnd < 0) return null; String prefix = actionString.substring(prefixStart + 1, prefixEnd); - ItemActionType actionType = ItemActionType.read(prefix); + ScriptActionType actionType = ScriptActionType.read(prefix); if (actionType == null) return null; - return new ItemAction(actionType, actionString.substring(prefixEnd + 1).trim()); + return new ScriptAction(actionType, actionString.substring(prefixEnd + 1).trim()); } diff --git a/src/main/java/cc/carm/plugin/scriptitems/item/ScriptActionGroup.java b/src/main/java/cc/carm/plugin/scriptitems/item/ScriptActionGroup.java new file mode 100644 index 0000000..21964cc --- /dev/null +++ b/src/main/java/cc/carm/plugin/scriptitems/item/ScriptActionGroup.java @@ -0,0 +1,29 @@ +package cc.carm.plugin.scriptitems.item; + +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +public class ScriptActionGroup { + + + List actions; + + public ScriptActionGroup(List actions) { + this.actions = actions; + } + + public void execute(Player player) { + actions.forEach(action -> action.execute(player)); + } + + public static @NotNull ScriptActionGroup read(@NotNull List actionsString) { + List actions = actionsString.stream() + .map(ScriptAction::read).filter(Objects::nonNull).collect(Collectors.toList()); + return new ScriptActionGroup(actions); + } + +} diff --git a/src/main/java/cc/carm/plugin/scriptitems/item/ItemActionType.java b/src/main/java/cc/carm/plugin/scriptitems/item/ScriptActionType.java similarity index 93% rename from src/main/java/cc/carm/plugin/scriptitems/item/ItemActionType.java rename to src/main/java/cc/carm/plugin/scriptitems/item/ScriptActionType.java index 21933c9..e2edfaa 100644 --- a/src/main/java/cc/carm/plugin/scriptitems/item/ItemActionType.java +++ b/src/main/java/cc/carm/plugin/scriptitems/item/ScriptActionType.java @@ -13,7 +13,7 @@ import java.util.Collections; import java.util.List; import java.util.function.BiFunction; -public enum ItemActionType { +public enum ScriptActionType { /** * 以玩家聊天的形式执行 @@ -100,7 +100,7 @@ public enum ItemActionType { BiFunction<@NotNull Player, @Nullable String, @NotNull Boolean> executor; - ItemActionType(BiFunction<@NotNull Player, @Nullable String, @NotNull Boolean> executor) { + ScriptActionType(BiFunction<@NotNull Player, @Nullable String, @NotNull Boolean> executor) { this.executor = executor; } @@ -112,8 +112,8 @@ public enum ItemActionType { return getExecutor().apply(player, content); } - public static ItemActionType read(String string) { - return Arrays.stream(ItemActionType.values()) + public static ScriptActionType read(String string) { + return Arrays.stream(ScriptActionType.values()) .filter(action -> action.name().equalsIgnoreCase(string)) .findFirst().orElse(null); } diff --git a/src/main/java/cc/carm/plugin/scriptitems/item/ItemSettings.java b/src/main/java/cc/carm/plugin/scriptitems/item/ScriptConfiguration.java similarity index 70% rename from src/main/java/cc/carm/plugin/scriptitems/item/ItemSettings.java rename to src/main/java/cc/carm/plugin/scriptitems/item/ScriptConfiguration.java index 81a1a93..54d5dd5 100644 --- a/src/main/java/cc/carm/plugin/scriptitems/item/ItemSettings.java +++ b/src/main/java/cc/carm/plugin/scriptitems/item/ScriptConfiguration.java @@ -13,21 +13,21 @@ import java.io.File; import java.util.Map; import java.util.UUID; -public class ItemSettings { +public class ScriptConfiguration { protected final @NotNull String identifier; @Nullable String name; @Nullable ItemStackConfig item; - @NotNull ItemRestrictions restrictions; + @NotNull ScriptRestrictions restrictions; @NotNull Map permissions; - @NotNull Map actions; + @NotNull Map actions; - public ItemSettings(@NotNull String identifier, @Nullable String name, - @Nullable ItemStackConfig item, @NotNull ItemRestrictions restrictions, - @NotNull Map permissions, - @NotNull Map actions) { + public ScriptConfiguration(@NotNull String identifier, @Nullable String name, + @Nullable ItemStackConfig item, @NotNull ScriptRestrictions restrictions, + @NotNull Map permissions, + @NotNull Map actions) { this.identifier = identifier; this.name = name; this.item = item; @@ -64,23 +64,23 @@ public class ItemSettings { } - public @NotNull ItemRestrictions getRestrictions() { + public @NotNull ScriptRestrictions getRestrictions() { return restrictions; } - public ItemRestrictions.CheckResult checkRestrictions() { + public ScriptRestrictions.CheckResult checkRestrictions() { return getRestrictions().check(); } - public @NotNull Map getActions() { + public @NotNull Map getActions() { return this.actions; } - public @Nullable ItemActionGroup getDefaultActions() { + public @Nullable ScriptActionGroup getDefaultActions() { return getActions().get("default"); } - public @Nullable ItemActionGroup getPlayerActions(@NotNull Player player) { + public @Nullable ScriptActionGroup getPlayerActions(@NotNull Player player) { @NotNull String actionGroup = getPermissions().entrySet().stream() .filter(entry -> player.hasPermission(entry.getValue())) .map(Map.Entry::getKey).findFirst().orElse("default"); @@ -92,21 +92,21 @@ public class ItemSettings { return ScriptItemsAPI.getItemsManager().applyTag(originalItem, identifier, UUID.randomUUID()); } - public static @NotNull ItemSettings load(@NotNull File file) throws Exception { + public static @NotNull ScriptConfiguration load(@NotNull File file) throws Exception { return load(YamlConfiguration.loadConfiguration(file)); } - public static @NotNull ItemSettings load(@NotNull FileConfiguration config) throws Exception { + public static @NotNull ScriptConfiguration load(@NotNull FileConfiguration config) throws Exception { String identifier = config.getString("identifier"); if (identifier == null) throw new Exception("identifier not provided."); - return new ItemSettings( + return new ScriptConfiguration( identifier, config.getString("name"), config.isItemStack("item") ? ItemStackConfig.create(config.getItemStack("item")) : ItemStackConfig.read(config.getConfigurationSection("item")), - ItemRestrictions.read(config.getConfigurationSection("restrictions")), + ScriptRestrictions.read(config.getConfigurationSection("restrictions")), ConfigManager.readStringMap(config.getConfigurationSection("permissions"), (s -> s)), - ConfigManager.readListMap(config.getConfigurationSection("actions"), ItemActionGroup::read) + ConfigManager.readListMap(config.getConfigurationSection("actions"), ScriptActionGroup::read) ); } } diff --git a/src/main/java/cc/carm/plugin/scriptitems/item/ScriptItem.java b/src/main/java/cc/carm/plugin/scriptitems/item/ScriptItem.java index d8ee4cf..5e4e27d 100644 --- a/src/main/java/cc/carm/plugin/scriptitems/item/ScriptItem.java +++ b/src/main/java/cc/carm/plugin/scriptitems/item/ScriptItem.java @@ -9,10 +9,10 @@ public class ScriptItem { @NotNull UUID uuid; - @NotNull ItemSettings settings; + @NotNull ScriptConfiguration settings; @NotNull ItemStack itemStack; - public ScriptItem(@NotNull UUID uuid, @NotNull ItemSettings settings, @NotNull ItemStack itemStack) { + public ScriptItem(@NotNull UUID uuid, @NotNull ScriptConfiguration settings, @NotNull ItemStack itemStack) { this.uuid = uuid; this.settings = settings; this.itemStack = itemStack; @@ -22,7 +22,7 @@ public class ScriptItem { return uuid; } - public @NotNull ItemSettings getSettings() { + public @NotNull ScriptConfiguration getSettings() { return settings; } diff --git a/src/main/java/cc/carm/plugin/scriptitems/item/ItemRestrictions.java b/src/main/java/cc/carm/plugin/scriptitems/item/ScriptRestrictions.java similarity index 82% rename from src/main/java/cc/carm/plugin/scriptitems/item/ItemRestrictions.java rename to src/main/java/cc/carm/plugin/scriptitems/item/ScriptRestrictions.java index 31ecece..7340428 100644 --- a/src/main/java/cc/carm/plugin/scriptitems/item/ItemRestrictions.java +++ b/src/main/java/cc/carm/plugin/scriptitems/item/ScriptRestrictions.java @@ -11,16 +11,16 @@ import org.jetbrains.annotations.Nullable; import java.util.function.Function; import java.util.function.Supplier; -public class ItemRestrictions { +public class ScriptRestrictions { long startTime; long endTime; - public ItemRestrictions() { + public ScriptRestrictions() { this(-1, -1); } - public ItemRestrictions(long startTime, long endTime) { + public ScriptRestrictions(long startTime, long endTime) { this.startTime = startTime; this.endTime = endTime; } @@ -64,10 +64,10 @@ public class ItemRestrictions { ); Supplier<@Nullable EasyMessageList> message; - Function<@NotNull ItemRestrictions, Object[]> params; + Function<@NotNull ScriptRestrictions, Object[]> params; CheckResult(@NotNull Supplier<@Nullable EasyMessageList> message, - @NotNull Function<@NotNull ItemRestrictions, @Nullable Object[]> params) { + @NotNull Function<@NotNull ScriptRestrictions, @Nullable Object[]> params) { this.message = message; this.params = params; } @@ -76,7 +76,7 @@ public class ItemRestrictions { return message; } - public void send(Player player, ItemRestrictions restrictions) { + public void send(Player player, ScriptRestrictions restrictions) { Object[] params = this.params.apply(restrictions); if (params == null) { getMessage().get().send(player); @@ -87,9 +87,9 @@ public class ItemRestrictions { } - public static @NotNull ItemRestrictions read(@Nullable ConfigurationSection section) { - if (section == null) return new ItemRestrictions(); - return new ItemRestrictions( + public static @NotNull ScriptRestrictions read(@Nullable ConfigurationSection section) { + if (section == null) return new ScriptRestrictions(); + return new ScriptRestrictions( TimeDateUtils.parseTimeMillis(section.getString("time.start")), TimeDateUtils.parseTimeMillis(section.getString("time.end")) ); diff --git a/src/main/java/cc/carm/plugin/scriptitems/listener/ItemListener.java b/src/main/java/cc/carm/plugin/scriptitems/listener/ItemListener.java index 7fd026b..9fcf50d 100644 --- a/src/main/java/cc/carm/plugin/scriptitems/listener/ItemListener.java +++ b/src/main/java/cc/carm/plugin/scriptitems/listener/ItemListener.java @@ -4,9 +4,9 @@ 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 cc.carm.plugin.scriptitems.item.ScriptActionGroup; +import cc.carm.plugin.scriptitems.item.ScriptRestrictions; +import cc.carm.plugin.scriptitems.item.ScriptConfiguration; import org.bukkit.entity.EntityType; import org.bukkit.entity.Item; import org.bukkit.entity.Player; @@ -49,17 +49,17 @@ public class ItemListener implements Listener { } updateTime(player.getUniqueId()); - ItemSettings settings = scriptItem.getSettings(); + ScriptConfiguration settings = scriptItem.getSettings(); // 检查物品的相关使用限制是否满足要求 - ItemRestrictions.CheckResult result = settings.getRestrictions().check(); - if (result != ItemRestrictions.CheckResult.AVAILABLE) { + ScriptRestrictions.CheckResult result = settings.getRestrictions().check(); + if (result != ScriptRestrictions.CheckResult.AVAILABLE) { result.send(player, settings.getRestrictions()); // 发送提示 return; } // 获取玩家的对应操作组 - ItemActionGroup actions = settings.getPlayerActions(player); + ScriptActionGroup actions = settings.getPlayerActions(player); if (actions == null) return; actions.execute(player); diff --git a/src/main/java/cc/carm/plugin/scriptitems/manager/ItemsManager.java b/src/main/java/cc/carm/plugin/scriptitems/manager/ItemsManager.java index f56898d..6be2372 100644 --- a/src/main/java/cc/carm/plugin/scriptitems/manager/ItemsManager.java +++ b/src/main/java/cc/carm/plugin/scriptitems/manager/ItemsManager.java @@ -1,7 +1,7 @@ package cc.carm.plugin.scriptitems.manager; import cc.carm.plugin.scriptitems.Main; -import cc.carm.plugin.scriptitems.item.ItemSettings; +import cc.carm.plugin.scriptitems.item.ScriptConfiguration; import cc.carm.plugin.scriptitems.item.ScriptItem; import cc.carm.plugin.scriptitems.util.JarResourceUtils; import com.google.common.collect.ImmutableMap; @@ -23,7 +23,7 @@ public class ItemsManager { private static final String FOLDER_NAME = "items"; - public HashMap items = new HashMap<>(); + public HashMap items = new HashMap<>(); protected NamespacedKey idKey; protected NamespacedKey uuidKey; @@ -60,18 +60,18 @@ public class ItemsManager { .filter(File::isFile) .collect(Collectors.toList()); - HashMap dataItems = new HashMap<>(); + HashMap dataItems = new HashMap<>(); if (files.size() > 0) { for (File file : files) { String fileName = file.getName(); if (fileName.startsWith(".")) continue; try { - ItemSettings item = ItemSettings.load(file); - Main.info(" 完成物品加载 [#" + item.getIdentifier() + "] " + item.getName() + " (" + fileName + ")"); + ScriptConfiguration item = ScriptConfiguration.load(file); + Main.info(" 完成脚本物品加载 [#" + item.getIdentifier() + "] " + item.getName() + " (" + fileName + ")"); dataItems.put(item.getIdentifier(), item); } catch (Exception ex) { - Main.severe("在加载物品 " + file.getAbsolutePath() + " 时出错,请检查配置!"); + Main.severe("在加载脚本物品 " + file.getAbsolutePath() + " 时出错,请检查配置!"); Main.severe("Error occurred when loading item #" + file.getAbsolutePath() + " !"); ex.printStackTrace(); } @@ -86,11 +86,11 @@ public class ItemsManager { } @Unmodifiable - public Map listItemSettings() { + public Map listItemSettings() { return ImmutableMap.copyOf(items); } - public @Nullable ItemSettings getItemSettings(@NotNull String identifier) { + public @Nullable ScriptConfiguration getItemSettings(@NotNull String identifier) { return items.get(identifier); } @@ -114,7 +114,7 @@ public class ItemsManager { String settingsID = container.getCustomTag(this.idKey, ItemTagType.STRING); String itemUUID = container.getCustomTag(this.uuidKey, ItemTagType.STRING); if (settingsID == null || itemUUID == null) return null; - ItemSettings settings = getItemSettings(settingsID); + ScriptConfiguration settings = getItemSettings(settingsID); if (settings == null) return null; return new ScriptItem(UUID.fromString(itemUUID), settings, item); }