diff --git a/pom.xml b/pom.xml
index 24110f4..33dd5d1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
cc.carm.plugin
UserPrefix
- 1.0.0-SNAPSHOT
+ 1.2.0-SNAPSHOT
8
diff --git a/src/main/java/cc/carm/plugin/userprefix/Main.java b/src/main/java/cc/carm/plugin/userprefix/Main.java
index 7ab0fa5..cbbada3 100644
--- a/src/main/java/cc/carm/plugin/userprefix/Main.java
+++ b/src/main/java/cc/carm/plugin/userprefix/Main.java
@@ -6,11 +6,12 @@ import cc.carm.plugin.userprefix.configuration.PrefixConfig;
import cc.carm.plugin.userprefix.hooker.UserPrefixExpansion;
import cc.carm.plugin.userprefix.listener.UserListener;
import cc.carm.plugin.userprefix.listener.processor.UserNodeUpdateProcessor;
-import cc.carm.plugin.userprefix.manager.ServiceManager;
-import net.luckperms.api.event.user.UserDataRecalculateEvent;
import cc.carm.plugin.userprefix.manager.ConfigManager;
import cc.carm.plugin.userprefix.manager.PrefixManager;
+import cc.carm.plugin.userprefix.manager.ServiceManager;
+import cc.carm.plugin.userprefix.manager.UserManager;
import cc.carm.plugin.userprefix.util.ColorParser;
+import net.luckperms.api.event.user.UserDataRecalculateEvent;
import org.bukkit.Bukkit;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
@@ -47,6 +48,11 @@ public class Main extends JavaPlugin {
log("加载完成 ,共耗时 " + (System.currentTimeMillis() - startTime) + " ms 。");
+
+ if (Bukkit.getOnlinePlayers().size() > 0) {
+ Bukkit.getOnlinePlayers().forEach(UserManager::initPlayer); // 适配热重载
+ }
+
}
@Override
diff --git a/src/main/java/cc/carm/plugin/userprefix/listener/UserListener.java b/src/main/java/cc/carm/plugin/userprefix/listener/UserListener.java
index 356b214..7e9f181 100644
--- a/src/main/java/cc/carm/plugin/userprefix/listener/UserListener.java
+++ b/src/main/java/cc/carm/plugin/userprefix/listener/UserListener.java
@@ -1,9 +1,6 @@
package cc.carm.plugin.userprefix.listener;
-import cc.carm.plugin.userprefix.configuration.PrefixConfig;
import cc.carm.plugin.userprefix.manager.UserManager;
-import cc.carm.plugin.userprefix.ui.PrefixSelectGUI;
-import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
@@ -14,25 +11,13 @@ public class UserListener implements Listener {
@EventHandler
public void onJoin(PlayerJoinEvent event) {
- Player player = event.getPlayer();
-
- UserManager.checkPrefix(player, false);
-
-
- if (PrefixConfig.Functions.NAME_PREFIX.get()) {
- UserManager.createNameTag(event.getPlayer());
- UserManager.updatePrefixView(event.getPlayer(), true);
- }
-
-
+ UserManager.initPlayer(event.getPlayer());
}
@EventHandler
public void onLeave(PlayerQuitEvent event) {
- PrefixSelectGUI.removeOpening(event.getPlayer());
- UserManager.unloadNameTag(event.getPlayer().getUniqueId());
- UserManager.checkingPlayers.remove(event.getPlayer().getUniqueId());
+ UserManager.unloadPlayer(event.getPlayer());
}
diff --git a/src/main/java/cc/carm/plugin/userprefix/listener/processor/UserNodeUpdateProcessor.java b/src/main/java/cc/carm/plugin/userprefix/listener/processor/UserNodeUpdateProcessor.java
index 62e27c0..a266f9f 100644
--- a/src/main/java/cc/carm/plugin/userprefix/listener/processor/UserNodeUpdateProcessor.java
+++ b/src/main/java/cc/carm/plugin/userprefix/listener/processor/UserNodeUpdateProcessor.java
@@ -1,29 +1,16 @@
package cc.carm.plugin.userprefix.listener.processor;
-import net.luckperms.api.event.user.UserDataRecalculateEvent;
-import net.luckperms.api.model.user.User;
import cc.carm.plugin.userprefix.manager.UserManager;
+import net.luckperms.api.event.user.UserDataRecalculateEvent;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
public class UserNodeUpdateProcessor {
-// public static void process(NodeRemoveEvent event) {
-// if (event.getTarget() instanceof User) {
-// if (!(event.getNode() instanceof PermissionNode)) return;
-// User user = (User) event.getTarget();
-// Player player = Bukkit.getPlayer(user.getUniqueId());
-// if (player == null) return;
-// UserManager.checkPrefix(player, true);
-// }
-// }
-
public static void process(UserDataRecalculateEvent event) {
- User user = event.getUser();
- Player player = Bukkit.getPlayer(user.getUniqueId());
+ Player player = Bukkit.getPlayer(event.getUser().getUniqueId());
if (player == null) return;
UserManager.checkPrefix(player, true);
-
}
}
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 f61198d..95c8460 100644
--- a/src/main/java/cc/carm/plugin/userprefix/manager/PrefixManager.java
+++ b/src/main/java/cc/carm/plugin/userprefix/manager/PrefixManager.java
@@ -33,7 +33,9 @@ public class PrefixManager {
Main.log("配置文件中暂无任何前缀配置,请检查。");
return;
}
+
HashMap dataPrefixes = new HashMap<>();
+
for (String prefixIdentifier : prefixesSection.getKeys(false)) {
ConfigurationSection configuredPrefixSection = prefixesSection.getConfigurationSection(prefixIdentifier);
if (configuredPrefixSection == null) continue;
@@ -55,10 +57,12 @@ public class PrefixManager {
dataPrefixes.put(prefixIdentifier, new ConfiguredPrefix(prefixIdentifier, name, content, weight, permission, itemHasPermission, itemNoPermission, itemUsing));
}
- prefixes = dataPrefixes;
+ PrefixManager.prefixes.clear();
+ PrefixManager.prefixes = dataPrefixes;
}
public static void loadDefaultPrefix() {
+ PrefixManager.defaultPrefix = null;
ConfigurationSection defaultPrefixSection = ConfigManager.getConfig().getConfigurationSection("defaultPrefix");
if (defaultPrefixSection != null) {
String name = defaultPrefixSection.getString("name", "默认前缀");
@@ -80,9 +84,9 @@ public class PrefixManager {
.addFlag(ItemFlag.HIDE_ENCHANTS)
.toItemStack()
);
- defaultPrefix = new ConfiguredPrefix("default", name, content, 0, null, itemNotUsing, null, itemUsing);
+ PrefixManager.defaultPrefix = new ConfiguredPrefix("default", name, content, 0, null, itemNotUsing, null, itemUsing);
} else {
- defaultPrefix = new ConfiguredPrefix("default", "默认前缀", "&r", 0, null,
+ PrefixManager.defaultPrefix = new ConfiguredPrefix("default", "默认前缀", "&r", 0, null,
new ItemStackFactory(Material.NAME_TAG)
.setDisplayName("&f默认前缀")
.addLore(" ")
diff --git a/src/main/java/cc/carm/plugin/userprefix/manager/UserManager.java b/src/main/java/cc/carm/plugin/userprefix/manager/UserManager.java
index bd64b45..a0296d6 100644
--- a/src/main/java/cc/carm/plugin/userprefix/manager/UserManager.java
+++ b/src/main/java/cc/carm/plugin/userprefix/manager/UserManager.java
@@ -4,6 +4,7 @@ import cc.carm.plugin.userprefix.Main;
import cc.carm.plugin.userprefix.configuration.PrefixConfig;
import cc.carm.plugin.userprefix.model.ConfiguredPrefix;
import cc.carm.plugin.userprefix.nametag.UserNameTag;
+import cc.carm.plugin.userprefix.ui.PrefixSelectGUI;
import cc.carm.plugin.userprefix.util.MessageUtil;
import net.luckperms.api.model.user.User;
import net.luckperms.api.node.NodeType;
@@ -30,6 +31,20 @@ public class UserManager {
return nameTag;
}
+ public static void initPlayer(Player player) {
+ UserManager.checkPrefix(player, false);
+ if (PrefixConfig.Functions.NAME_PREFIX.get()) {
+ UserManager.createNameTag(player);
+ UserManager.updatePrefixView(player, true);
+ }
+ }
+
+ public static void unloadPlayer(Player player) {
+ PrefixSelectGUI.removeOpening(player);
+ UserManager.unloadNameTag(player.getUniqueId());
+ UserManager.checkingPlayers.remove(player.getUniqueId());
+ }
+
/**
* 更新前缀显示效果
*
@@ -61,7 +76,7 @@ public class UserManager {
if (onlinePlayerPrefix != null) {
tag.setPrefix(onlinePlayer, onlinePlayerPrefix.getContent());
tag.setOrder(onlinePlayer, onlinePlayerPrefix.getWeight());
- Main.debug("为玩家 " + player.getName() + " 设置了 " + player.getName() + "的前缀为 #" + onlinePlayerPrefix.getWeight() + " " + onlinePlayerPrefix.getName());
+ Main.debug("为玩家 " + player.getName() + " 设置了 " + onlinePlayer.getName() + "的前缀为 #" + onlinePlayerPrefix.getWeight() + " " + onlinePlayerPrefix.getName());
}
}
}
diff --git a/src/main/java/cc/carm/plugin/userprefix/model/ConfiguredPrefix.java b/src/main/java/cc/carm/plugin/userprefix/model/ConfiguredPrefix.java
index 8e78fe1..586a06f 100644
--- a/src/main/java/cc/carm/plugin/userprefix/model/ConfiguredPrefix.java
+++ b/src/main/java/cc/carm/plugin/userprefix/model/ConfiguredPrefix.java
@@ -37,58 +37,30 @@ public class ConfiguredPrefix {
return name;
}
- public void setName(String name) {
- this.name = name;
- }
-
public String getContent() {
return ColorParser.parseColor(content);
}
- public void setContent(String content) {
- this.content = content;
- }
-
public int getWeight() {
return weight;
}
- public void setWeight(int weight) {
- this.weight = weight;
- }
-
public String getPermission() {
return permission;
}
- public void setPermission(String permission) {
- this.permission = permission;
- }
-
public ItemStack getItemHasPermission() {
return itemHasPermission;
}
- public void setItemHasPermission(ItemStack itemHasPermission) {
- this.itemHasPermission = itemHasPermission;
- }
-
public ItemStack getItemNoPermission() {
return itemNoPermission;
}
- public void setItemNoPermission(ItemStack itemNoPermission) {
- this.itemNoPermission = itemNoPermission;
- }
-
public ItemStack getItemWhenUsing() {
return itemWhenUsing;
}
- public void setItemWhenUsing(ItemStack itemWhenUsing) {
- this.itemWhenUsing = itemWhenUsing;
- }
-
public boolean isVisibleNoPermission() {
return this.itemNoPermission != null;
}
diff --git a/src/main/java/cc/carm/plugin/userprefix/util/ItemStackFactory.java b/src/main/java/cc/carm/plugin/userprefix/util/ItemStackFactory.java
index 1a3b6e7..3e47b80 100644
--- a/src/main/java/cc/carm/plugin/userprefix/util/ItemStackFactory.java
+++ b/src/main/java/cc/carm/plugin/userprefix/util/ItemStackFactory.java
@@ -128,14 +128,4 @@ public class ItemStackFactory {
this.item.setItemMeta(im);
return this;
}
-
- public ItemStackFactory setSkullOwner(String name) {
- if (this.item.getType() == Material.PLAYER_HEAD || this.item.getType() == Material.PLAYER_WALL_HEAD) {
- SkullMeta im = (SkullMeta) this.item.getItemMeta();
- im.setOwner(name);
- this.item.setItemMeta(im);
- }
-
- return this;
- }
}