feat: /dbdadmin repairgens — мгновенно чинит все генераторы

This commit is contained in:
loki5512344 2026-06-14 19:18:30 +02:00
parent eb4a670e9c
commit b666f1b0fa

View file

@ -43,6 +43,7 @@ public class DBDAdminCommand implements TabExecutor {
return switch (args[0].toLowerCase()) { return switch (args[0].toLowerCase()) {
case "list" -> handleList(player, args); case "list" -> handleList(player, args);
case "world" -> handleWorld(player, args); case "world" -> handleWorld(player, args);
case "repairgens" -> handleRepairGens(player);
default -> { default -> {
sendUsage(sender); sendUsage(sender);
yield true; yield true;
@ -124,12 +125,41 @@ public class DBDAdminCommand implements TabExecutor {
return true; return true;
} }
private boolean handleRepairGens(Player player) {
var gameManager = plugin.getGameManager();
var session = gameManager.getCurrentSession();
if (session == null) {
player.sendMessage("§cНет активной игры.");
return true;
}
var genManager = session.getGeneratorManager();
if (genManager == null) {
player.sendMessage("§cGeneratorManager не найден.");
return true;
}
int count = 0;
for (var gen : genManager.getIncompleteGenerators()) {
gen.setProgress(100.0);
genManager.onGeneratorCompleted(gen);
count++;
}
player.sendMessage("§aПочинено генераторов: §e" + count);
if (count > 0 && genManager.areAllRequiredCompleted()) {
player.sendMessage("§a✔ Все необходимые генераторы починены — ворота открываются!");
}
return true;
}
private void sendUsage(CommandSender sender) { private void sendUsage(CommandSender sender) {
var messages = plugin.getConfigManager().getMessages(); var messages = plugin.getConfigManager().getMessages();
sender.sendMessage(messages.get("usage.admin-list-header")); sender.sendMessage(messages.get("usage.admin-list-header"));
sender.sendMessage(messages.get("usage.admin-list-list")); sender.sendMessage(messages.get("usage.admin-list-list"));
sender.sendMessage(messages.get("usage.admin-list-type")); sender.sendMessage(messages.get("usage.admin-list-type"));
sender.sendMessage(messages.get("usage.admin-world")); sender.sendMessage(messages.get("usage.admin-world"));
sender.sendMessage("§7/dbdadmin repairgens §8— §fПочинить все генераторы");
} }
@Override @Override
@ -138,7 +168,7 @@ public class DBDAdminCommand implements TabExecutor {
if (!sender.hasPermission("mdbd.admin")) return List.of(); if (!sender.hasPermission("mdbd.admin")) return List.of();
if (args.length == 1) { if (args.length == 1) {
return Arrays.asList("list", "world").stream() return Arrays.asList("list", "world", "repairgens").stream()
.filter(s -> s.startsWith(args[0].toLowerCase())) .filter(s -> s.startsWith(args[0].toLowerCase()))
.toList(); .toList();
} }