新增权限组称号前后缀

This commit is contained in:
zhangyuheng 2024-08-11 08:30:24 +08:00
parent e6cea57dfe
commit bb32f085ac
8 changed files with 74 additions and 13 deletions

View File

@ -4,7 +4,7 @@ plugins {
} }
group = "cn.lunadeer" group = "cn.lunadeer"
version = "2.1.4-beta" version = "2.1.5-beta"
java { java {
toolchain.languageVersion.set(JavaLanguageVersion.of(21)) toolchain.languageVersion.set(JavaLanguageVersion.of(21))

View File

@ -566,6 +566,9 @@ public class Cache {
} }
public @Nullable GroupDTO getPlayerUsingGroupTitle(UUID uuid) { public @Nullable GroupDTO getPlayerUsingGroupTitle(UUID uuid) {
if (!Dominion.config.getGroupTitleEnable()) {
return null;
}
if (map_player_using_group_title_id.containsKey(uuid)) { if (map_player_using_group_title_id.containsKey(uuid)) {
return getGroup(map_player_using_group_title_id.get(uuid)); return getGroup(map_player_using_group_title_id.get(uuid));
} }

View File

@ -40,8 +40,13 @@ public final class Dominion extends JavaPlugin {
AutoClean.run(); AutoClean.run();
Cache.instance = new Cache(); Cache.instance = new Cache();
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { if (config.getGroupTitleEnable()) {
new PlaceHolderApi(this); if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
new PlaceHolderApi(this);
} else {
XLogger.warn("未找到 PlaceholderAPI 插件,无法使用权限组组称号功能,已自动关闭");
config.setGroupTitleEnable(false);
}
} }
new RegisterEvents(this); new RegisterEvents(this);

View File

@ -1,6 +1,7 @@
package cn.lunadeer.dominion.dtos; package cn.lunadeer.dominion.dtos;
import cn.lunadeer.dominion.Cache; import cn.lunadeer.dominion.Cache;
import cn.lunadeer.dominion.Dominion;
import cn.lunadeer.minecraftpluginutils.ColorParser; import cn.lunadeer.minecraftpluginutils.ColorParser;
import cn.lunadeer.minecraftpluginutils.databse.DatabaseManager; import cn.lunadeer.minecraftpluginutils.databse.DatabaseManager;
import cn.lunadeer.minecraftpluginutils.databse.Field; import cn.lunadeer.minecraftpluginutils.databse.Field;
@ -38,11 +39,13 @@ public class GroupDTO {
} }
public Component getNameColoredComponent() { public Component getNameColoredComponent() {
return ColorParser.getComponentType((String) name_colored.value); String with_pre_suf = Dominion.config.getGroupTitlePrefix() + (String) name_colored.value + Dominion.config.getGroupTitleSuffix();
return ColorParser.getComponentType(with_pre_suf);
} }
public String getNameColoredBukkit() { public String getNameColoredBukkit() {
return ColorParser.getBukkitType((String) name_colored.value); String with_pre_suf = Dominion.config.getGroupTitlePrefix() + (String) name_colored.value + Dominion.config.getGroupTitleSuffix();
return ColorParser.getBukkitType(with_pre_suf);
} }
public Boolean getAdmin() { public Boolean getAdmin() {

View File

@ -90,6 +90,9 @@ public class ConfigManager {
} }
_fly_permission_nodes = _file.getStringList("FlyPermissionNodes"); _fly_permission_nodes = _file.getStringList("FlyPermissionNodes");
_residence_migration = _file.getBoolean("ResidenceMigration", false); _residence_migration = _file.getBoolean("ResidenceMigration", false);
_group_title_enable = _file.getBoolean("GroupTitle.Enable", false);
_group_title_prefix = _file.getString("GroupTitle.Prefix", "&#ffffff[");
_group_title_suffix = _file.getString("GroupTitle.Suffix", "&#ffffff]");
saveAll(); // 回写文件 防止文件中的数据不完整 saveAll(); // 回写文件 防止文件中的数据不完整
Flag.loadFromJson(); // 加载 Flag 配置 Flag.loadFromJson(); // 加载 Flag 配置
} }
@ -121,6 +124,9 @@ public class ConfigManager {
_file.set("Economy.Refund", _economy_refund); _file.set("Economy.Refund", _economy_refund);
_file.set("FlyPermissionNodes", _fly_permission_nodes); _file.set("FlyPermissionNodes", _fly_permission_nodes);
_file.set("ResidenceMigration", _residence_migration); _file.set("ResidenceMigration", _residence_migration);
_file.set("GroupTitle.Enable", _group_title_enable);
_file.set("GroupTitle.Prefix", _group_title_prefix);
_file.set("GroupTitle.Suffix", _group_title_suffix);
_plugin.saveConfig(); _plugin.saveConfig();
} }
@ -416,6 +422,36 @@ public class ConfigManager {
_plugin.saveConfig(); _plugin.saveConfig();
} }
public Boolean getGroupTitleEnable() {
return _group_title_enable;
}
public void setGroupTitleEnable(Boolean group_title_enable) {
_group_title_enable = group_title_enable;
_file.set("GroupTitle.Enable", group_title_enable);
_plugin.saveConfig();
}
public String getGroupTitlePrefix() {
return _group_title_prefix;
}
public void setGroupTitlePrefix(String group_title_prefix) {
_group_title_prefix = group_title_prefix;
_file.set("GroupTitle.Prefix", group_title_prefix);
_plugin.saveConfig();
}
public String getGroupTitleSuffix() {
return _group_title_suffix;
}
public void setGroupTitleSuffix(String group_title_suffix) {
_group_title_suffix = group_title_suffix;
_file.set("GroupTitle.Suffix", group_title_suffix);
_plugin.saveConfig();
}
private final Dominion _plugin; private final Dominion _plugin;
private FileConfiguration _file; private FileConfiguration _file;
private Boolean _debug; private Boolean _debug;
@ -457,4 +493,8 @@ public class ConfigManager {
private List<String> _fly_permission_nodes; private List<String> _fly_permission_nodes;
private Boolean _residence_migration; private Boolean _residence_migration;
private Integer _spawn_protection; private Integer _spawn_protection;
private Boolean _group_title_enable;
private String _group_title_prefix;
private String _group_title_suffix;
} }

