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);
}
}