feat: 完善稳定性并重构潜影盒安全机制

This commit is contained in:
2026-08-02 03:36:19 +08:00
parent d9b1312e0c
commit 92ef7f6030
35 changed files with 1167 additions and 229 deletions
@@ -41,12 +41,18 @@ public class MaintenanceCommand extends BaseCommand implements TabCompleter {
switch (args[0].toLowerCase(Locale.ROOT)) {
case "on", "enable", "enabled" -> {
maintenanceManager.setEnabled(true);
if (maintenanceManager.setEnabled(true) == MaintenanceManager.OperationResult.SAVE_FAILED) {
sendSaveFailed(sender);
return true;
}
sender.sendMessage(getLang().getPrefixedString("maintenance.messages.enabled"));
return true;
}
case "off", "disable", "disabled" -> {
maintenanceManager.setEnabled(false);
if (maintenanceManager.setEnabled(false) == MaintenanceManager.OperationResult.SAVE_FAILED) {
sendSaveFailed(sender);
return true;
}
sender.sendMessage(getLang().getPrefixedString("maintenance.messages.disabled"));
return true;
}
@@ -62,7 +68,10 @@ public class MaintenanceCommand extends BaseCommand implements TabCompleter {
}
String target = args[1];
if (maintenanceManager.addWhitelistEntry(target)) {
MaintenanceManager.OperationResult result = maintenanceManager.addWhitelistEntry(target);
if (result == MaintenanceManager.OperationResult.SAVE_FAILED) {
sendSaveFailed(sender);
} else if (result == MaintenanceManager.OperationResult.SUCCESS) {
sender.sendMessage(getLang().getPrefixedString("maintenance.messages.whitelist-added",
Map.of("player", target)));
} else {
@@ -78,7 +87,10 @@ public class MaintenanceCommand extends BaseCommand implements TabCompleter {
}
String target = args[1];
if (maintenanceManager.removeWhitelistEntry(target)) {
MaintenanceManager.OperationResult result = maintenanceManager.removeWhitelistEntry(target);
if (result == MaintenanceManager.OperationResult.SAVE_FAILED) {
sendSaveFailed(sender);
} else if (result == MaintenanceManager.OperationResult.SUCCESS) {
sender.sendMessage(getLang().getPrefixedString("maintenance.messages.whitelist-removed",
Map.of("player", target)));
} else {
@@ -123,6 +135,10 @@ public class MaintenanceCommand extends BaseCommand implements TabCompleter {
)));
}
private void sendSaveFailed(CommandSender sender) {
sender.sendMessage(getLang().getPrefixedString("maintenance.messages.save-failed"));
}
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
if (!sender.hasPermission(getPermission())) {