View File

@ -4,7 +4,6 @@ import cn.lunadeer.dominion.Cache;
import cn.lunadeer.dominion.dtos.GroupDTO; import cn.lunadeer.dominion.dtos.GroupDTO;
import cn.lunadeer.minecraftpluginutils.XLogger; import cn.lunadeer.minecraftpluginutils.XLogger;
import me.clip.placeholderapi.expansion.PlaceholderExpansion; import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

View File

@ -30,6 +30,9 @@ public class Menu {
Line list = Line.create() Line list = Line.create()
.append(Button.create("我的领地").setExecuteCommand("/dominion list").build()) .append(Button.create("我的领地").setExecuteCommand("/dominion list").build())
.append("查看我的领地"); .append("查看我的领地");
Line title = Line.create()
.append(Button.create("称号列表").setExecuteCommand("/dominion title_list").build())
.append("查看/使用权限组称号");
Line template = Line.create() Line template = Line.create()
.append(Button.create("模板列表").setExecuteCommand("/dominion template list").build()) .append(Button.create("模板列表").setExecuteCommand("/dominion template list").build())
.append("成员权限模板列表"); .append("成员权限模板列表");
@ -55,13 +58,14 @@ public class Menu {
.append(Button.create("重载配置").setExecuteCommand("/dominion reload_config").build()) .append(Button.create("重载配置").setExecuteCommand("/dominion reload_config").build())
.append("重载配置文件"); .append("重载配置文件");
ListView view = ListView.create(10, "/dominion menu"); ListView view = ListView.create(10, "/dominion menu");
view.title("Dominion 领地系统") view.title("Dominion 领地系统");
.navigator(Line.create().append("主菜单")) view.navigator(Line.create().append("主菜单"));
.add(create) view.add(create);
.add(list) if (Dominion.config.getGroupTitleEnable()) view.add(list);
.add(template) view.add(title);
.add(help) view.add(template);
.add(link); view.add(help);
view.add(link);
if (Dominion.config.getResidenceMigration()) { if (Dominion.config.getResidenceMigration()) {
view.add(migrate); view.add(migrate);
} }

View File

@ -53,6 +53,13 @@ FlyPermissionNodes:
# 是否允许玩家从 Residence 迁移领地数据 # 是否允许玩家从 Residence 迁移领地数据
ResidenceMigration: false ResidenceMigration: false
# 权限组称号 - 使用权限组当作称号(需要PlaceholderAPI插件)
# Papi: %dominion_group_title%
GroupTitle:
Enable: false
Prefix: "&#ffffff["
Suffix: "&#ffffff]"
BlueMap: false BlueMap: false
Dynmap: false Dynmap: false