From 4cc50c21d5cb3bc0d64aeb74e3aa712f0892c6f1 Mon Sep 17 00:00:00 2001 From: Carm Date: Tue, 10 Oct 2023 15:01:51 +0800 Subject: [PATCH] =?UTF-8?q?chore(item):=20=E6=9B=B4=E6=8D=A2=E7=89=A9?= =?UTF-8?q?=E5=93=81=E7=9A=84=E9=85=8D=E7=BD=AE=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=B7=A8=E7=89=88=E6=9C=AC=E7=9A=84=E7=89=A9?= =?UTF-8?q?=E5=93=81=E8=AF=BB=E5=8F=96=E3=80=81=E4=BF=9D=E5=AD=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BREAKING-CHANGE: 旧的配置文件需要进行变更。 --- pom.xml | 6 +-- .../java/cc/carm/plugin/userprefix/Main.java | 4 +- .../plugin/userprefix/conf/PluginConfig.java | 6 +-- .../userprefix/conf/prefix/PrefixConfig.java | 30 +++++++++------ .../userprefix/manager/PrefixManager.java | 37 +++++++++++-------- 5 files changed, 47 insertions(+), 36 deletions(-) diff --git a/pom.xml b/pom.xml index 9203410..3f4c045 100644 --- a/pom.xml +++ b/pom.xml @@ -13,13 +13,13 @@ UTF-8 UTF-8 - 1.5.2 - 2.4.0 + 1.5.8 + 2.8.6 cc.carm.plugin userprefix - 3.2.0 + 3.2.2 UserPrefix 轻便、高效、实时的用户前缀系统。 diff --git a/src/main/java/cc/carm/plugin/userprefix/Main.java b/src/main/java/cc/carm/plugin/userprefix/Main.java index b8d6bb3..0a8aec7 100644 --- a/src/main/java/cc/carm/plugin/userprefix/Main.java +++ b/src/main/java/cc/carm/plugin/userprefix/Main.java @@ -61,8 +61,8 @@ public class Main extends EasyPlugin { log("初始化GUI管理器..."); GUI.initialize(this); - AutoPagedGUI.defaultNextPage = (PluginConfig.GUI.BOTTOMS.NEXT_PAGE::getItem); - AutoPagedGUI.defaultPreviousPage = (PluginConfig.GUI.BOTTOMS.PREV_PAGE::getItem); + AutoPagedGUI.defaultNextPage = (PluginConfig.GUI.BOTTOMS.NEXT_PAGE::get); + AutoPagedGUI.defaultPreviousPage = (PluginConfig.GUI.BOTTOMS.PREV_PAGE::get); if (MessageUtils.hasPlaceholderAPI()) { log("注册变量..."); diff --git a/src/main/java/cc/carm/plugin/userprefix/conf/PluginConfig.java b/src/main/java/cc/carm/plugin/userprefix/conf/PluginConfig.java index 852acc8..6c3a99d 100644 --- a/src/main/java/cc/carm/plugin/userprefix/conf/PluginConfig.java +++ b/src/main/java/cc/carm/plugin/userprefix/conf/PluginConfig.java @@ -6,8 +6,8 @@ import cc.carm.lib.configuration.core.annotation.HeaderComment; import cc.carm.lib.configuration.core.value.ConfigValue; import cc.carm.lib.configuration.core.value.type.ConfiguredList; import cc.carm.lib.configuration.core.value.type.ConfiguredValue; -import cc.carm.lib.mineconfiguration.bukkit.value.ConfiguredItem; import cc.carm.lib.mineconfiguration.bukkit.value.ConfiguredSound; +import cc.carm.lib.mineconfiguration.bukkit.value.item.ConfiguredItem; import cc.carm.plugin.userprefix.conf.gui.GUIItems; import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; @@ -116,7 +116,7 @@ public class PluginConfig extends ConfigurationRoot { @HeaderComment("GUI中的其他按钮物品 (若与现有物品位置冲突,将被覆盖)") public static final ConfigValue ITEMS = ConfiguredValue - .builder(GUIItems.class).fromSection() + .builderOf(GUIItems.class).fromSection() .defaults(GUIItems::defaults) .serializeValue(GUIItems::serialize) .parseValue((v, d) -> GUIItems.parse(v)) @@ -147,7 +147,7 @@ public class PluginConfig extends ConfigurationRoot { public static final ConfigValue CONTENT = ConfiguredValue.of(String.class, "&r"); @HeaderComment({"选择默认前缀时执行的操作"}) - public static final ConfiguredList ACTIONS = ConfiguredList.builder(String.class).fromString() + public static final ConfiguredList ACTIONS = ConfiguredList.builderOf(String.class).fromString() .defaults("[CONSOLE] " + "say %player_name% 选择了默认前缀") .build(); diff --git a/src/main/java/cc/carm/plugin/userprefix/conf/prefix/PrefixConfig.java b/src/main/java/cc/carm/plugin/userprefix/conf/prefix/PrefixConfig.java index 166ae8f..45c557b 100644 --- a/src/main/java/cc/carm/plugin/userprefix/conf/prefix/PrefixConfig.java +++ b/src/main/java/cc/carm/plugin/userprefix/conf/prefix/PrefixConfig.java @@ -2,10 +2,11 @@ package cc.carm.plugin.userprefix.conf.prefix; import cc.carm.lib.easyplugin.gui.configuration.GUIActionConfiguration; import cc.carm.lib.easyplugin.utils.ColorParser; -import cc.carm.lib.mineconfiguration.bukkit.data.ItemConfig; +import cc.carm.lib.mineconfiguration.bukkit.value.item.PreparedItem; import cc.carm.plugin.userprefix.manager.ServiceManager; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -24,16 +25,16 @@ public class PrefixConfig { protected final @NotNull List actions; - protected final @NotNull ItemConfig itemHasPermission; - protected final @Nullable ItemConfig itemNoPermission; - protected final @Nullable ItemConfig itemWhenUsing; + protected final @NotNull ItemStack itemHasPermission; + protected final @Nullable ItemStack itemNoPermission; + protected final @Nullable ItemStack itemWhenUsing; public PrefixConfig(@NotNull String identifier, @NotNull String name, @NotNull String content, int weight, @Nullable String permission, @NotNull List actions, - @NotNull ItemConfig itemHasPermission, - @Nullable ItemConfig itemWhenUsing, - @Nullable ItemConfig itemNoPermission) { + @NotNull ItemStack itemHasPermission, + @Nullable ItemStack itemWhenUsing, + @Nullable ItemStack itemNoPermission) { this.identifier = identifier; this.name = name; this.content = content; @@ -71,21 +72,26 @@ public class PrefixConfig { @NotNull public ItemStack getItemHasPermission(@Nullable Player player) { - return this.itemHasPermission.getItemStack(player); + return getItem(player, this.itemHasPermission); } @Nullable public ItemStack getItemNoPermission(@Nullable Player player) { - if (this.itemNoPermission == null) return null; - return this.itemNoPermission.getItemStack(player); + return getItem(player, this.itemNoPermission); } @Nullable public ItemStack getItemWhenUsing(@Nullable Player player) { - if (this.itemWhenUsing == null) return null; - else return this.itemWhenUsing.getItemStack(player); + return getItem(player, this.itemWhenUsing); } + @Contract("_,!null->!null") + protected @Nullable ItemStack getItem(@Nullable Player player, @Nullable ItemStack item) { + if (item == null) return null; + return PreparedItem.of(item).get(player); + } + + public boolean isPublic() { return getPermission() == null; } diff --git a/src/main/java/cc/carm/plugin/userprefix/manager/PrefixManager.java b/src/main/java/cc/carm/plugin/userprefix/manager/PrefixManager.java index 1cb2048..33e13d1 100644 --- a/src/main/java/cc/carm/plugin/userprefix/manager/PrefixManager.java +++ b/src/main/java/cc/carm/plugin/userprefix/manager/PrefixManager.java @@ -1,15 +1,17 @@ package cc.carm.plugin.userprefix.manager; import cc.carm.lib.easyplugin.gui.configuration.GUIActionConfiguration; -import cc.carm.lib.mineconfiguration.bukkit.data.ItemConfig; +import cc.carm.lib.easyplugin.utils.ItemStackFactory; import cc.carm.plugin.userprefix.Main; import cc.carm.plugin.userprefix.conf.PluginConfig; import cc.carm.plugin.userprefix.conf.prefix.PrefixConfig; +import com.cryptomorin.xseries.XItemStack; import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -80,8 +82,7 @@ public class PrefixManager { null, readActions(PluginConfig.DEFAULT_PREFIX.ACTIONS.get()), PluginConfig.DEFAULT_PREFIX.ITEM.NOT_USING.getNotNull(), - PluginConfig.DEFAULT_PREFIX.ITEM.USING.get(), - null + PluginConfig.DEFAULT_PREFIX.ITEM.USING.get(), null ); Main.debugging(" 完成默认前缀加载 " + defaultPrefix.getName()); } @@ -124,34 +125,38 @@ public class PrefixManager { } public static @NotNull PrefixConfig addPrefix(@NotNull File file) throws Exception { - FileConfiguration configuration = YamlConfiguration.loadConfiguration(file); - String identifier = configuration.getString("identifier"); + FileConfiguration conf = YamlConfiguration.loadConfiguration(file); + String identifier = conf.getString("identifier"); if (identifier == null) throw new Exception("配置文件 " + file.getAbsolutePath() + " 中没有配置前缀的唯一标识。"); - String name = configuration.getString("name"); + String name = conf.getString("name"); if (name == null) throw new Exception("配置文件 " + file.getAbsolutePath() + " 中没有配置前缀的显示名称。"); return new PrefixConfig( identifier, name, - configuration.getString("content", "&r"), - configuration.getInt("weight", 1), - configuration.getString("permission"), - readActions(configuration.getStringList("actions")), + conf.getString("content", "&r"), + conf.getInt("weight", 1), + conf.getString("permission"), + readActions(conf.getStringList("actions")), readItem( - configuration.getConfigurationSection("item.has-perm"), - new ItemConfig(Material.STONE, name, Arrays.asList(" ", "§a➥ 点击切换到该前缀")) + conf.getConfigurationSection("item.has-perm"), + new ItemStackFactory(Material.STONE) + .setDisplayName(name) + .addLore("§a➥ 点击切换到该前缀") + .toItemStack() ), - readItem(configuration.getConfigurationSection("item.using"), null), - readItem(configuration.getConfigurationSection("item.no-perm"), null) + readItem(conf.getConfigurationSection("item.using"), null), + readItem(conf.getConfigurationSection("item.no-perm"), null) ); } @Contract("_,!null->!null") - protected static ItemConfig readItem(@Nullable ConfigurationSection section, @Nullable ItemConfig defaultValue) throws Exception { + protected static ItemStack readItem(@Nullable ConfigurationSection section, + @Nullable ItemStack defaultValue) throws Exception { if (section == null) return defaultValue; - else return ItemConfig.deserialize(section); + else return XItemStack.deserialize(section); } protected static List readActions(@NotNull List strings) {