From b666f1b0fa5b6b8eb62c389ba92cf08a3c95434e Mon Sep 17 00:00:00 2001 From: loki5512344 Date: Sun, 14 Jun 2026 19:18:30 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20/dbdadmin=20repairgens=20=E2=80=94=20?= =?UTF-8?q?=D0=BC=D0=B3=D0=BD=D0=BE=D0=B2=D0=B5=D0=BD=D0=BD=D0=BE=20=D1=87?= =?UTF-8?q?=D0=B8=D0=BD=D0=B8=D1=82=20=D0=B2=D1=81=D0=B5=20=D0=B3=D0=B5?= =?UTF-8?q?=D0=BD=D0=B5=D1=80=D0=B0=D1=82=D0=BE=D1=80=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dev/loki/command/DBDAdminCommand.java | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/main/java/dev/loki/command/DBDAdminCommand.java b/src/main/java/dev/loki/command/DBDAdminCommand.java index 516f0c4..194cd61 100644 --- a/src/main/java/dev/loki/command/DBDAdminCommand.java +++ b/src/main/java/dev/loki/command/DBDAdminCommand.java @@ -43,6 +43,7 @@ public class DBDAdminCommand implements TabExecutor { return switch (args[0].toLowerCase()) { case "list" -> handleList(player, args); case "world" -> handleWorld(player, args); + case "repairgens" -> handleRepairGens(player); default -> { sendUsage(sender); yield true; @@ -124,12 +125,41 @@ public class DBDAdminCommand implements TabExecutor { 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) { var messages = plugin.getConfigManager().getMessages(); sender.sendMessage(messages.get("usage.admin-list-header")); sender.sendMessage(messages.get("usage.admin-list-list")); sender.sendMessage(messages.get("usage.admin-list-type")); sender.sendMessage(messages.get("usage.admin-world")); + sender.sendMessage("§7/dbdadmin repairgens §8— §fПочинить все генераторы"); } @Override @@ -138,7 +168,7 @@ public class DBDAdminCommand implements TabExecutor { if (!sender.hasPermission("mdbd.admin")) return List.of(); if (args.length == 1) { - return Arrays.asList("list", "world").stream() + return Arrays.asList("list", "world", "repairgens").stream() .filter(s -> s.startsWith(args[0].toLowerCase())) .toList(); }