修复占位符括号+tag管理员CLI权限视图
1. 变量替换正则新增{}花括号支持,支持领地名和领地两种写法
2. CLI showPlayerPerm:tag管理员(isAdmin)查看管理员成员时看到完整权限编辑视图,不再简化;可切换管理员身份
This commit is contained in:
@@ -827,17 +827,17 @@ public class AreaCLIManager {
|
||||
// 获取该成员的per-player权限
|
||||
Map<String, Boolean> playerPerms = areaProtect.getPlayerPermMap(landId, targetPlayer);
|
||||
|
||||
// ★ 管理员简化面板:管理员自动获得所有权限,只显示身份切换+发光开关
|
||||
// ★ 管理员简化面板:仅非领地主且非tag管理员时简化显示
|
||||
boolean isTargetAdmin = areaProtect.isLandAdmin(land.name, targetPlayer);
|
||||
if (isTargetAdmin) {
|
||||
if (isTargetAdmin && !isOwner && !isAdmin) {
|
||||
p.sendMessage(header(targetPlayer + " 的独立权限"));
|
||||
p.sendMessage(Component.text(""));
|
||||
p.sendMessage(Component.text("§6§l该玩家是管理员,自动获得所有权限"));
|
||||
p.sendMessage(Component.text("§7管理员不受任何权限限制(发光效果除外)"));
|
||||
p.sendMessage(Component.text(""));
|
||||
|
||||
// ★ 领地主:可切换管理员身份
|
||||
if (isOwner && !targetPlayer.equalsIgnoreCase(land.owner)) {
|
||||
// ★ 领地主或tag管理员:可切换管理员身份
|
||||
if ((isOwner || isAdmin) && !targetPlayer.equalsIgnoreCase(land.owner)) {
|
||||
Component adminLine = Component.empty();
|
||||
adminLine = adminLine.append(Component.text("§6✔ §f身份: §6管理员"));
|
||||
adminLine = adminLine.append(Component.text(" "));
|
||||
|
||||
@@ -791,16 +791,18 @@ public class AreaProtection implements Listener {
|
||||
String msg = raw;
|
||||
|
||||
// ★ 变量替换:支持多种括号格式(DOTALL确保跨行匹配)
|
||||
// 支持 () [] {} 【】 <> 《》 六种括号
|
||||
if (playerName != null) {
|
||||
java.util.regex.Pattern varPattern = java.util.regex.Pattern.compile(
|
||||
"[((\\[【<《]玩家[))\\]】>》]",
|
||||
"[((\\[【<《{]玩家[))\\]】>》}]",
|
||||
java.util.regex.Pattern.DOTALL);
|
||||
msg = varPattern.matcher(msg).replaceAll(
|
||||
java.util.regex.Matcher.quoteReplacement(playerName));
|
||||
}
|
||||
if (landName != null) {
|
||||
// 同时支持"领地"和"领地名"两种写法
|
||||
java.util.regex.Pattern varPattern = java.util.regex.Pattern.compile(
|
||||
"[((\\[【<《]领地[))\\]】>》]",
|
||||
"[((\\[【<《{]领地名?[))\\]】>》}]",
|
||||
java.util.regex.Pattern.DOTALL);
|
||||
msg = varPattern.matcher(msg).replaceAll(
|
||||
java.util.regex.Matcher.quoteReplacement(landName));
|
||||
|
||||
Reference in New Issue
Block a user