diff --git a/appinfo.properties b/appinfo.properties index b8fda0f4..828d82fa 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Sun, 11 Aug 2013 21:06:54 -0400 +#Mon, 12 Aug 2013 12:49:58 +0200 program.VERSION=2.22 -program.BUILDNUM=396 -program.BUILDDATE=08/11/2013 09\:06 PM +program.BUILDNUM=403 +program.BUILDDATE=08/12/2013 12\:49 PM diff --git a/buildnumber.properties b/buildnumber.properties index 337f8837..2f980e9a 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Sun Aug 11 21:06:54 EDT 2013 -build.number=397 +#Mon Aug 12 12:49:58 CEST 2013 +build.number=404 diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rawsay.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rawsay.java index d6a36a79..32b29acd 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rawsay.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rawsay.java @@ -2,7 +2,6 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.TFM_Util; import org.apache.commons.lang.StringUtils; -import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -16,7 +15,7 @@ public class Command_rawsay extends TFM_Command { if (args.length > 0) { - TFM_Util.bcastMsg(ChatColor.translateAlternateColorCodes('&', StringUtils.join(args, " "))); + TFM_Util.bcastMsg(TFM_Util.colorise(StringUtils.join(args, " "))); } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java index c01e285d..1752e80f 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java @@ -26,15 +26,15 @@ public class Command_saconfig extends TFM_Command } else { - if (!senderIsConsole) + if (!TFM_SuperadminList.isSeniorAdmin(sender)) { - playerMsg("This command may only be used from the console."); + playerMsg(TotalFreedomMod.MSG_NO_PERMS); return true; } if (args[0].equals("clean")) { - TFM_Util.adminAction(sender.getName(), "Cleaning superadmin list.", true); + TFM_Util.adminAction(sender.getName(), "Cleaning superadmin list", true); TFM_SuperadminList.cleanSuperadminList(true); playerMsg("Superadmins: " + StringUtils.join(TFM_SuperadminList.getSuperadminNames(), ", "), ChatColor.YELLOW); } @@ -77,7 +77,7 @@ public class Command_saconfig extends TFM_Command } else { - playerMsg(ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&', superadmin.toString()))); + playerMsg(ChatColor.stripColor(TFM_Util.colorise(superadmin.toString()))); } return true; @@ -165,7 +165,7 @@ public class Command_saconfig extends TFM_Command else if ("disabled".equals(reply)) { TFM_Util.playerMsg(sender, "Warning: Could not check if player has a twitter handle!"); - TFM_Util.playerMsg(sender, "TwitterBot has been temporarily disabled,, please wait until it get re-enabled", ChatColor.RED); + TFM_Util.playerMsg(sender, "TwitterBot has been temporarily disabled, please wait until it gets re-enabled", ChatColor.RED); } else if ("failed".equals(reply)) { diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tag.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tag.java new file mode 100644 index 00000000..058f282a --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tag.java @@ -0,0 +1,118 @@ +package me.StevenLawson.TotalFreedomMod.Commands; + +import java.util.Arrays; +import java.util.List; +import me.StevenLawson.TotalFreedomMod.TFM_PlayerData; +import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; +import me.StevenLawson.TotalFreedomMod.TFM_Util; +import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; +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 = "/ < | off | clear | clearall>") +public class Command_tag extends TFM_Command +{ + + public static final List FORBIDDEN_WORDS = Arrays.asList(new String[]{"admin", "owner", "moderator", "developer"}); + + @Override + public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + if (args.length == 1) + { + + if ("clearall".equals(args[0])) + { + if (!TFM_SuperadminList.isUserSuperadmin(sender)) + { + playerMsg(TotalFreedomMod.MSG_NO_PERMS); + return true; + } + + int count = 0; + for (Player p : server.getOnlinePlayers()) + { + TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); + + if (playerdata.getTag() != null) + { + count++; + TFM_PlayerData.getPlayerData(p).setTag(null); + } + } + + playerMsg(count + " tag(s) removed."); + return true; + } + + if (senderIsConsole) + { + playerMsg("This can only be used by players."); + return true; + } + + if (TFM_Util.isStopCommand(args[0])) + { + TFM_PlayerData.getPlayerData(sender_p).setTag(null); + playerMsg("Removed your tag."); + return true; + } + + if (args[0].length() > 15) + { + playerMsg("That tag is too long."); + return true; + } + + if (!TFM_SuperadminList.isUserSuperadmin(sender)) + { + for (String word : FORBIDDEN_WORDS) + { + if (args[0].toLowerCase().contains(word)) + { + playerMsg("That tag contains a forbidden word."); + return true; + } + } + } + + TFM_PlayerData.getPlayerData(sender_p).setTag(args[0]); + playerMsg("Tag set."); + + return true; + } + else if (args.length == 2) + { + if ("clear".equals(args[0])) + { + if (!TFM_SuperadminList.isUserSuperadmin(sender)) + { + playerMsg(TotalFreedomMod.MSG_NO_PERMS); + return true; + } + + final Player p; + try + { + p = getPlayer(args[1]); + } + catch (CantFindPlayerException ex) + { + playerMsg(ex.getMessage()); + return true; + } + + TFM_PlayerData.getPlayerData(p).setTag(null); + playerMsg("Removed " + p.getName() + "'s tag."); + return true; + } + + return false; + } + + return false; + } + +} diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index b7dfa052..fac5cd56 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -50,7 +50,6 @@ public class TFM_PlayerListener implements Listener player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1)); player.sendMessage(ChatColor.GRAY + "Water buckets are currently disabled."); event.setCancelled(true); - return; } break; } @@ -61,7 +60,6 @@ public class TFM_PlayerListener implements Listener player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1)); player.sendMessage(ChatColor.GRAY + "Lava buckets are currently disabled."); event.setCancelled(true); - return; } break; } @@ -442,6 +440,12 @@ public class TFM_PlayerListener implements Listener // Finally, set message event.setMessage(message); + + // Set the tag + if (playerdata.getTag() != null) { + p.setDisplayName((playerdata.getTag() + " " + p.getDisplayName().replaceAll(" ", ""))); + } + } catch (Exception ex) { diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_CommandBlocker.java b/src/me/StevenLawson/TotalFreedomMod/TFM_CommandBlocker.java index 5203bd8d..2c18de10 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_CommandBlocker.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_CommandBlocker.java @@ -71,7 +71,7 @@ public class TFM_CommandBlocker } else { - sender.sendMessage(ChatColor.GRAY + ChatColor.translateAlternateColorCodes('&', parts[3])); + sender.sendMessage(ChatColor.GRAY + TFM_Util.colorise(parts[3])); } } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_CommandBlockerNew.java b/src/me/StevenLawson/TotalFreedomMod/TFM_CommandBlockerNew.java index 0b0e16df..478a71b5 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_CommandBlockerNew.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_CommandBlockerNew.java @@ -308,7 +308,7 @@ public class TFM_CommandBlockerNew } else { - response = ChatColor.GRAY + ChatColor.translateAlternateColorCodes('&', this.message); + response = ChatColor.GRAY + TFM_Util.colorise(this.message); } sender.sendMessage(response); diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java b/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java index cce1a3ad..d48e5fec 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java @@ -53,6 +53,7 @@ public class TFM_PlayerData private Boolean superadmin_id_verified = null; private String last_command = ""; private boolean cmdspy_enabled = false; + private String tag = null; public TFM_PlayerData(Player player) { @@ -504,4 +505,22 @@ public class TFM_PlayerData { return cmdspy_enabled; } + + public void setTag(String tag) + { + if (tag == null) + { + this.tag = null; + } + else + { + this.tag = TFM_Util.colorise(tag) + ChatColor.WHITE; + } + } + + public String getTag() + { + return this.tag; + } + } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_UserList.java b/src/me/StevenLawson/TotalFreedomMod/TFM_UserList.java index c85d54f3..57b7e174 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_UserList.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_UserList.java @@ -148,35 +148,35 @@ public class TFM_UserList public class TFM_UserListEntry { - private String _username; - private List _ip_addresses = new ArrayList(); + private String username; + private List ip_addresses = new ArrayList(); public TFM_UserListEntry(String username, List ip_addresses) { - _username = username; - _ip_addresses = ip_addresses; + this.username = username; + this.ip_addresses = ip_addresses; } public TFM_UserListEntry(String username) { - _username = username; + this.username = username; } public List getIpAddresses() { - return _ip_addresses; + return ip_addresses; } public String getUsername() { - return _username; + return username; } public boolean addIpAddress(String ip_address) { - if (!_ip_addresses.contains(ip_address)) + if (!ip_addresses.contains(ip_address)) { - _ip_addresses.add(ip_address); + ip_addresses.add(ip_address); return true; } return false; diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index d9b752f3..c5f7b0e9 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -962,6 +962,7 @@ public class TFM_Util while (checkClass.getSuperclass() != Object.class && ((checkClass = checkClass.getSuperclass()) != null)); return null; } + public static final List COLOR_POOL = Arrays.asList( ChatColor.DARK_BLUE, ChatColor.DARK_GREEN, @@ -981,4 +982,9 @@ public class TFM_Util { return COLOR_POOL.get(RANDOM.nextInt(COLOR_POOL.size())); } + + public static String colorise(String string) + { + return ChatColor.translateAlternateColorCodes('&', string); + } }