2012-09-17 16:29:43 +00:00
|
|
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
|
|
|
2012-12-09 03:42:29 +00:00
|
|
|
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
2014-04-09 20:33:03 +00:00
|
|
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
2012-09-17 16:29:43 +00:00
|
|
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
|
|
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
|
|
|
import org.bukkit.OfflinePlayer;
|
|
|
|
import org.bukkit.command.Command;
|
|
|
|
import org.bukkit.command.CommandSender;
|
|
|
|
import org.bukkit.entity.Player;
|
|
|
|
|
2013-03-19 22:05:20 +00:00
|
|
|
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
2013-04-10 02:05:24 +00:00
|
|
|
@CommandParameters(description = "Manage the whitelist.", usage = "/<command> <on | off | list | count | add <player> | remove <player> | addall | purge>")
|
2012-09-17 16:29:43 +00:00
|
|
|
public class Command_whitelist extends TFM_Command
|
|
|
|
{
|
2012-09-17 23:46:59 +00:00
|
|
|
@Override
|
2012-09-17 16:29:43 +00:00
|
|
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
|
|
|
{
|
2012-09-17 23:46:59 +00:00
|
|
|
if (args.length < 1)
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
// list
|
|
|
|
if (args[0].equalsIgnoreCase("list"))
|
|
|
|
{
|
2013-01-07 14:56:53 +00:00
|
|
|
playerMsg("Whitelisted players: " + TFM_Util.playerListToNames(server.getWhitelistedPlayers()));
|
2012-09-17 23:46:59 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
// count
|
|
|
|
if (args[0].equalsIgnoreCase("count"))
|
|
|
|
{
|
2012-09-17 16:29:43 +00:00
|
|
|
int onlineWPs = 0;
|
|
|
|
int offlineWPs = 0;
|
|
|
|
int totalWPs = 0;
|
|
|
|
|
2013-08-14 14:01:42 +00:00
|
|
|
for (OfflinePlayer player : server.getWhitelistedPlayers())
|
2012-09-17 16:29:43 +00:00
|
|
|
{
|
2013-08-14 14:01:42 +00:00
|
|
|
if (player.isOnline())
|
2012-09-17 16:29:43 +00:00
|
|
|
{
|
|
|
|
onlineWPs++;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
offlineWPs++;
|
|
|
|
}
|
|
|
|
totalWPs++;
|
|
|
|
}
|
|
|
|
|
2013-01-07 14:56:53 +00:00
|
|
|
playerMsg("Online whitelisted players: " + onlineWPs);
|
|
|
|
playerMsg("Offline whitelisted players: " + offlineWPs);
|
|
|
|
playerMsg("Total whitelisted players: " + totalWPs);
|
2012-09-17 16:29:43 +00:00
|
|
|
|
|
|
|
return true;
|
2012-09-17 23:46:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// all commands past this line are superadmin-only
|
2014-04-09 20:33:03 +00:00
|
|
|
if (!(senderIsConsole || TFM_AdminList.isSuperAdmin(sender)))
|
2012-09-17 23:46:59 +00:00
|
|
|
{
|
|
|
|
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
// on
|
|
|
|
if (args[0].equalsIgnoreCase("on"))
|
|
|
|
{
|
2012-09-18 00:32:59 +00:00
|
|
|
TFM_Util.adminAction(sender.getName(), "Turning the whitelist on.", true);
|
2012-09-17 23:46:59 +00:00
|
|
|
server.setWhitelist(true);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
// off
|
|
|
|
if (args[0].equalsIgnoreCase("off"))
|
|
|
|
{
|
2012-09-18 00:32:59 +00:00
|
|
|
TFM_Util.adminAction(sender.getName(), "Turning the whitelist off.", true);
|
2012-09-17 23:46:59 +00:00
|
|
|
server.setWhitelist(false);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
// add
|
|
|
|
if (args[0].equalsIgnoreCase("add"))
|
|
|
|
{
|
|
|
|
if (args.length < 2)
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2012-09-18 00:32:59 +00:00
|
|
|
String search_name = args[1].trim().toLowerCase();
|
|
|
|
|
2014-04-26 11:55:24 +00:00
|
|
|
OfflinePlayer player = getPlayer(search_name);
|
|
|
|
|
|
|
|
if (player == null)
|
2012-09-17 23:46:59 +00:00
|
|
|
{
|
2013-08-14 14:01:42 +00:00
|
|
|
player = server.getOfflinePlayer(search_name);
|
2012-09-17 23:46:59 +00:00
|
|
|
}
|
|
|
|
|
2013-08-14 14:01:42 +00:00
|
|
|
TFM_Util.adminAction(sender.getName(), "Adding " + player.getName() + " to the whitelist.", false);
|
|
|
|
player.setWhitelisted(true);
|
2012-09-17 23:46:59 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
// remove
|
2013-08-15 21:36:55 +00:00
|
|
|
if (TFM_Util.isRemoveCommand(args[0]))
|
2012-09-17 23:46:59 +00:00
|
|
|
{
|
|
|
|
if (args.length < 2)
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2012-09-18 00:32:59 +00:00
|
|
|
String search_name = args[1].trim().toLowerCase();
|
|
|
|
|
2014-04-26 11:55:24 +00:00
|
|
|
OfflinePlayer player = getPlayer(search_name);
|
|
|
|
|
|
|
|
if (player == null)
|
2012-09-17 23:46:59 +00:00
|
|
|
{
|
2013-08-14 14:01:42 +00:00
|
|
|
player = server.getOfflinePlayer(search_name);
|
2012-09-17 23:46:59 +00:00
|
|
|
}
|
|
|
|
|
2013-08-14 14:01:42 +00:00
|
|
|
if (player.isWhitelisted())
|
2012-09-17 23:46:59 +00:00
|
|
|
{
|
2013-08-14 14:01:42 +00:00
|
|
|
TFM_Util.adminAction(sender.getName(), "Removing " + player.getName() + " from the whitelist.", false);
|
|
|
|
player.setWhitelisted(false);
|
2012-09-17 23:46:59 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2013-01-07 14:56:53 +00:00
|
|
|
playerMsg("That player is not whitelisted");
|
2012-09-17 23:46:59 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// addall
|
|
|
|
if (args[0].equalsIgnoreCase("addall"))
|
|
|
|
{
|
2012-09-18 00:32:59 +00:00
|
|
|
TFM_Util.adminAction(sender.getName(), "Adding all online players to the whitelist.", false);
|
2012-09-17 23:46:59 +00:00
|
|
|
int counter = 0;
|
2013-08-14 14:01:42 +00:00
|
|
|
for (Player player : server.getOnlinePlayers())
|
2012-09-17 23:46:59 +00:00
|
|
|
{
|
2013-08-14 14:01:42 +00:00
|
|
|
if (!player.isWhitelisted())
|
2012-09-17 23:46:59 +00:00
|
|
|
{
|
2013-08-14 14:01:42 +00:00
|
|
|
player.setWhitelisted(true);
|
2012-09-17 23:46:59 +00:00
|
|
|
counter++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-01-07 14:56:53 +00:00
|
|
|
playerMsg("Whitelisted " + counter + " players.");
|
2012-09-17 23:46:59 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
// all commands past this line are console/telnet only
|
|
|
|
if (!senderIsConsole)
|
|
|
|
{
|
|
|
|
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
//purge
|
|
|
|
if (args[0].equalsIgnoreCase("purge"))
|
|
|
|
{
|
2012-09-18 00:32:59 +00:00
|
|
|
TFM_Util.adminAction(sender.getName(), "Removing all players from the whitelist.", false);
|
2013-01-07 14:56:53 +00:00
|
|
|
playerMsg("Removed " + TFM_ServerInterface.purgeWhitelist() + " players from the whitelist.");
|
2012-09-17 23:46:59 +00:00
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
// none of the commands were executed
|
|
|
|
return false;
|
2012-09-17 16:29:43 +00:00
|
|
|
}
|
|
|
|
}
|