package com.leontg77.uhc.cmds;
import java.util.ArrayList;
import org.bukkit.BanEntry;
import org.bukkit.BanList;
import org.bukkit.BanList.Type;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.inventory.ItemStack;
import com.leontg77.uhc.Main;
import com.leontg77.uhc.Scoreboards;
import com.leontg77.uhc.utils.PlayerUtils;
/**
* BanIP command class
*
* @author LeonTG77
*/
public class BanIPCommand implements CommandExecutor {
@Override
public boolean onCommand(final CommandSender sender, Command cmd, String label, String[] args) {
if (!sender.hasPermission("uhc.ban")) {
sender.sendMessage(Main.NO_PERM_MSG);
return true;
}
if (args.length < 3) {
sender.sendMessage(Main.PREFIX + "Usage: /banip <ip> <reason>");
return true;
}
Scoreboards board = Scoreboards.getInstance();
BanList list = Bukkit.getBanList(Type.IP);
StringBuilder reason = new StringBuilder("");
for (int i = 1; i < args.length; i++) {
reason.append(args[i]).append(" ");
}
final String msg = reason.toString().trim().trim();
PlayerUtils.broadcast(Main.PREFIX + "An IP has been banned for �a" + msg);
BanEntry ban = list.addBan(args[0], msg, null, sender.getName());
for (Player online : PlayerUtils.getPlayers()) {
if (online.getAddress().getAddress().getHostAddress().equals(args[0])) {
board.resetScore(args[0]);
board.resetScore(online.getName());
PlayerDeathEvent event = new PlayerDeathEvent(online, new ArrayList<ItemStack>(), 0, null);
Bukkit.getServer().getPluginManager().callEvent(event);
online.kickPlayer(
"�8� �7You have been �4IP banned �7from �6Arctic UHC �8�" +
"\n" +
"\n�cReason �8� �7" + ban.getReason() +
"\n�cBanned by �8� �7" + ban.getSource() +
"\n" +
"\n�8� �7If you would like to appeal, DM our twitter �a@ArcticUHC �8�"
);
}
}
return true;
}
}