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) {