新增权限组称号前后缀

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"
version = "2.1.4-beta"
version = "2.1.5-beta"
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(21))

View File

@ -566,6 +566,9 @@ public class Cache {
}
public @Nullable GroupDTO getPlayerUsingGroupTitle(UUID uuid) {
if (!Dominion.config.getGroupTitleEnable()) {
return null;
}
if (map_player_using_group_title_id.containsKey(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();
Cache.instance = new Cache();
if (config.getGroupTitleEnable()) {
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
new PlaceHolderApi(this);
} else {
XLogger.warn("未找到 PlaceholderAPI 插件,无法使用权限组组称号功能,已自动关闭");
config.setGroupTitleEnable(false);
}
}
new RegisterEvents(this);

View File

@ -1,6 +1,7 @@
package cn.lunadeer.dominion.dtos;
import cn.lunadeer.dominion.Cache;
import cn.lunadeer.dominion.Dominion;
import cn.lunadeer.minecraftpluginutils.ColorParser;
import cn.lunadeer.minecraftpluginutils.databse.DatabaseManager;
import cn.lunadeer.minecraftpluginutils.databse.Field;
@ -38,11 +39,13 @@ public class GroupDTO {
}
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() {
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() {

View File

@ -90,6 +90,9 @@ public class ConfigManager {
}
_fly_permission_nodes = _file.getStringList("FlyPermissionNodes");
_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(); // 回写文件 防止文件中的数据不完整
Flag.loadFromJson(); // 加载 Flag 配置
}
@ -121,6 +124,9 @@ public class ConfigManager {
_file.set("Economy.Refund", _economy_refund);
_file.set("FlyPermissionNodes", _fly_permission_nodes);
_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();
}
@ -416,6 +422,36 @@ public class ConfigManager {
_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 FileConfiguration _file;
private Boolean _debug;
@ -457,4 +493,8 @@ public class ConfigManager {
private List<String> _fly_permission_nodes;
private Boolean _residence_migration;
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.minecraftpluginutils.XLogger;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;

View File

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

View File

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