package com.nicewuerfel.blockown.command; import com.nicewuerfel.blockown.Message; import com.nicewuerfel.blockown.Setting; import com.nicewuerfel.blockown.User; import com.nicewuerfel.blockown.database.Database; import com.nicewuerfel.blockown.protection.Protection; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; public final class CE_Ignore extends CommandExecutor { private static final String PARAM_ON = "on"; private static final String PARAM_OFF = "off"; public CE_Ignore(Setting setting, Database database, Protection protection) { super(setting, database, protection); } @Override public boolean onCommand(CommandSender sender, Command cmd, String cmdName, String[] args) { boolean turnOn; if (args.length == 1) { if (args[0].equalsIgnoreCase(PARAM_ON)) { turnOn = true; } else if (args[0].equalsIgnoreCase(PARAM_OFF)) { turnOn = false; } else { if (!isConsole(sender)) { return true; } String playerName = args[0]; @SuppressWarnings("deprecation") Player player = Bukkit.getPlayer(playerName); if (player != null) { User user = User.getInstance(player.getUniqueId(), player); turnOn = !setting.isIgnoring(user); setting.setIgnoring(user, turnOn); sender.sendMessage( Message.COMMAND_IGNORE_SUCCESS.getMessage(turnOn ? Message.ON : Message.OFF)); // Also send a message to the affected player player.sendMessage( Message.COMMAND_IGNORE_SUCCESS.getMessage(turnOn ? Message.ON : Message.OFF)); return true; } else { sender.sendMessage(Message.COMMAND_INVALID_PLAYER.getMessage()); return false; } } } else if (args.length == 0) { if (isPlayer(sender)) { Player player = (Player) sender; User user = User.getInstance(player.getUniqueId()); turnOn = !setting.isIgnoring(user); } else { sender.sendMessage(Message.COMMAND_PLAYERS_ONLY.getMessage()); return false; } } else { return false; } Player player = (Player) sender; User user = User.getInstance(player.getUniqueId()); setting.setIgnoring(user, turnOn); player .sendMessage(Message.COMMAND_IGNORE_SUCCESS.getMessage(turnOn ? Message.ON : Message.OFF)); return true; } }