package de.mviper.adventskalender; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; public class AdventCommand implements CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { // --- Admin-Befehle (/ak admin ...) --- if (args.length >= 1 && args[0].equalsIgnoreCase("admin")) { // Prüfen, ob der Spieler die Admin-Berechtigung hat if (!sender.hasPermission("adventskalender.admin")) { sender.sendMessage(LanguageManager.getString("messages.no_permission")); return true; } // /ak admin reload if (args.length == 2 && args[1].equalsIgnoreCase("reload")) { Adventskalender.getInstance().reloadConfig(); LanguageManager.setup(); sender.sendMessage(LanguageManager.getString("messages.admin.reload_success")); return true; } // /ak admin open if (args.length == 4 && args[1].equalsIgnoreCase("open")) { Player target = Bukkit.getPlayer(args[2]); if (target == null) { sender.sendMessage(LanguageManager.getString("messages.admin.player_not_found").replace("%player%", args[2])); return true; } try { int day = Integer.parseInt(args[3]); if (day < 1 || day > 24) { sender.sendMessage(LanguageManager.getString("messages.admin.invalid_day")); return true; } ItemStack reward = AdventInventory.getRewardItem(day); if (reward != null && reward.getType() != Material.AIR) { if (target.getInventory().firstEmpty() == -1) { target.getWorld().dropItemNaturally(target.getLocation(), reward); } else { target.getInventory().addItem(reward); } } CalendarData.setClaimed(target, day); sender.sendMessage(LanguageManager.getString("messages.admin.open_success").replace("%player%", target.getName()).replace("%day%", String.valueOf(day))); target.sendMessage(LanguageManager.getString("messages.reward_received").replace("%day%", String.valueOf(day))); } catch (NumberFormatException e) { sender.sendMessage(LanguageManager.getString("messages.admin.invalid_day")); } return true; } // Falsche Nutzung der Admin-Befehle sender.sendMessage("§cUsage: /ak admin reload"); sender.sendMessage("§cUsage: /ak admin open "); return true; } // --- Hauptbefehl (/ak) --- if (!(sender instanceof Player)) { sender.sendMessage(LanguageManager.getString("messages.only_player")); return true; } Player player = (Player) sender; if (!player.hasPermission("adventskalender.use")) { player.sendMessage(LanguageManager.getString("messages.no_permission")); return true; } AdventInventory.openCalendar(player); return true; } }