diff --git a/src/main/java/de/lasertec/command/LtAdminCommand.java b/src/main/java/de/lasertec/command/LtAdminCommand.java deleted file mode 100644 index 926a277..0000000 --- a/src/main/java/de/lasertec/command/LtAdminCommand.java +++ /dev/null @@ -1,220 +0,0 @@ -package de.lasertec.command; - -import de.lasertec.LasertecPlugin; -import de.lasertec.arena.Arena; -import de.lasertec.game.Game; -import de.lasertec.game.Team; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -public class LtAdminCommand implements CommandExecutor { - - private final LasertecPlugin plugin; - - public LtAdminCommand(LasertecPlugin plugin) { this.plugin = plugin; } - - @Override - public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { - if (!sender.hasPermission("lasertec.admin")) { - sender.sendMessage("§cKeine Berechtigung!"); - return true; - } - String pre = plugin.getConfigManager().getPrefix(); - - if (args.length == 0 || args[0].equalsIgnoreCase("help")) { - help(sender); - return true; - } - - switch (args[0].toLowerCase()) { - - // ── Arena erstellen ─────────────────────────────────────────────── - case "create", "createarena" -> { - if (args.length < 2) { sender.sendMessage(pre + "§c/ltadmin create "); return true; } - Arena arena = plugin.getArenaManager().createArena(args[1]); - if (arena == null) { sender.sendMessage(pre + "§cArena existiert bereits!"); return true; } - plugin.getGameManager().createGame(arena); - sender.sendMessage(pre + "§aArena §e" + args[1] + " §aerstellt."); - sender.sendMessage(pre + "§7Nächste Schritte:"); - sender.sendMessage("§7 /ltadmin setspawn §e" + args[1] + " red §7(stehe am Spawn)"); - sender.sendMessage("§7 /ltadmin setbase §e" + args[1] + " red §7(stehe an der Basis)"); - sender.sendMessage("§7 → Für alle 4 Teams wiederholen"); - sender.sendMessage("§7 /ltadmin enable §e" + args[1]); - } - - // ── Arena löschen ───────────────────────────────────────────────── - case "delete", "deletearena" -> { - if (args.length < 2) { sender.sendMessage(pre + "§c/ltadmin delete "); return true; } - if (plugin.getArenaManager().deleteArena(args[1])) - sender.sendMessage(pre + "§aArena §e" + args[1] + " §agelöscht."); - else sender.sendMessage(pre + "§cArena nicht gefunden!"); - } - - // ── Spawn setzen ────────────────────────────────────────────────── - // /ltadmin setspawn - case "setspawn" -> { - if (!(sender instanceof Player player)) { sender.sendMessage("§cNur für Spieler!"); return true; } - if (args.length < 3) { sender.sendMessage(pre + "§c/ltadmin setspawn "); return true; } - Arena arena = requireArena(sender, args[1]); if (arena == null) return true; - Team team = requireTeam(sender, args[2]); if (team == null) return true; - arena.addSpawn(team, player.getLocation()); - plugin.getArenaManager().save(); - sender.sendMessage(pre + "§aSpawn für Team " + team.colored() + " §ain Arena §e" - + arena.getName() + " §ahinzugefügt. §8(Gesamt: " + arena.getSpawns(team).size() + ")"); - } - - // ── Basis setzen ────────────────────────────────────────────────── - // /ltadmin setbase - case "setbase" -> { - if (!(sender instanceof Player player)) { sender.sendMessage("§cNur für Spieler!"); return true; } - if (args.length < 3) { sender.sendMessage(pre + "§c/ltadmin setbase "); return true; } - Arena arena = requireArena(sender, args[1]); if (arena == null) return true; - Team team = requireTeam(sender, args[2]); if (team == null) return true; - arena.setBase(team, player.getLocation()); - plugin.getArenaManager().save(); - sender.sendMessage(pre + "§aBasis für Team " + team.colored() + " §aauf §e" - + blockStr(player) + " §agesetzt."); - sender.sendMessage(pre + "§7Beim Spielstart wird hier ein §b" - + team.getGlassMat().name() + " §7platziert."); - } - - // ── Lobby setzen ────────────────────────────────────────────────── - case "setlobby" -> { - if (!(sender instanceof Player player)) { sender.sendMessage("§cNur für Spieler!"); return true; } - plugin.getConfigManager().setLobbyLocation(player.getLocation()); - sender.sendMessage(pre + "§aLobby-Spawn gesetzt!"); - } - - // ── Arena aktivieren/deaktivieren ───────────────────────────────── - case "enable" -> { - if (args.length < 2) { sender.sendMessage(pre + "§c/ltadmin enable "); return true; } - Arena arena = requireArena(sender, args[1]); if (arena == null) return true; - if (!arena.isReady()) { - sender.sendMessage(pre + "§cArena nicht bereit!\n" + arena.getMissingSetup()); - return true; - } - arena.setEnabled(true); - plugin.getArenaManager().save(); - sender.sendMessage(pre + "§aArena §e" + arena.getName() + " §aaktiviert!"); - } - - case "disable" -> { - if (args.length < 2) { sender.sendMessage(pre + "§c/ltadmin disable "); return true; } - Arena arena = requireArena(sender, args[1]); if (arena == null) return true; - arena.setEnabled(false); - plugin.getArenaManager().save(); - sender.sendMessage(pre + "§cArena §e" + arena.getName() + " §cdeaktiviert."); - } - - // ── Arena-Info ──────────────────────────────────────────────────── - case "info" -> { - if (args.length < 2) { sender.sendMessage(pre + "§c/ltadmin info "); return true; } - Arena arena = requireArena(sender, args[1]); if (arena == null) return true; - sender.sendMessage("§8§l══════════════════════════════"); - sender.sendMessage("§b§l Arena: §e" + arena.getName()); - sender.sendMessage("§8§l══════════════════════════════"); - sender.sendMessage("§7Aktiviert: " + (arena.isEnabled() ? "§aJa" : "§cNein")); - sender.sendMessage("§7Bereit: " + (arena.isReady() ? "§aJa" : "§cNein")); - for (Team t : Team.values()) { - int spawns = arena.getSpawns(t).size(); - boolean hasBase = arena.hasBase(t); - sender.sendMessage(" " + t.colored() + " §7– Spawns: §e" + spawns - + " §7Basis: " + (hasBase ? "§a✔" : "§c✘")); - } - if (!arena.isReady()) { - sender.sendMessage("§c§lFehlend:"); - sender.sendMessage(arena.getMissingSetup()); - } - sender.sendMessage("§8§l══════════════════════════════"); - - // Spiel-Status - Game g = plugin.getGameManager().getGame(arena.getName()); - if (g != null) { - sender.sendMessage("§7Spiel-Status: " + g.getState() - + " §7Spieler: §e" + g.getPlayerCount()); - } - } - - // ── Spiel erzwingen ─────────────────────────────────────────────── - case "forcestart" -> { - if (args.length < 2) { sender.sendMessage(pre + "§c/ltadmin forcestart "); return true; } - Game g = plugin.getGameManager().getGame(args[1]); - if (g == null) { sender.sendMessage(pre + "§cArena/Spiel nicht gefunden!"); return true; } - switch (g.getState()) { - case WAITING -> { g.startCountdown(); sender.sendMessage(pre + "§aCountdown gestartet!"); } - case STARTING -> { g.startGame(); sender.sendMessage(pre + "§aSpiel gestartet!"); } - default -> sender.sendMessage(pre + "§cSpiel läuft bereits!"); - } - } - - case "forcestop" -> { - if (args.length < 2) { sender.sendMessage(pre + "§c/ltadmin forcestop "); return true; } - Game g = plugin.getGameManager().getGame(args[1]); - if (g == null) { sender.sendMessage(pre + "§cArena/Spiel nicht gefunden!"); return true; } - g.forceEnd(); - sender.sendMessage(pre + "§aSpiel beendet!"); - } - - // ── Reload ──────────────────────────────────────────────────────── - case "reload" -> { - plugin.getConfigManager().reload(); - sender.sendMessage(pre + "§aConfig neu geladen!"); - } - - case "modinfo" -> { - new de.lasertec.protection.ModProtectionManager(plugin).sendProtectionInfo(sender); - } - case "signs" -> { - sender.sendMessage(pre + "§7Registrierte Join-Schilder: §b" + plugin.getSignListener().getSignCount()); - sender.sendMessage(pre + "§7Erstelle ein Schild: Zeile 1 = §e[Lasertec] §7| Zeile 2 = Arenaname"); - } - default -> help(sender); - } - return true; - } - - // ─── Helper ────────────────────────────────────────────────────────────── - - private Arena requireArena(CommandSender s, String name) { - Arena a = plugin.getArenaManager().getArena(name); - if (a == null) s.sendMessage(plugin.getConfigManager().getPrefix() + "§cArena '§e" + name + "§c' nicht gefunden!"); - return a; - } - - private Team requireTeam(CommandSender s, String name) { - try { return Team.valueOf(name.toUpperCase()); } - catch (IllegalArgumentException ex) { - s.sendMessage(plugin.getConfigManager().getPrefix() - + "§cUngültiges Team '§e" + name + "§c'! Benutze: red, blue, green, yellow"); - return null; - } - } - - private String blockStr(Player p) { - return p.getLocation().getBlockX() + "," + p.getLocation().getBlockY() + "," + p.getLocation().getBlockZ(); - } - - private void help(CommandSender s) { - s.sendMessage("§8§l══════════════════════════════════════════"); - s.sendMessage("§c§l ⚡ LASERTEC ADMIN-BEFEHLE"); - s.sendMessage("§8§l══════════════════════════════════════════"); - s.sendMessage("§c/ltadmin create §8 §7– Arena erstellen"); - s.sendMessage("§c/ltadmin delete §8 §7– Arena löschen"); - s.sendMessage("§c/ltadmin setspawn §8 §7– Spawn setzen (stehe am Punkt)"); - s.sendMessage("§c/ltadmin setbase §8 §7– Basis-Block setzen"); - s.sendMessage("§c/ltadmin setlobby §7– Lobby-Spawn setzen"); - s.sendMessage("§c/ltadmin enable §8 §7– Arena aktivieren"); - s.sendMessage("§c/ltadmin disable §8 §7– Arena deaktivieren"); - s.sendMessage("§c/ltadmin info §8 §7– Arena-Infos anzeigen"); - s.sendMessage("§c/ltadmin forcestart §8 §7– Countdown/Spiel starten"); - s.sendMessage("§c/ltadmin forcestop §8 §7– Spiel beenden"); - s.sendMessage("§c/ltadmin reload §7– Config neu laden"); - s.sendMessage("§8§l══════════════════════════════════════════"); - s.sendMessage("§c/ltadmin modinfo §7– Mod-Schutz Status anzeigen"); - s.sendMessage("§c/ltadmin signs §7– Schild-Übersicht"); - s.sendMessage("§8§l══════════════════════════════════════════"); - s.sendMessage("§7Teams: §cred §9blue §agreen §eyelow"); - } -}