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

Compare commits

...

7 Commits

Author SHA1 Message Date
carm bcc8d077a9 采用外部库 2021-08-25 14:27:34 +08:00
carm eaa386a6ab 采用外部库 2021-08-25 14:25:43 +08:00
carm 22bf9d7d94 Merge remote-tracking branch 'origin/master' 2021-08-25 14:22:30 +08:00
carm 3de812c42a 采用外部库 2021-08-25 14:21:04 +08:00
Carm 6abc13af23 自动化CI 2021-08-25 14:17:52 +08:00
carm bb126c676e 优化代码结构,移除无用代码,减少代码复用。 2021-08-25 13:37:31 +08:00
carm f6a5538da3 修复高版本重载失效的问题 2021-08-25 13:37:09 +08:00
10 changed files with 88 additions and 95 deletions
+26
View File
@@ -0,0 +1,26 @@
# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
name: Java CI with Maven
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: '11'
distribution: 'adopt'
cache: maven
- name: Build with Maven
run: mvn -B package --file pom.xml
+23 -17
View File
@@ -6,7 +6,7 @@
<groupId>cc.carm.plugin</groupId>
<artifactId>UserPrefix</artifactId>
<version>1.0.0-SNAPSHOT</version>
<version>1.2.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
@@ -19,14 +19,34 @@
<repositories>
<repository>
<id>ycraft</id>
<url>https://maven.ycraft.cn/repository/maven-public/</url>
<id>spigotmc-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/public/</url>
</repository>
<repository>
<id>placeholder-api-repo</id>
<url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
</repository>
<repository>
<id>lss233-repo</id>
<url>https://lss233.littleservice.cn/repositories/minecraft</url>
</repository>
<repository>
<id>oss-repo</id>
<url>https://oss.sonatype.org/content/groups/public/</url>
</repository>
<repository>
<id>luck-repo</id>
<url>https://repo.lucko.me/</url>
</repository>
<repository>
<id>maven-central</id>
<url>https://repo1.maven.org/maven2/</url>
</repository>
</repositories>
<dependencies>
@@ -52,20 +72,6 @@
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.comphenix.protocol</groupId>
<artifactId>ProtocolLib</artifactId>
<version>4.5.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.comphenix.packetwrapper</groupId>
<artifactId>PacketWrapper</artifactId>
<version>1.13-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
@@ -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
@@ -1,9 +1,10 @@
package cc.carm.plugin.userprefix.command;
import cc.carm.plugin.userprefix.ui.PrefixSelectGUI;
import cc.carm.plugin.userprefix.manager.ConfigManager;
import cc.carm.plugin.userprefix.manager.PrefixManager;
import cc.carm.plugin.userprefix.manager.UserManager;
import cc.carm.plugin.userprefix.model.ConfiguredPrefix;
import cc.carm.plugin.userprefix.ui.PrefixSelectGUI;
import cc.carm.plugin.userprefix.util.ColorParser;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
@@ -30,7 +31,8 @@ public class UserPrefixAdminCommand implements CommandExecutor {
} else if (aim.equalsIgnoreCase("reload")) {
long s1 = System.currentTimeMillis();
PrefixSelectGUI.closeAll(); // 关掉所有正在显示的前缀列表
PrefixManager.loadConfiguredPrefixes(); //重载配置文件
ConfigManager.reloadConfig(); // 重载配置文件
PrefixManager.loadConfiguredPrefixes(); //加载重载后了的配置文件
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
UserManager.checkPrefix(onlinePlayer, false);
/*
@@ -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());
}
@@ -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);
}
}
@@ -33,7 +33,9 @@ public class PrefixManager {
Main.log("配置文件中暂无任何前缀配置,请检查。");
return;
}
HashMap<String, ConfiguredPrefix> 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(" ")
@@ -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());
}
}
}
@@ -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;
}
@@ -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;
}
}