diff --git a/src/main/java/de/viper/survivalplus/commands/BlockCommand.java b/src/main/java/de/viper/survivalplus/commands/BlockCommand.java new file mode 100644 index 0000000..9dc8c2e --- /dev/null +++ b/src/main/java/de/viper/survivalplus/commands/BlockCommand.java @@ -0,0 +1,45 @@ +package de.viper.survivalplus.commands; + +import de.viper.survivalplus.Manager.BlockManager; +import org.bukkit.Bukkit; +import org.bukkit.command.*; +import org.bukkit.entity.Player; + +public class BlockCommand implements CommandExecutor { + + private final BlockManager blockManager; + + public BlockCommand(BlockManager blockManager) { + this.blockManager = blockManager; + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + + if (!(sender instanceof Player player)) { + sender.sendMessage("Dieser Befehl ist nur für Spieler."); + return true; + } + + if (args.length != 1) { + player.sendMessage("§cBenutze: /block "); + return true; + } + + Player target = Bukkit.getPlayerExact(args[0]); + if (target == null || target == player) { + player.sendMessage("§cUngültiger Spieler."); + return true; + } + + if (blockManager.hasBlocked(player, target)) { + blockManager.unblockPlayer(player, target); + player.sendMessage("§aDu hast §e" + target.getName() + "§a entblockt."); + } else { + blockManager.blockPlayer(player, target); + player.sendMessage("§cDu hast §e" + target.getName() + "§c blockiert."); + } + + return true; + } +} diff --git a/src/main/java/de/viper/survivalplus/commands/BlockListCommand.java b/src/main/java/de/viper/survivalplus/commands/BlockListCommand.java new file mode 100644 index 0000000..a5ee2af --- /dev/null +++ b/src/main/java/de/viper/survivalplus/commands/BlockListCommand.java @@ -0,0 +1,41 @@ +package de.viper.survivalplus.commands; + +import de.viper.survivalplus.Manager.BlockManager; +import org.bukkit.Bukkit; +import org.bukkit.command.*; +import org.bukkit.entity.Player; + +import java.util.UUID; +import java.util.stream.Collectors; + +public class BlockListCommand implements CommandExecutor { + + private final BlockManager blockManager; + + public BlockListCommand(BlockManager blockManager) { + this.blockManager = blockManager; + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + + if (!(sender instanceof Player player)) { + sender.sendMessage("Dieser Befehl ist nur für Spieler."); + return true; + } + + var blocked = blockManager.getBlockedPlayers(player); + if (blocked.isEmpty()) { + player.sendMessage("§7Du hast aktuell niemanden blockiert."); + return true; + } + + String list = blocked.stream() + .map(Bukkit::getOfflinePlayer) + .map(p -> p.getName() != null ? p.getName() : "Unbekannt") + .collect(Collectors.joining(", ")); + + player.sendMessage("§7Blockierte Spieler: §e" + list); + return true; + } +}