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;
}
}