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;
|
2012-11-13 01:42:30 +00:00
|
|
|
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
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)
|
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;
|
|
|
|
|
|
|
|
for (OfflinePlayer p : server.getWhitelistedPlayers())
|
|
|
|
{
|
|
|
|
if (p.isOnline())
|
|
|
|
{
|
|
|
|
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
|
2012-11-13 01:42:30 +00:00
|
|
|
if (!(senderIsConsole || TFM_SuperadminList.isUserSuperadmin(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();
|
|
|
|
|
2012-09-17 23:46:59 +00:00
|
|
|
OfflinePlayer p;
|
|
|
|
try
|
|
|
|
{
|
2012-09-18 00:32:59 +00:00
|
|
|
p = getPlayer(search_name);
|
2012-09-17 23:46:59 +00:00
|
|
|
}
|
|
|
|
catch (CantFindPlayerException ex)
|
|
|
|
{
|
2012-09-18 00:32:59 +00:00
|
|
|
p = server.getOfflinePlayer(search_name);
|
2012-09-17 23:46:59 +00:00
|
|
|
}
|
|
|
|
|
2012-09-18 00:32:59 +00:00
|
|
|
TFM_Util.adminAction(sender.getName(), "Adding " + p.getName() + " to the whitelist.", false);
|
2012-09-17 23:46:59 +00:00
|
|
|
p.setWhitelisted(true);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
// remove
|
|
|
|
if (args[0].equalsIgnoreCase("remove"))
|
|
|
|
{
|
|
|
|
if (args.length < 2)
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2012-09-18 00:32:59 +00:00
|
|
|
String search_name = args[1].trim().toLowerCase();
|
|
|
|
|
2012-09-17 23:46:59 +00:00
|
|
|
OfflinePlayer p;
|
|
|
|
try
|
|
|
|
{
|
2012-09-18 00:32:59 +00:00
|
|
|
p = getPlayer(search_name);
|
2012-09-17 23:46:59 +00:00
|
|
|
}
|
|
|
|
catch (CantFindPlayerException ex)
|
|
|
|
{
|
2012-09-18 00:32:59 +00:00
|
|
|
p = server.getOfflinePlayer(search_name);
|
2012-09-17 23:46:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if (p.isWhitelisted())
|
|
|
|
{
|
2012-09-18 00:32:59 +00:00
|
|
|
TFM_Util.adminAction(sender.getName(), "Removing " + p.getName() + " from the whitelist.", false);
|
2012-09-17 23:46:59 +00:00
|
|
|
p.setWhitelisted(false);
|
|
|
|
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;
|
|
|
|
for (Player p : server.getOnlinePlayers())
|
|
|
|
{
|
|
|
|
if (!p.isWhitelisted())
|
|
|
|
{
|
|
|
|
p.setWhitelisted(true);
|
|
|
|
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
|
|
|
}
|
|
|
|
}
|