1
mirror of https://github.com/CarmJos/UserPrefix.git synced 2026-06-05 00:35:02 +08:00

优化代码结构,移除无用代码,减少代码复用。

This commit is contained in:
carm
2021-08-25 13:37:31 +08:00
parent f6a5538da3
commit bb126c676e
8 changed files with 36 additions and 77 deletions
+1 -1
View File
@@ -6,7 +6,7 @@
<groupId>cc.carm.plugin</groupId> <groupId>cc.carm.plugin</groupId>
<artifactId>UserPrefix</artifactId> <artifactId>UserPrefix</artifactId>
<version>1.0.0-SNAPSHOT</version> <version>1.2.0-SNAPSHOT</version>
<properties> <properties>
<maven.compiler.source>8</maven.compiler.source> <maven.compiler.source>8</maven.compiler.source>
@@ -6,11 +6,12 @@ import cc.carm.plugin.userprefix.configuration.PrefixConfig;
import cc.carm.plugin.userprefix.hooker.UserPrefixExpansion; import cc.carm.plugin.userprefix.hooker.UserPrefixExpansion;
import cc.carm.plugin.userprefix.listener.UserListener; import cc.carm.plugin.userprefix.listener.UserListener;
import cc.carm.plugin.userprefix.listener.processor.UserNodeUpdateProcessor; 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.ConfigManager;
import cc.carm.plugin.userprefix.manager.PrefixManager; 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 cc.carm.plugin.userprefix.util.ColorParser;
import net.luckperms.api.event.user.UserDataRecalculateEvent;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
@@ -47,6 +48,11 @@ public class Main extends JavaPlugin {
log("加载完成 ,共耗时 " + (System.currentTimeMillis() - startTime) + " ms 。"); log("加载完成 ,共耗时 " + (System.currentTimeMillis() - startTime) + " ms 。");
if (Bukkit.getOnlinePlayers().size() > 0) {
Bukkit.getOnlinePlayers().forEach(UserManager::initPlayer); // 适配热重载
}
} }
@Override @Override
@@ -1,9 +1,6 @@
package cc.carm.plugin.userprefix.listener; 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.manager.UserManager;
import cc.carm.plugin.userprefix.ui.PrefixSelectGUI;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
@@ -14,25 +11,13 @@ public class UserListener implements Listener {
@EventHandler @EventHandler
public void onJoin(PlayerJoinEvent event) { public void onJoin(PlayerJoinEvent event) {
Player player = event.getPlayer(); UserManager.initPlayer(event.getPlayer());
UserManager.checkPrefix(player, false);
if (PrefixConfig.Functions.NAME_PREFIX.get()) {
UserManager.createNameTag(event.getPlayer());
UserManager.updatePrefixView(event.getPlayer(), true);
}
} }
@EventHandler @EventHandler
public void onLeave(PlayerQuitEvent event) { public void onLeave(PlayerQuitEvent event) {
PrefixSelectGUI.removeOpening(event.getPlayer()); UserManager.unloadPlayer(event.getPlayer());
UserManager.unloadNameTag(event.getPlayer().getUniqueId());
UserManager.checkingPlayers.remove(event.getPlayer().getUniqueId());
} }
@@ -1,29 +1,16 @@
package cc.carm.plugin.userprefix.listener.processor; 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 cc.carm.plugin.userprefix.manager.UserManager;
import net.luckperms.api.event.user.UserDataRecalculateEvent;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
public class UserNodeUpdateProcessor { 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) { public static void process(UserDataRecalculateEvent event) {
User user = event.getUser(); Player player = Bukkit.getPlayer(event.getUser().getUniqueId());
Player player = Bukkit.getPlayer(user.getUniqueId());
if (player == null) return; if (player == null) return;
UserManager.checkPrefix(player, true); UserManager.checkPrefix(player, true);
} }
} }
@@ -33,7 +33,9 @@ public class PrefixManager {
Main.log("配置文件中暂无任何前缀配置,请检查。"); Main.log("配置文件中暂无任何前缀配置,请检查。");
return; return;
} }
HashMap<String, ConfiguredPrefix> dataPrefixes = new HashMap<>(); HashMap<String, ConfiguredPrefix> dataPrefixes = new HashMap<>();
for (String prefixIdentifier : prefixesSection.getKeys(false)) { for (String prefixIdentifier : prefixesSection.getKeys(false)) {
ConfigurationSection configuredPrefixSection = prefixesSection.getConfigurationSection(prefixIdentifier); ConfigurationSection configuredPrefixSection = prefixesSection.getConfigurationSection(prefixIdentifier);
if (configuredPrefixSection == null) continue; if (configuredPrefixSection == null) continue;
@@ -55,10 +57,12 @@ public class PrefixManager {
dataPrefixes.put(prefixIdentifier, new ConfiguredPrefix(prefixIdentifier, name, content, weight, permission, itemHasPermission, itemNoPermission, itemUsing)); 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() { public static void loadDefaultPrefix() {
PrefixManager.defaultPrefix = null;
ConfigurationSection defaultPrefixSection = ConfigManager.getConfig().getConfigurationSection("defaultPrefix"); ConfigurationSection defaultPrefixSection = ConfigManager.getConfig().getConfigurationSection("defaultPrefix");
if (defaultPrefixSection != null) { if (defaultPrefixSection != null) {
String name = defaultPrefixSection.getString("name", "默认前缀"); String name = defaultPrefixSection.getString("name", "默认前缀");
@@ -80,9 +84,9 @@ public class PrefixManager {
.addFlag(ItemFlag.HIDE_ENCHANTS) .addFlag(ItemFlag.HIDE_ENCHANTS)
.toItemStack() .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 { } else {
defaultPrefix = new ConfiguredPrefix("default", "默认前缀", "&r", 0, null, PrefixManager.defaultPrefix = new ConfiguredPrefix("default", "默认前缀", "&r", 0, null,
new ItemStackFactory(Material.NAME_TAG) new ItemStackFactory(Material.NAME_TAG)
.setDisplayName("&f默认前缀") .setDisplayName("&f默认前缀")
.addLore(" ") .addLore(" ")
@@ -4,6 +4,7 @@ import cc.carm.plugin.userprefix.Main;
import cc.carm.plugin.userprefix.configuration.PrefixConfig; import cc.carm.plugin.userprefix.configuration.PrefixConfig;
import cc.carm.plugin.userprefix.model.ConfiguredPrefix; import cc.carm.plugin.userprefix.model.ConfiguredPrefix;
import cc.carm.plugin.userprefix.nametag.UserNameTag; import cc.carm.plugin.userprefix.nametag.UserNameTag;
import cc.carm.plugin.userprefix.ui.PrefixSelectGUI;
import cc.carm.plugin.userprefix.util.MessageUtil; import cc.carm.plugin.userprefix.util.MessageUtil;
import net.luckperms.api.model.user.User; import net.luckperms.api.model.user.User;
import net.luckperms.api.node.NodeType; import net.luckperms.api.node.NodeType;
@@ -30,6 +31,20 @@ public class UserManager {
return nameTag; 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) { if (onlinePlayerPrefix != null) {
tag.setPrefix(onlinePlayer, onlinePlayerPrefix.getContent()); tag.setPrefix(onlinePlayer, onlinePlayerPrefix.getContent());
tag.setOrder(onlinePlayer, onlinePlayerPrefix.getWeight()); 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());
} }
} }
} }
@@ -37,58 +37,30 @@ public class ConfiguredPrefix {
return name; return name;
} }
public void setName(String name) {
this.name = name;
}
public String getContent() { public String getContent() {
return ColorParser.parseColor(content); return ColorParser.parseColor(content);
} }
public void setContent(String content) {
this.content = content;
}
public int getWeight() { public int getWeight() {
return weight; return weight;
} }
public void setWeight(int weight) {
this.weight = weight;
}
public String getPermission() { public String getPermission() {
return permission; return permission;
} }
public void setPermission(String permission) {
this.permission = permission;
}
public ItemStack getItemHasPermission() { public ItemStack getItemHasPermission() {
return itemHasPermission; return itemHasPermission;
} }
public void setItemHasPermission(ItemStack itemHasPermission) {
this.itemHasPermission = itemHasPermission;
}
public ItemStack getItemNoPermission() { public ItemStack getItemNoPermission() {
return itemNoPermission; return itemNoPermission;
} }
public void setItemNoPermission(ItemStack itemNoPermission) {
this.itemNoPermission = itemNoPermission;
}
public ItemStack getItemWhenUsing() { public ItemStack getItemWhenUsing() {
return itemWhenUsing; return itemWhenUsing;
} }
public void setItemWhenUsing(ItemStack itemWhenUsing) {
this.itemWhenUsing = itemWhenUsing;
}
public boolean isVisibleNoPermission() { public boolean isVisibleNoPermission() {
return this.itemNoPermission != null; return this.itemNoPermission != null;
} }
@@ -128,14 +128,4 @@ public class ItemStackFactory {
this.item.setItemMeta(im); this.item.setItemMeta(im);
return this; 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;
}
} }