diff --git a/pom.xml b/pom.xml index f84e956..f2a2172 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ cn.lunadeer Dominion - 1.11.6-beta + 1.11.7-beta jar Dominion diff --git a/src/main/java/cn/lunadeer/dominion/Commands.java b/src/main/java/cn/lunadeer/dominion/Commands.java index da041dd..7f0a4d8 100644 --- a/src/main/java/cn/lunadeer/dominion/Commands.java +++ b/src/main/java/cn/lunadeer/dominion/Commands.java @@ -2,6 +2,7 @@ package cn.lunadeer.dominion; import cn.lunadeer.dominion.commands.DominionFlag; import cn.lunadeer.dominion.commands.DominionOperate; +import cn.lunadeer.dominion.commands.Operator; import cn.lunadeer.dominion.commands.PlayerPrivilege; import cn.lunadeer.dominion.controllers.PlayerController; import cn.lunadeer.dominion.dtos.PlayerDTO; @@ -127,6 +128,8 @@ public class Commands implements TabExecutor { case "give": DominionOperate.giveDominion(sender, args); break; + case "reload_cache": + Operator.reloadCache(sender, args); default: return false; } @@ -155,7 +158,8 @@ public class Commands implements TabExecutor { "set_enter_msg", "set_leave_msg", "rename", - "give" + "give", + "reload_cache" ); } if (args.length == 2) { diff --git a/src/main/java/cn/lunadeer/dominion/commands/Apis.java b/src/main/java/cn/lunadeer/dominion/commands/Apis.java index e1272f7..fe74ea0 100644 --- a/src/main/java/cn/lunadeer/dominion/commands/Apis.java +++ b/src/main/java/cn/lunadeer/dominion/commands/Apis.java @@ -46,4 +46,15 @@ public class Apis { Dominion.pointsSelect.put(player.getUniqueId(), points); } + public static boolean notOpOrConsole(CommandSender sender) { + if (sender instanceof Player) { + Player player = (Player) sender; + if (!player.isOp()) { + Notification.warn(player, "你没有权限使用此命令"); + return true; + } + } + return false; + } + } diff --git a/src/main/java/cn/lunadeer/dominion/commands/Operator.java b/src/main/java/cn/lunadeer/dominion/commands/Operator.java new file mode 100644 index 0000000..d7f70ff --- /dev/null +++ b/src/main/java/cn/lunadeer/dominion/commands/Operator.java @@ -0,0 +1,20 @@ +package cn.lunadeer.dominion.commands; + +import cn.lunadeer.dominion.Cache; +import cn.lunadeer.dominion.utils.Notification; +import org.bukkit.command.CommandSender; + +import static cn.lunadeer.dominion.commands.Apis.notOpOrConsole; + +public class Operator { + + public static void reloadCache(CommandSender sender, String[] args){ + if (notOpOrConsole(sender)) return; + Notification.info(sender, "正在从数据库重新加载领地缓存..."); + Cache.instance.loadDominions(); + Notification.info(sender, "正在从数据库重新加载玩家权限缓存..."); + Cache.instance.loadPlayerPrivileges(); + Notification.info(sender, "缓存刷新完成"); + } + +} diff --git a/src/main/java/cn/lunadeer/dominion/tuis/Menu.java b/src/main/java/cn/lunadeer/dominion/tuis/Menu.java index af3ea60..500eede 100644 --- a/src/main/java/cn/lunadeer/dominion/tuis/Menu.java +++ b/src/main/java/cn/lunadeer/dominion/tuis/Menu.java @@ -25,12 +25,18 @@ public class Menu { .append(Component.text("[使用文档]", ViewStyles.action_color) .clickEvent(ClickEvent.clickEvent(ClickEvent.Action.OPEN_URL, "https://ssl.lunadeer.cn:14448/doc/23/"))) .append("在浏览器中打开使用文档"); + Line reload = Line.create() + .append(Button.create("重载缓存", "/dominion reload_cache")) + .append("手动刷新缓存可解决一些玩家操作无效问题,不建议频繁操作"); View view = View.create(); view.title("Dominion 领地系统") .navigator(Line.create().append("主菜单")) .addLine(list) .addLine(help) - .addLine(link) - .showOn(player); + .addLine(link); + if (player.isOp()) { + view.addLine(reload); + } + view.showOn(player); } }