TotalFreedomMod/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tag.java

126 lines
4.1 KiB
Java
Raw Normal View History

2013-08-12 10:26:49 +00:00
package me.StevenLawson.TotalFreedomMod.Commands;
import java.util.Arrays;
import java.util.List;
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
2013-08-12 10:26:49 +00:00
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
2013-08-12 18:19:17 +00:00
import org.bukkit.ChatColor;
2013-08-12 10:26:49 +00:00
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
@CommandParameters(description = "Sets yourself a prefix", usage = "/<command> <<prefix> | off | clear <player> | clearall>")
2013-08-12 10:26:49 +00:00
public class Command_tag extends TFM_Command
{
2013-08-12 12:41:04 +00:00
public static final List<String> FORBIDDEN_WORDS = Arrays.asList(new String[]
{
2013-08-12 18:47:36 +00:00
"admin", "owner", "moderator", "developer", "&k"
});
2013-08-12 12:41:04 +00:00
2013-08-12 10:26:49 +00:00
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (args.length == 1)
2013-08-12 10:26:49 +00:00
{
if ("clearall".equals(args[0]))
{
if (!TFM_AdminList.isSuperAdmin(sender))
{
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
2013-08-12 18:47:36 +00:00
TFM_Util.adminAction(sender.getName(), "Removing all tags", false);
int count = 0;
2013-08-14 14:01:42 +00:00
for (Player player : server.getOnlinePlayers())
{
2013-08-14 14:01:42 +00:00
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
if (playerdata.getTag() != null)
{
count++;
2013-08-14 14:01:42 +00:00
TFM_PlayerData.getPlayerData(player).setTag(null);
}
}
playerMsg(count + " tag(s) removed.");
return true;
}
if (senderIsConsole)
{
2013-08-12 18:19:17 +00:00
playerMsg("Only in-game players can set tags. Use \"/tag clearall\" to reset all tags.");
return true;
}
2013-08-12 12:41:04 +00:00
if (TFM_Util.isStopCommand(args[0]))
{
TFM_PlayerData.getPlayerData(sender_p).setTag(null);
2013-08-12 18:19:17 +00:00
playerMsg("Your tag has been removed.");
return true;
}
if (ChatColor.stripColor(TFM_Util.colorize(args[0])).length() > 20)
{
playerMsg("That tag is too long [Max = 20 characters, not including color codes].");
return true;
}
if (!TFM_AdminList.isSuperAdmin(sender))
{
for (String word : FORBIDDEN_WORDS)
{
2013-08-12 18:19:17 +00:00
if (args[0].toLowerCase().contains(word.toLowerCase()))
{
if (word.contains(String.valueOf(ChatColor.COLOR_CHAR)))
2013-08-12 18:47:36 +00:00
{
playerMsg("That tag contains a forbidden color-code.");
}
else
{
playerMsg("That tag contains a forbidden word.");
}
return true;
}
}
2013-08-12 18:47:36 +00:00
}
TFM_PlayerData.getPlayerData(sender_p).setTag(args[0]);
playerMsg("Tag set.");
2013-08-12 10:26:49 +00:00
return true;
}
else if (args.length == 2)
2013-08-12 10:26:49 +00:00
{
if ("clear".equals(args[0]))
2013-08-12 10:26:49 +00:00
{
if (!TFM_AdminList.isSuperAdmin(sender))
2013-08-12 10:26:49 +00:00
{
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
final Player player = getPlayer(args[1]);
if (player == null)
{
playerMsg(TotalFreedomMod.PLAYER_NOT_FOUND);
2013-08-12 10:26:49 +00:00
return true;
}
2013-08-14 14:01:42 +00:00
TFM_PlayerData.getPlayerData(player).setTag(null);
playerMsg("Removed " + player.getName() + "'s tag.");
return true;
}
2013-08-12 10:26:49 +00:00
return false;
}
2013-08-12 12:41:04 +00:00
return false;
2013-08-12 10:26:49 +00:00
}
}