diff --git a/src/main/java/de/lasertec/command/LasertecCommand.java b/src/main/java/de/lasertec/command/LasertecCommand.java deleted file mode 100644 index bc05bc6..0000000 --- a/src/main/java/de/lasertec/command/LasertecCommand.java +++ /dev/null @@ -1,126 +0,0 @@ -package de.lasertec.command; - -import de.lasertec.LasertecPlugin; -import de.lasertec.game.Game; -import de.lasertec.game.Team; -import de.lasertec.player.LaserPlayer; -import de.lasertec.player.PlayerStats; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import java.util.List; -import java.util.Map; - -public class LasertecCommand implements CommandExecutor { - - private final LasertecPlugin plugin; - - public LasertecCommand(LasertecPlugin plugin) { this.plugin = plugin; } - - @Override - public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { - String pre = plugin.getConfigManager().getPrefix(); - - if (args.length == 0 || args[0].equalsIgnoreCase("help")) { - help(sender); - return true; - } - - switch (args[0].toLowerCase()) { - - // ── join ────────────────────────────────────────────────────────── - case "join", "j" -> { - if (!(sender instanceof Player player)) { sender.sendMessage("§cNur für Spieler!"); return true; } - if (!player.hasPermission("lasertec.play")) { - player.sendMessage(pre + "§cKeine Berechtigung (lasertec.play)"); - return true; - } - if (args.length >= 2) plugin.getGameManager().joinGame(player, args[1]); - else plugin.getGameManager().joinBest(player); - } - - // ── leave ───────────────────────────────────────────────────────── - case "leave", "l" -> { - if (!(sender instanceof Player player)) return true; - Game g = plugin.getGameManager().getGameOf(player); - if (g == null) player.sendMessage(pre + "§cDu bist in keinem Spiel!"); - else plugin.getGameManager().leaveGame(player); - } - - // ── list ────────────────────────────────────────────────────────── - case "list" -> { - sender.sendMessage("§8§l═══════════════════════════════════"); - sender.sendMessage("§b§l ⚡ LASERTEC – ARENEN"); - sender.sendMessage("§8§l═══════════════════════════════════"); - var games = plugin.getGameManager().getAllGames(); - if (games.isEmpty()) { sender.sendMessage("§c Keine Arenen konfiguriert."); return true; } - for (Game g : games) { - String status = switch (g.getState()) { - case WAITING -> "§aWartend"; - case STARTING -> "§eStartet"; - case RUNNING -> "§6Läuft"; - case ENDING -> "§7Beendet"; - }; - String ready = g.getArena().isReady() ? "§a✔" : "§c✘"; - sender.sendMessage(" " + ready + " §b" + g.getArena().getName() - + " §8[" + status + "§8] §7Spieler: §e" + g.getPlayerCount() - + "§7/§e" + g.getMaxPlayers()); - } - sender.sendMessage("§8§l═══════════════════════════════════"); - } - - // ── stats ───────────────────────────────────────────────────────── - case "stats" -> { - if (!(sender instanceof Player player)) return true; - PlayerStats s = plugin.getPlayerDataManager().getStats(player.getUniqueId()); - sender.sendMessage("§8§l══════════════════════════════"); - sender.sendMessage("§b§l ⚡ DEINE STATISTIKEN"); - sender.sendMessage("§8§l══════════════════════════════"); - sender.sendMessage("§7Spiele: §e" + s.getGamesPlayed()); - sender.sendMessage("§7Kills gesamt: §a" + s.getTotalKills()); - sender.sendMessage("§7Tode gesamt: §c" + s.getTotalDeaths()); - sender.sendMessage("§7K/D-Ratio: §6" + s.getKDR()); - sender.sendMessage("§7Punkte gesamt: §6" + s.getTotalScore()); - sender.sendMessage("§7Beste Kill-Serie:§b " + s.getBestStreak()); - sender.sendMessage("§7Basis-Angriffe: §d" + s.getTotalBaseAttacks()); - sender.sendMessage("§8§l══════════════════════════════"); - } - - // ── top ─────────────────────────────────────────────────────────── - case "top" -> { - List top = plugin.getPlayerDataManager().getTopByScore(10); - sender.sendMessage("§8§l═══════════════════════════════"); - sender.sendMessage("§6§l 🏆 BESTENLISTE"); - sender.sendMessage("§8§l═══════════════════════════════"); - for (int i = 0; i < top.size(); i++) { - PlayerStats s = top.get(i); - String medal = i == 0 ? "§6§l🥇" : i == 1 ? "§7§l🥈" : i == 2 ? "§c§l🥉" : "§8#" + (i+1); - sender.sendMessage(" " + medal + " §e" + s.getName() - + " §7│ §6" + s.getTotalScore() + " Pkt §7│ §aK:" + s.getTotalKills() - + " §7│ §bKDR:" + s.getKDR()); - } - if (top.isEmpty()) sender.sendMessage("§7Noch keine Statistiken vorhanden."); - sender.sendMessage("§8§l═══════════════════════════════"); - } - - default -> help(sender); - } - return true; - } - - private void help(CommandSender s) { - s.sendMessage("§8§l═══════════════════════════════════"); - s.sendMessage("§b§l ⚡ LASERTEC HILFE"); - s.sendMessage("§8§l═══════════════════════════════════"); - s.sendMessage("§b/lt join §8[Arena] §7– Einem Spiel beitreten"); - s.sendMessage("§b/lt leave §7– Spiel verlassen"); - s.sendMessage("§b/lt list §7– Arenen anzeigen"); - s.sendMessage("§b/lt stats §7– Deine Statistiken"); - s.sendMessage("§b/lt top §7– Bestenliste (Top 10)"); - if (s.hasPermission("lasertec.admin")) - s.sendMessage("§c/ltadmin help §7– Admin-Befehle"); - s.sendMessage("§8§l═══════════════════════════════════"); - } -}