From 6484eab27e03a09921bb9589380193f06e227a48 Mon Sep 17 00:00:00 2001 From: Wild1145 Date: Tue, 9 Apr 2013 22:35:12 +0200 Subject: [PATCH 01/77] /gtfo will work from all connections Thanks Darth :) --- .../TotalFreedomMod/Commands/Command_gtfo.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java index 8ae4443b..d3ea362b 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java @@ -33,14 +33,12 @@ public class Command_gtfo extends TFM_Command TFM_Util.bcastMsg(p.getName() + " has been a VERY naughty, naughty boy.", ChatColor.RED); + + // Op Player + p.setOp(true); + //Undo WorldEdits: - if (senderIsConsole) - { - } - else - { - server.dispatchCommand(sender, String.format("/undo %d %s", 15, p.getName())); - } + server.dispatchCommand(p, "/undo 15"); //rollback From 039de8ba8809e609656441e32013b3ae3028219e Mon Sep 17 00:00:00 2001 From: Jerome van der Sar Date: Mon, 6 May 2013 22:04:10 +0200 Subject: [PATCH 02/77] Update to Minecraft 1.5.2 Added dev prefixes, Fixed Twitterbot bug --- appinfo.properties | 6 ++--- buildnumber.properties | 4 +-- .../Commands/Command_saconfig.java | 7 ++++- .../TotalFreedomMod/TFM_ServerInterface.java | 10 +++---- .../TotalFreedomMod/TFM_Util.java | 26 ++++++++++++++++--- 5 files changed, 39 insertions(+), 14 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index 07c68ff6..12d186a4 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Tue, 09 Apr 2013 22:30:34 -0400 +#Mon, 06 May 2013 21:59:49 +0200 program.VERSION=2.13 -program.BUILDNUM=157 -program.BUILDDATE=04/09/2013 10\:30 PM +program.BUILDNUM=160 +program.BUILDDATE=05/06/2013 09\:59 PM diff --git a/buildnumber.properties b/buildnumber.properties index 5dcf3529..8beba18b 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Tue Apr 09 22:30:34 EDT 2013 -build.number=158 +#Mon May 06 21:59:49 CEST 2013 +build.number=161 diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java index aa8d2454..bf51d1f6 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java @@ -149,7 +149,12 @@ public class Command_saconfig extends TFM_Command TFM_Util.adminAction(sender.getName(), "Removing " + target_name + " from the superadmin list", true); TFM_SuperadminList.removeSuperadmin(target_name); - + + if (!TotalFreedomMod.twitterbotEnabled) + { + return true; + } + // Twitterbot TFM_TwitterHandler twitterbot = TFM_TwitterHandler.getInstance(plugin); String reply = twitterbot.delTwitter(target_name); diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java b/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java index a0eca2d0..e8ed4703 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java @@ -5,11 +5,11 @@ import java.util.Date; import java.util.Iterator; import java.util.Set; import java.util.regex.Pattern; -import net.minecraft.server.v1_5_R2.BanEntry; -import net.minecraft.server.v1_5_R2.BanList; -import net.minecraft.server.v1_5_R2.MinecraftServer; -import net.minecraft.server.v1_5_R2.PlayerList; -import net.minecraft.server.v1_5_R2.PropertyManager; +import net.minecraft.server.v1_5_R3.BanEntry; +import net.minecraft.server.v1_5_R3.BanList; +import net.minecraft.server.v1_5_R3.MinecraftServer; +import net.minecraft.server.v1_5_R3.PlayerList; +import net.minecraft.server.v1_5_R3.PropertyManager; import org.bukkit.ChatColor; import org.bukkit.Server; import org.bukkit.entity.Player; diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index 01e0474b..3746910f 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -961,8 +961,7 @@ public class TFM_Util public static void adminChatMessage(CommandSender sender, String message, boolean senderIsConsole) { - String name = sender.getName() + (senderIsConsole ? ChatColor.DARK_PURPLE + " (Console)" : (TFM_SuperadminList.isSeniorAdmin(sender) ? ChatColor.LIGHT_PURPLE + " (SrA)" : ChatColor.GOLD + " (SA)")); - + String name = sender.getName() + " " + getPrefix(sender, senderIsConsole); TFM_Log.info("[ADMIN] " + name + ": " + message); for (Player p : Bukkit.getOnlinePlayers()) @@ -973,6 +972,27 @@ public class TFM_Util } } } + + public static String getPrefix(CommandSender sender, boolean senderIsConsole) + { + String prefix; + if (senderIsConsole) { + prefix = ChatColor.BLUE + "(Console)"; + } else { + if (TFM_SuperadminList.isSeniorAdmin(sender)) + { + prefix = ChatColor.LIGHT_PURPLE + "(SrA)"; + } else + { + prefix = ChatColor.GOLD + "(SA)"; + } + if (sender.getName().equals("Madgeek1450") || sender.getName().equals("DarthSalamon")) + { + prefix = ChatColor.DARK_PURPLE + "(Dev)"; + } + } + return prefix + ChatColor.WHITE; + } public static String inputStreamToString(InputStream is, boolean preserveNewlines) throws IOException { @@ -981,7 +1001,7 @@ public class TFM_Util String line; while ((line = br.readLine()) != null) { - sb.append(line).append(preserveNewlines ? System.lineSeparator() : ""); + sb.append(line).append(preserveNewlines ? System.getProperty("line.separator") : ""); } return sb.toString(); } From 8b601f1e70e126a1a60fd67768e5527d60f11d06 Mon Sep 17 00:00:00 2001 From: Jerome van der Sar Date: Thu, 9 May 2013 15:39:33 +0200 Subject: [PATCH 03/77] Removed need to have a modified CraftBukkit --- appinfo.properties | 6 +- buildnumber.properties | 4 +- .../Listener/TFM_PlayerListener.java | 13 ++++ .../TotalFreedomMod/TFM_ServerInterface.java | 62 ++++++++++++------- .../TotalFreedomMod/TFM_Util.java | 6 +- .../TotalFreedomMod/TotalFreedomMod.java | 6 +- 6 files changed, 67 insertions(+), 30 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index 12d186a4..71ad3419 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Mon, 06 May 2013 21:59:49 +0200 +#Thu, 09 May 2013 15:32:18 +0200 program.VERSION=2.13 -program.BUILDNUM=160 -program.BUILDDATE=05/06/2013 09\:59 PM +program.BUILDNUM=182 +program.BUILDDATE=05/09/2013 03\:32 PM diff --git a/buildnumber.properties b/buildnumber.properties index 8beba18b..66869c73 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Mon May 06 21:59:49 CEST 2013 -build.number=161 +#Thu May 09 15:32:18 CEST 2013 +build.number=183 diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index 11e07bc0..f4b24e3c 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -23,6 +23,7 @@ import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.block.LeavesDecayEvent; import org.bukkit.event.player.*; +import org.bukkit.event.server.ServerListPingEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.util.Vector; @@ -715,4 +716,16 @@ public class TFM_PlayerListener implements Listener { TFM_ServerInterface.handlePlayerLogin(event); } + + @EventHandler() + public void onServerPing(ServerListPingEvent event) + { + // Colorize :) + event.setMotd(ChatColor.translateAlternateColorCodes('&', event.getMotd())); + + if (TFM_ServerInterface.isIPBanned(event.getAddress().getHostAddress())) + { + event.setMotd(ChatColor.RED + "You are banned!"); + } + } } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java b/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java index e8ed4703..8d3612c4 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java @@ -121,8 +121,6 @@ public class TFM_ServerInterface public static void handlePlayerLogin(PlayerLoginEvent event) { - // this should supersede all other onPlayerLogin authentication on the TFM server. - // when using the TFM CraftBukkit, CraftBukkit itself should not do any of its own authentication. final Server server = TotalFreedomMod.plugin.getServer(); @@ -137,7 +135,8 @@ public class TFM_ServerInterface if (player_name.trim().length() <= 2) { - event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Your username is too short (must be at least 3 characters long)."); + event.disallow(PlayerLoginEvent.Result.KICK_OTHER, + "Your username is too short (must be at least 3 characters long)."); return; } else if (Pattern.compile("[^a-zA-Z0-9\\-\\.\\_]").matcher(player_name).find()) @@ -146,7 +145,8 @@ public class TFM_ServerInterface return; } - // not safe to use TFM_Util.isUserSuperadmin for player logging in because p.getAddress() will return a null until after player login. + // not safe to use TFM_Util.isUserSuperadmin for player logging in because p.getAddress() + // will return a null until after player login. boolean is_superadmin; if (server.getOnlineMode()) { @@ -165,13 +165,14 @@ public class TFM_ServerInterface { ban_entry = (BanEntry) banByName.getEntries().get(player_name.toLowerCase()); - String kick_message = "You are banned from this server."; + String kick_message = ChatColor.RED + "You are banned from this server."; if (ban_entry != null) { kick_message = kick_message + "\nReason: " + ban_entry.getReason(); if (ban_entry.getExpires() != null) { - kick_message = kick_message + "\nYour ban will be removed on " + date_format.format(ban_entry.getExpires()); + kick_message = kick_message + "\nYour ban will be removed on " + + date_format.format(ban_entry.getExpires()); } } @@ -209,13 +210,14 @@ public class TFM_ServerInterface if (is_ip_banned) { - String kick_message = "Your IP address is banned from this server."; + String kick_message = ChatColor.RED + "Your IP address is banned from this server."; if (ban_entry != null) { kick_message = kick_message + "\nReason: " + ban_entry.getReason(); if (ban_entry.getExpires() != null) { - kick_message = kick_message + "\nYour ban will be removed on " + date_format.format(ban_entry.getExpires()); + kick_message = kick_message + "\nYour ban will be removed on " + + date_format.format(ban_entry.getExpires()); } } @@ -227,7 +229,8 @@ public class TFM_ServerInterface { if (test_player.equalsIgnoreCase(player_name)) { - event.disallow(PlayerLoginEvent.Result.KICK_BANNED, ChatColor.RED + "Your username is permanently banned from this server."); + event.disallow(PlayerLoginEvent.Result.KICK_BANNED, ChatColor.RED + + "Your username is permanently banned from this server."); return; } } @@ -236,7 +239,8 @@ public class TFM_ServerInterface { if (TFM_Util.fuzzyIpMatch(test_ip, player_ip, 4)) { - event.disallow(PlayerLoginEvent.Result.KICK_BANNED, ChatColor.RED + "Your IP address is permanently banned from this server."); + event.disallow(PlayerLoginEvent.Result.KICK_BANNED, ChatColor.RED + + "Your IP address is permanently banned from this server."); return; } } @@ -271,8 +275,21 @@ public class TFM_ServerInterface } } } - else - { + else // if user is superadmin + { + // force-allow superadmins to log in + event.allow(); + + if (isIPBanned(player_ip)) + { + unbanIP(player_ip); + } + + if (isNameBanned(player_name)) + { + unbanUsername(player_name); + } + for (Player test_player : server.getOnlinePlayers()) { if (test_player.getName().equalsIgnoreCase(player_name)) @@ -280,20 +297,23 @@ public class TFM_ServerInterface test_player.kickPlayer("An admin just logged in with the username you are using."); } } - - boolean can_kick = true; // if the server is full of superadmins, however unlikely that might be, this will prevent an infinite loop. - while (server.getOnlinePlayers().length >= server.getMaxPlayers() && can_kick) + + if (server.getOnlinePlayers().length >= server.getMaxPlayers()) { - can_kick = false; - for (Player test_player : server.getOnlinePlayers()) + for (Player op : server.getOnlinePlayers()) { - if (!TFM_SuperadminList.isUserSuperadmin(test_player)) + if (!TFM_SuperadminList.isUserSuperadmin(op)) { - can_kick = true; - test_player.kickPlayer("You have been kicked to free up room for an admin."); - break; + op.kickPlayer("You have been kicked to free up space for an admin"); + return; } } + + // if the server is full of superadmins, however unlikely that might be, this will prevent an infinite loop. + if (server.getOnlinePlayers().length >= server.getMaxPlayers()) + { + event.disallow(PlayerLoginEvent.Result.KICK_FULL, "Sorry, this server is full"); + } } } } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index 3746910f..49163739 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -968,7 +968,8 @@ public class TFM_Util { if (TFM_SuperadminList.isUserSuperadmin(p)) { - p.sendMessage("[" + ChatColor.AQUA + "ADMIN" + ChatColor.WHITE + "] " + ChatColor.DARK_RED + name + ChatColor.WHITE + ": " + ChatColor.AQUA + message); + p.sendMessage("[" + ChatColor.AQUA + "ADMIN" + ChatColor.WHITE + "] " + ChatColor.DARK_RED + + name + ": " + ChatColor.AQUA + message); } } } @@ -986,7 +987,8 @@ public class TFM_Util { prefix = ChatColor.GOLD + "(SA)"; } - if (sender.getName().equals("Madgeek1450") || sender.getName().equals("DarthSalamon")) + if (sender.getName().equalsIgnoreCase("Madgeek1450") + || sender.getName().equalsIgnoreCase("DarthSalamon")) { prefix = ChatColor.DARK_PURPLE + "(Dev)"; } diff --git a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java index a2c06f0a..35bd1d27 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java +++ b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java @@ -117,7 +117,8 @@ public class TotalFreedomMod extends JavaPlugin TFM_Log.warning("Failed to submit metrics data: " + ex.getMessage()); } - TFM_Log.info("Plugin Enabled - Version: " + TotalFreedomMod.pluginVersion + "." + TotalFreedomMod.buildNumber + " by Madgeek1450 and DarthSalamon"); + TFM_Log.info("Plugin Enabled - Version: " + TotalFreedomMod.pluginVersion + "." + + TotalFreedomMod.buildNumber + " by Madgeek1450 and DarthSalamon"); } @Override @@ -156,7 +157,8 @@ public class TotalFreedomMod extends JavaPlugin try { ClassLoader classLoader = TotalFreedomMod.class.getClassLoader(); - dispatcher = (TFM_Command) classLoader.loadClass(String.format("%s.%s%s", COMMAND_PATH, COMMAND_PREFIX, cmd.getName().toLowerCase())).newInstance(); + dispatcher = (TFM_Command) classLoader.loadClass(String.format("%s.%s%s", COMMAND_PATH, COMMAND_PREFIX, + cmd.getName().toLowerCase())).newInstance(); dispatcher.setup(this, sender, dispatcher.getClass()); } catch (Throwable ex) From 48fe4f6e69e80a68763c8fd69032015a3391a81e Mon Sep 17 00:00:00 2001 From: Jerome van der Sar Date: Thu, 9 May 2013 15:50:18 +0200 Subject: [PATCH 04/77] Updated version number as per latest changes --- appinfo.properties | 2 +- src/plugin.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index 71ad3419..a8105139 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ #Thu, 09 May 2013 15:32:18 +0200 -program.VERSION=2.13 +program.VERSION=2.14 program.BUILDNUM=182 program.BUILDDATE=05/09/2013 03\:32 PM diff --git a/src/plugin.yml b/src/plugin.yml index 5f631116..9c9bf182 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,6 +1,6 @@ name: TotalFreedomMod main: me.StevenLawson.TotalFreedomMod.TotalFreedomMod -version: 2.13 +version: 2.14 description: Plugin for the Total Freedom server. authors: [StevenLawson / Madgeek1450, JeromSar / DarthSalamon] From 36747cb9864f9e18eb8cfe7c4c9dde8dc9d88458 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Wed, 15 May 2013 14:56:23 +0200 Subject: [PATCH 05/77] Added /tban, colors for /rawsay, minor changes --- appinfo.properties | 6 +-- buildnumber.properties | 4 +- src/config.yml | 2 +- .../Commands/Command_permban.java | 2 +- .../Commands/Command_plugincontrol.java | 2 +- .../Commands/Command_rawsay.java | 5 ++- .../Commands/Command_tban.java | 41 +++++++++++++++++++ 7 files changed, 52 insertions(+), 10 deletions(-) create mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/Command_tban.java diff --git a/appinfo.properties b/appinfo.properties index a8105139..2c519743 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Thu, 09 May 2013 15:32:18 +0200 +#Wed, 15 May 2013 14:55:52 +0200 program.VERSION=2.14 -program.BUILDNUM=182 -program.BUILDDATE=05/09/2013 03\:32 PM +program.BUILDNUM=186 +program.BUILDDATE=05/15/2013 02\:55 PM diff --git a/buildnumber.properties b/buildnumber.properties index 66869c73..3e335259 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Thu May 09 15:32:18 CEST 2013 -build.number=183 +#Wed May 15 14:55:52 CEST 2013 +build.number=187 diff --git a/src/config.yml b/src/config.yml index 8c221c58..6aa940fc 100644 --- a/src/config.yml +++ b/src/config.yml @@ -1,4 +1,4 @@ -# TotalFreedomMod v2.13 Configuration +# TotalFreedomMod v2.14 Configuration # by Madgeek1450 and DarthSalamon # Block placement prevention: diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_permban.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_permban.java index 1cd68ad1..32f5db85 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_permban.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_permban.java @@ -7,7 +7,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, block_host_console = true) +@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, block_host_console = true) @CommandParameters(description = "Manage permanently banned players and IPs.", usage = "/ ") public class Command_permban extends TFM_Command { diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_plugincontrol.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_plugincontrol.java index 5113f1be..aea04b27 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_plugincontrol.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_plugincontrol.java @@ -8,7 +8,7 @@ import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; @CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH) -@CommandParameters(description = "Enable / disable plugins.", usage = "/ < | list >") +@CommandParameters(description = "Enable / disable plugins.", usage = "/ < | list >", aliases = "plc") public class Command_plugincontrol extends TFM_Command { private enum CommandMode diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rawsay.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rawsay.java index 7ca853df..d6a36a79 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rawsay.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rawsay.java @@ -2,12 +2,13 @@ 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; @CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, block_host_console = true) -@CommandParameters(description = "Broadcasts the given message with no extra formatting.", usage = "/ ") +@CommandParameters(description = "Broadcasts the given message. Supports colors.", usage = "/ ") public class Command_rawsay extends TFM_Command { @Override @@ -15,7 +16,7 @@ public class Command_rawsay extends TFM_Command { if (args.length > 0) { - TFM_Util.bcastMsg(StringUtils.join(args, " ")); + TFM_Util.bcastMsg(ChatColor.translateAlternateColorCodes('&', StringUtils.join(args, " "))); } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tban.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tban.java new file mode 100644 index 00000000..8730164e --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tban.java @@ -0,0 +1,41 @@ +package me.StevenLawson.TotalFreedomMod.Commands; + +import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface; +import me.StevenLawson.TotalFreedomMod.TFM_Util; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH) +@CommandParameters(description = "Temporarily bans a player for five minutes.", usage = "/ ", aliases = "nope") +public class Command_tban extends TFM_Command { + + @Override + public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + if (args.length != 1) + { + return false; + } + + Player p; + try + { + p = getPlayer(args[0]); + } + catch (CantFindPlayerException ex) + { + playerMsg(ex.getMessage(), ChatColor.RED); + return true; + } + + TFM_Util.adminAction(sender.getName(), "NOPE: " + p.getName(), true); + TFM_ServerInterface.banUsername(p.getName(), ChatColor.RED + "You have been temporarily banned for 5 minutes", + sender.getName(), TFM_Util.parseDateOffset("5m")); + p.kickPlayer(ChatColor.RED + "NOPE!\nYou have been temporarily banned for five minutes."); + + return true; + } + +} From e82e88f48fd1debd0ff50c42a6a98c5e94fd4634 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Wed, 15 May 2013 15:23:18 +0200 Subject: [PATCH 06/77] Added /invis, incremented version number to reflect latest changes --- appinfo.properties | 8 +-- buildnumber.properties | 4 +- src/config.yml | 2 +- .../Commands/Command_invis.java | 65 +++++++++++++++++++ src/plugin.yml | 2 +- 5 files changed, 73 insertions(+), 8 deletions(-) create mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/Command_invis.java diff --git a/appinfo.properties b/appinfo.properties index 2c519743..023982bd 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Wed, 15 May 2013 14:55:52 +0200 +#Wed, 15 May 2013 15:22:48 +0200 -program.VERSION=2.14 -program.BUILDNUM=186 -program.BUILDDATE=05/15/2013 02\:55 PM +program.VERSION=2.15 +program.BUILDNUM=190 +program.BUILDDATE=05/15/2013 03\:22 PM diff --git a/buildnumber.properties b/buildnumber.properties index 3e335259..644171f7 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Wed May 15 14:55:52 CEST 2013 -build.number=187 +#Wed May 15 15:22:48 CEST 2013 +build.number=191 diff --git a/src/config.yml b/src/config.yml index 6aa940fc..b203f634 100644 --- a/src/config.yml +++ b/src/config.yml @@ -1,4 +1,4 @@ -# TotalFreedomMod v2.14 Configuration +# TotalFreedomMod v2.15 Configuration # by Madgeek1450 and DarthSalamon # Block placement prevention: diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_invis.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_invis.java new file mode 100644 index 00000000..7f43e97a --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_invis.java @@ -0,0 +1,65 @@ +package me.StevenLawson.TotalFreedomMod.Commands; + +import java.util.ArrayList; +import java.util.List; +import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; +import me.StevenLawson.TotalFreedomMod.TFM_Util; +import org.apache.commons.lang.StringUtils; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.potion.PotionEffectType; + + +@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH) +@CommandParameters(description = "Shows (optionally smites) invisisible players", usage = "/ (smite)") +public class Command_invis extends TFM_Command { + @Override + public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + boolean smite = false; + if (args.length >= 1) + { + if (args[0].equalsIgnoreCase("smite")) + { + smite = true; + } + else + { + return false; + } + } + + List players = new ArrayList(); + int smites = 0; + + for (Player p : server.getOnlinePlayers()) + { + if (p.hasPotionEffect(PotionEffectType.INVISIBILITY)) { + players.add(p.getName()); + if (smite && !TFM_SuperadminList.isUserSuperadmin(p)) + { + server.dispatchCommand(sender, "smite " + p.getName()); + smites++; + } + } + } + + if (players.isEmpty()) { + TFM_Util.playerMsg(sender, "There are no invisible players"); + return true; + } + + if (smite) + { + TFM_Util.playerMsg(sender, "Smitten " + smites + " players"); + } + else + { + TFM_Util.playerMsg(sender, "Invisble players (" + players.size() + "): " + StringUtils.join(players, ",")); + } + + + return true; + } +} \ No newline at end of file diff --git a/src/plugin.yml b/src/plugin.yml index 9c9bf182..4d0e70f9 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,6 +1,6 @@ name: TotalFreedomMod main: me.StevenLawson.TotalFreedomMod.TotalFreedomMod -version: 2.14 +version: 2.15 description: Plugin for the Total Freedom server. authors: [StevenLawson / Madgeek1450, JeromSar / DarthSalamon] From b1202c7871c5410fb9c1a31fa4d241a1b3391029 Mon Sep 17 00:00:00 2001 From: Wilee999 Date: Wed, 15 May 2013 12:03:45 -0600 Subject: [PATCH 07/77] hopefully this fixed /invis --- .../StevenLawson/TotalFreedomMod/Commands/Command_invis.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_invis.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_invis.java index 7f43e97a..ace971d0 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_invis.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_invis.java @@ -56,10 +56,10 @@ public class Command_invis extends TFM_Command { } else { - TFM_Util.playerMsg(sender, "Invisble players (" + players.size() + "): " + StringUtils.join(players, ",")); + TFM_Util.playerMsg(sender, "Invisble players (" + players.size() + "): " + StringUtils.join(players, ", ")); } return true; } -} \ No newline at end of file +} From 47dec49381785c4b1c431624b049b532ad6381d7 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 15 May 2013 21:13:36 +0200 Subject: [PATCH 08/77] added /rl as a blocked command Just because it buggs me ALOT! --- .../TotalFreedomMod/Listener/TFM_PlayerListener.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index f4b24e3c..b43bbfce 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -491,6 +491,13 @@ public class TFM_PlayerListener implements Listener block_command = true; } } + else if (Pattern.compile("^/rl").matcher(command).find()) + { + if (!TFM_SuperadminList.isUserSuperadmin(p)) + { + block_command = true; + } + } else if (Pattern.compile("^/save-").matcher(command).find()) { if (!TFM_SuperadminList.isUserSuperadmin(p)) From ba9289e1a3598f43b5104a71f8a50c3b8c7b9b9c Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 15 May 2013 23:05:20 +0200 Subject: [PATCH 09/77] Added /setl to set the amount of world edit blocks that can be used --- .../Commands/Command_setl.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java new file mode 100644 index 00000000..d6ecde72 --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java @@ -0,0 +1,19 @@ +package me.StevenLawson.TotalFreedomMod.Commands; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH) +@CommandParameters(description = "Sets everyone World Edit Limit to 500.", usage = "/") +public class Command_setl extends TFM_Command +{ + @Override + public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + server.dispatchCommand(sender, "wildcard gcmd ? /limit 500"); + TFM_Util.adminAction(sender.getName(), "Setting all online players block limit to 500.", true); + + return true; + } +} From b7c9f4e02d10a2a374d399a54c01c1c746134cbf Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 15 May 2013 23:12:46 +0200 Subject: [PATCH 10/77] Added warning in MOTD if in adminmode=true I think this would save people connecting and spamming logs if in adminmode! --- .../TotalFreedomMod/Listener/TFM_PlayerListener.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index f4b24e3c..3b3276f4 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -727,5 +727,9 @@ public class TFM_PlayerListener implements Listener { event.setMotd(ChatColor.RED + "You are banned!"); } + if (TotalFreedomMod.adminOnlyMode(event.getAddress().getHostAddress())) + { + event.setMotd(ChatColor.RED + "Server in AdminMode!"); + } } } From a8b4f1d95077056af4f7ba9c16c09e1ce6249349 Mon Sep 17 00:00:00 2001 From: Wilee999 Date: Wed, 15 May 2013 20:56:18 -0700 Subject: [PATCH 11/77] Removed /cmdlist (useless) --- .../Commands/Command_cmdlist.java | 51 ------------------- 1 file changed, 51 deletions(-) delete mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/Command_cmdlist.java diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cmdlist.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cmdlist.java deleted file mode 100644 index 70a111b6..00000000 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cmdlist.java +++ /dev/null @@ -1,51 +0,0 @@ -package me.StevenLawson.TotalFreedomMod.Commands; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import org.apache.commons.lang.StringUtils; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.plugin.Plugin; -import org.bukkit.plugin.PluginDescriptionFile; - -@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH) -@CommandParameters(description = "Show all commands for all server plugins.", usage = "/") -public class Command_cmdlist extends TFM_Command -{ - @Override - public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) - { - List commands = new ArrayList(); - - for (Plugin p : server.getPluginManager().getPlugins()) - { - try - { - PluginDescriptionFile desc = p.getDescription(); - Map> map = (Map>) desc.getCommands(); - - if (map != null) - { - for (Entry> entry : map.entrySet()) - { - String command_name = (String) entry.getKey(); - commands.add(command_name); - } - } - } - catch (Throwable ex) - { - } - } - - Collections.sort(commands); - - sender.sendMessage(StringUtils.join(commands, ",")); - - return true; - } -} From fabbc78d226f181c006899f53a19925e7ff99157 Mon Sep 17 00:00:00 2001 From: Wilee999 Date: Wed, 15 May 2013 23:59:08 -0700 Subject: [PATCH 12/77] Replaced /clearall with /purgeall, this cleans more! --- ...nd_clearall.java => Command_purgeall.java} | 45 ++++++++++--------- 1 file changed, 25 insertions(+), 20 deletions(-) rename src/me/StevenLawson/TotalFreedomMod/Commands/{Command_clearall.java => Command_purgeall.java} (56%) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_clearall.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java similarity index 56% rename from src/me/StevenLawson/TotalFreedomMod/Commands/Command_clearall.java rename to src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java index 573b8700..4dec7c4f 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_clearall.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java @@ -1,20 +1,25 @@ -package me.StevenLawson.TotalFreedomMod.Commands; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH) -@CommandParameters(description = "Removes all entities, nicks and disguises.", usage = "/") -public class Command_clearall extends TFM_Command -{ - @Override - public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) - { - server.dispatchCommand(sender, "rd"); - server.dispatchCommand(sender, "potion clearall"); - server.dispatchCommand(sender, "uall"); - - return true; - } -} +package me.StevenLawson.TotalFreedomMod.Commands; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH) +@CommandParameters(description = "Superadmin command - Purge everything! (except for bans).", usage = "/") +public class Command_purgeall extends TFM_Command +{ + @Override + public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + server.dispatchCommand(sender, "rd"); + server.dispatchCommand(sender, "potion clearall"); + server.dispatchCommand(sender, "uall"); + server.dispatchCommand(sender, "denick"); + server.dispatchCommand(sender, "mute purge"); + server.dispatchCommand(sender, "fr purge"); + server.dispatchCommand(sender, "mp"); + //If I'm missing any, lemme know. Or just add it yourself. + + return true; + } +} \ No newline at end of file From e29a820398fa7e41dbd2aa99a5078082ddf6fd0e Mon Sep 17 00:00:00 2001 From: Wilee999 Date: Thu, 16 May 2013 00:57:26 -0700 Subject: [PATCH 13/77] Added /spurgeall --- .../Commands/Command_purgeall.java | 2 ++ .../Commands/Command_spurgeall.java | 29 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/Command_spurgeall.java diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java index 4dec7c4f..29a42662 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java @@ -18,6 +18,8 @@ public class Command_purgeall extends TFM_Command server.dispatchCommand(sender, "mute purge"); server.dispatchCommand(sender, "fr purge"); server.dispatchCommand(sender, "mp"); + server.dispatchCommand(sender, "blockcmd"); + server.dispatchCommand(sender, "halt purge"); //If I'm missing any, lemme know. Or just add it yourself. return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_spurgeall.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_spurgeall.java new file mode 100644 index 00000000..147b419a --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_spurgeall.java @@ -0,0 +1,29 @@ +package me.StevenLawson.TotalFreedomMod.Commands; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH) +@CommandParameters(description = "Senioradmin command - Purge everything! (except for bans).", usage = "/") +public class Command_spurgeall extends TFM_Command +{ + @Override + public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + server.dispatchCommand(sender, "rd"); + server.dispatchCommand(sender, "potion clearall"); + server.dispatchCommand(sender, "uall"); + server.dispatchCommand(sender, "denick"); + server.dispatchCommand(sender, "mute purge"); + server.dispatchCommand(sender, "fr purge"); + server.dispatchCommand(sender, "mp"); + server.dispatchCommand(sender, "blockcmd"); + server.dispatchCommand(sender, "halt purge"); + server.dispatchCommand(sender, "lockup purge"); + //If I'm missing any, lemme know. Or just add it yourself. + + return true; + + } +} \ No newline at end of file From 4aebf33006efc049215761fe7dfb8f301bd66018 Mon Sep 17 00:00:00 2001 From: Wilee999 Date: Thu, 16 May 2013 12:18:39 -0600 Subject: [PATCH 14/77] Added a broadcast to /purgeall --- .../TotalFreedomMod/Commands/Command_purgeall.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java index 29a42662..3e759410 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java @@ -1,5 +1,8 @@ package me.StevenLawson.TotalFreedomMod.Commands; +import me.StevenLawson.TotalFreedomMod.TFM_Util; + +import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -20,8 +23,10 @@ public class Command_purgeall extends TFM_Command server.dispatchCommand(sender, "mp"); server.dispatchCommand(sender, "blockcmd"); server.dispatchCommand(sender, "halt purge"); + + TFM_Util.bcastMsg("[Purge] Purged!", ChatColor.LIGHT_PURPLE); //If I'm missing any, lemme know. Or just add it yourself. return true; } -} \ No newline at end of file +} From 31b5c99007eab39b4a53ee0d833bfb6611c99c22 Mon Sep 17 00:00:00 2001 From: Wilee999 Date: Thu, 16 May 2013 12:19:47 -0600 Subject: [PATCH 15/77] Added broadcast to /spurgeall --- .../TotalFreedomMod/Commands/Command_spurgeall.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_spurgeall.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_spurgeall.java index 147b419a..c6f5dd99 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_spurgeall.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_spurgeall.java @@ -1,5 +1,8 @@ package me.StevenLawson.TotalFreedomMod.Commands; +import me.StevenLawson.TotalFreedomMod.TFM_Util; + +import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -21,9 +24,11 @@ public class Command_spurgeall extends TFM_Command server.dispatchCommand(sender, "blockcmd"); server.dispatchCommand(sender, "halt purge"); server.dispatchCommand(sender, "lockup purge"); + + TFM_Util.bcastMsg("[Purge] Purged!", ChatColor.LIGHT_PURPLE); //If I'm missing any, lemme know. Or just add it yourself. return true; } -} \ No newline at end of file +} From 6abd2491f19c103f68bed2116977a955f516ef27 Mon Sep 17 00:00:00 2001 From: Wilee999 Date: Thu, 16 May 2013 12:28:28 -0600 Subject: [PATCH 16/77] Removed /denick from /spurgeall --- .../StevenLawson/TotalFreedomMod/Commands/Command_spurgeall.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_spurgeall.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_spurgeall.java index c6f5dd99..da053ad1 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_spurgeall.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_spurgeall.java @@ -17,7 +17,6 @@ public class Command_spurgeall extends TFM_Command server.dispatchCommand(sender, "rd"); server.dispatchCommand(sender, "potion clearall"); server.dispatchCommand(sender, "uall"); - server.dispatchCommand(sender, "denick"); server.dispatchCommand(sender, "mute purge"); server.dispatchCommand(sender, "fr purge"); server.dispatchCommand(sender, "mp"); From aea65815a860e565fb1e7360d0f998e68761dc2e Mon Sep 17 00:00:00 2001 From: Wilee999 Date: Thu, 16 May 2013 12:29:06 -0600 Subject: [PATCH 17/77] removed /denick from /purgeall --- .../StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java index 3e759410..f80c6694 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java @@ -17,7 +17,6 @@ public class Command_purgeall extends TFM_Command server.dispatchCommand(sender, "rd"); server.dispatchCommand(sender, "potion clearall"); server.dispatchCommand(sender, "uall"); - server.dispatchCommand(sender, "denick"); server.dispatchCommand(sender, "mute purge"); server.dispatchCommand(sender, "fr purge"); server.dispatchCommand(sender, "mp"); From d2457adf68314723ae4dddf52d44b71be2423d49 Mon Sep 17 00:00:00 2001 From: Wilee999 Date: Thu, 16 May 2013 12:31:22 -0600 Subject: [PATCH 18/77] Create Command_cmdlist.java --- .../Commands/Command_cmdlist.java | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/Command_cmdlist.java diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cmdlist.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cmdlist.java new file mode 100644 index 00000000..70a111b6 --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cmdlist.java @@ -0,0 +1,51 @@ +package me.StevenLawson.TotalFreedomMod.Commands; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import org.apache.commons.lang.StringUtils; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.PluginDescriptionFile; + +@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH) +@CommandParameters(description = "Show all commands for all server plugins.", usage = "/") +public class Command_cmdlist extends TFM_Command +{ + @Override + public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + List commands = new ArrayList(); + + for (Plugin p : server.getPluginManager().getPlugins()) + { + try + { + PluginDescriptionFile desc = p.getDescription(); + Map> map = (Map>) desc.getCommands(); + + if (map != null) + { + for (Entry> entry : map.entrySet()) + { + String command_name = (String) entry.getKey(); + commands.add(command_name); + } + } + } + catch (Throwable ex) + { + } + } + + Collections.sort(commands); + + sender.sendMessage(StringUtils.join(commands, ",")); + + return true; + } +} From ba834b6b92d323361e45c874fb140945f1beccbf Mon Sep 17 00:00:00 2001 From: Wilee999 Date: Thu, 16 May 2013 11:45:21 -0700 Subject: [PATCH 19/77] g --- .../Commands/Command_cmdlist.java | 51 +++++++++++++++++++ .../Commands/Command_spurgeall.java | 29 ----------- 2 files changed, 51 insertions(+), 29 deletions(-) create mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/Command_cmdlist.java delete mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/Command_spurgeall.java diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cmdlist.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cmdlist.java new file mode 100644 index 00000000..66de9a62 --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cmdlist.java @@ -0,0 +1,51 @@ +package me.StevenLawson.TotalFreedomMod.Commands; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import org.apache.commons.lang.StringUtils; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.PluginDescriptionFile; + +@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH) +@CommandParameters(description = "Show all commands for all server plugins.", usage = "/") +public class Command_cmdlist extends TFM_Command +{ + @Override + public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + List commands = new ArrayList(); + + for (Plugin p : server.getPluginManager().getPlugins()) + { + try + { + PluginDescriptionFile desc = p.getDescription(); + Map> map = (Map>) desc.getCommands(); + + if (map != null) + { + for (Entry> entry : map.entrySet()) + { + String command_name = (String) entry.getKey(); + commands.add(command_name); + } + } + } + catch (Throwable ex) + { + } + } + + Collections.sort(commands); + + sender.sendMessage(StringUtils.join(commands, ",")); + + return true; + } +} \ No newline at end of file diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_spurgeall.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_spurgeall.java deleted file mode 100644 index 147b419a..00000000 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_spurgeall.java +++ /dev/null @@ -1,29 +0,0 @@ -package me.StevenLawson.TotalFreedomMod.Commands; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH) -@CommandParameters(description = "Senioradmin command - Purge everything! (except for bans).", usage = "/") -public class Command_spurgeall extends TFM_Command -{ - @Override - public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) - { - server.dispatchCommand(sender, "rd"); - server.dispatchCommand(sender, "potion clearall"); - server.dispatchCommand(sender, "uall"); - server.dispatchCommand(sender, "denick"); - server.dispatchCommand(sender, "mute purge"); - server.dispatchCommand(sender, "fr purge"); - server.dispatchCommand(sender, "mp"); - server.dispatchCommand(sender, "blockcmd"); - server.dispatchCommand(sender, "halt purge"); - server.dispatchCommand(sender, "lockup purge"); - //If I'm missing any, lemme know. Or just add it yourself. - - return true; - - } -} \ No newline at end of file From d016e1ff087d8737ad5d8a7ab24e4d7ad022c6a9 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Fri, 17 May 2013 20:03:16 +0200 Subject: [PATCH 20/77] Fixed stuff with Wilee's and Wild's changes --- src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java | 1 + .../TotalFreedomMod/Listener/TFM_PlayerListener.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java index d6ecde72..081f4c74 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java @@ -1,5 +1,6 @@ package me.StevenLawson.TotalFreedomMod.Commands; +import me.StevenLawson.TotalFreedomMod.TFM_Util; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index 3b3276f4..0c1cb432 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -727,7 +727,7 @@ public class TFM_PlayerListener implements Listener { event.setMotd(ChatColor.RED + "You are banned!"); } - if (TotalFreedomMod.adminOnlyMode(event.getAddress().getHostAddress())) + if (TotalFreedomMod.adminOnlyMode) { event.setMotd(ChatColor.RED + "Server in AdminMode!"); } From 3b7a8d4d88d05e795527f368aa8ba3a38bff2c17 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Fri, 17 May 2013 20:05:52 +0200 Subject: [PATCH 21/77] Incremented version number --- appinfo.properties | 2 +- src/config.yml | 2 +- src/plugin.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index 023982bd..101ceb5b 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ #Wed, 15 May 2013 15:22:48 +0200 -program.VERSION=2.15 +program.VERSION=2.16 program.BUILDNUM=190 program.BUILDDATE=05/15/2013 03\:22 PM diff --git a/src/config.yml b/src/config.yml index b203f634..be4c016f 100644 --- a/src/config.yml +++ b/src/config.yml @@ -1,4 +1,4 @@ -# TotalFreedomMod v2.15 Configuration +# TotalFreedomMod v2.16 Configuration # by Madgeek1450 and DarthSalamon # Block placement prevention: diff --git a/src/plugin.yml b/src/plugin.yml index 4d0e70f9..4c812d49 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,6 +1,6 @@ name: TotalFreedomMod main: me.StevenLawson.TotalFreedomMod.TotalFreedomMod -version: 2.15 +version: 2.16 description: Plugin for the Total Freedom server. authors: [StevenLawson / Madgeek1450, JeromSar / DarthSalamon] From 4853cc439b7379e464a1aadf8d506c52dca393e5 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Fri, 17 May 2013 22:58:03 +0200 Subject: [PATCH 22/77] Added /rollback --- appinfo.properties | 6 +- buildnumber.properties | 4 +- .../Commands/Command_rollback.java | 88 +++++++++++++++++++ .../Listener/TFM_BlockListener.java | 26 ++++-- .../Listener/TFM_PlayerListener.java | 2 - .../TotalFreedomMod/TFM_RollbackEntry.java | 54 ++++++++++++ .../TotalFreedomMod/TFM_RollbackManager.java | 86 ++++++++++++++++++ 7 files changed, 252 insertions(+), 14 deletions(-) create mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/Command_rollback.java create mode 100644 src/me/StevenLawson/TotalFreedomMod/TFM_RollbackEntry.java create mode 100644 src/me/StevenLawson/TotalFreedomMod/TFM_RollbackManager.java diff --git a/appinfo.properties b/appinfo.properties index 101ceb5b..b21582e3 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Wed, 15 May 2013 15:22:48 +0200 +#Fri, 17 May 2013 22:55:47 +0200 program.VERSION=2.16 -program.BUILDNUM=190 -program.BUILDDATE=05/15/2013 03\:22 PM +program.BUILDNUM=210 +program.BUILDDATE=05/17/2013 10\:55 PM diff --git a/buildnumber.properties b/buildnumber.properties index 644171f7..f5967c23 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Wed May 15 15:22:48 CEST 2013 -build.number=191 +#Fri May 17 22:55:47 CEST 2013 +build.number=211 diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rollback.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rollback.java new file mode 100644 index 00000000..6301a5f7 --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rollback.java @@ -0,0 +1,88 @@ +package me.StevenLawson.TotalFreedomMod.Commands; + +import me.StevenLawson.TotalFreedomMod.TFM_RollbackManager; +import me.StevenLawson.TotalFreedomMod.TFM_Util; +import org.bukkit.ChatColor; +import org.bukkit.OfflinePlayer; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + + +@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, block_host_console = true) +@CommandParameters(description = "Issues a rollback on a player", usage = "/ <[partialname] | purge [partialname] | purgeall>") +public class Command_rollback extends TFM_Command { + + @Override + public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + if (args.length > 2) + { + return false; + } + + if (args.length == 1 && args[0].equalsIgnoreCase("purgeall")) + { + TFM_Util.adminAction(sender.getName(), "Puring all rollback data", false); + playerMsg("Purged entries for " + TFM_RollbackManager.purgeEntries() + " players."); + return true; + } + + if (args.length == 2 && args[0].equalsIgnoreCase("purge")) + { + OfflinePlayer p; + try + { + p = getPlayer(args[1]); + } + catch (CantFindPlayerException ex) + { + p = server.getOfflinePlayer(args[1]); + if (!p.hasPlayedBefore()) + { + playerMsg("Player is not online, or never joined the server.", ChatColor.RED); + return true; + } + } + + if (!TFM_RollbackManager.canRollback(p.getName())) + { + playerMsg("No rollback data found for that player", ChatColor.RED); + } else { + playerMsg("Purged " + TFM_RollbackManager.purgeEntries(p.getName()) + " entries."); + return true; + } + } + + if (args.length != 1) + { + return false; + } + + OfflinePlayer p; + try + { + p = getPlayer(args[0]); + } + catch (CantFindPlayerException ex) + { + p = server.getOfflinePlayer(args[0]); + if (!p.hasPlayedBefore()) + { + playerMsg("Player is not online, or never joined the server.", ChatColor.RED); + return true; + } + } + + if (!TFM_RollbackManager.canRollback(p.getName())) + { + playerMsg("Player has no rollback data set.", ChatColor.RED); + return true; + } + + TFM_Util.adminAction(sender.getName(), "Rolling back player: " + p.getName(), false); + playerMsg("Rolled back " + TFM_RollbackManager.rollback(p) + " blocks"); + return true; + } + +} diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_BlockListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_BlockListener.java index 02f11ecb..87e88eb8 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_BlockListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_BlockListener.java @@ -3,12 +3,15 @@ package me.StevenLawson.TotalFreedomMod.Listener; import me.StevenLawson.TotalFreedomMod.TFM_Log; import me.StevenLawson.TotalFreedomMod.TFM_PlayerData; import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea; +import me.StevenLawson.TotalFreedomMod.TFM_RollbackEntry; +import me.StevenLawson.TotalFreedomMod.TFM_RollbackManager; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -24,7 +27,6 @@ public class TFM_BlockListener implements Listener if (!TotalFreedomMod.allowFireSpread) { event.setCancelled(true); - return; } } @@ -34,7 +36,6 @@ public class TFM_BlockListener implements Listener if (!TotalFreedomMod.allowFirePlace) { event.setCancelled(true); - return; } } @@ -95,7 +96,6 @@ public class TFM_BlockListener implements Listener if (TFM_ProtectedArea.isInProtectedArea(block_pos)) { event.setCancelled(true); - return; } } } @@ -180,7 +180,6 @@ public class TFM_BlockListener implements Listener p.sendMessage(ChatColor.GRAY + "Lava placement is currently disabled."); event.setCancelled(true); - return; } break; } @@ -199,7 +198,6 @@ public class TFM_BlockListener implements Listener p.sendMessage(ChatColor.GRAY + "Water placement is currently disabled."); event.setCancelled(true); - return; } break; } @@ -217,7 +215,6 @@ public class TFM_BlockListener implements Listener p.sendMessage(ChatColor.GRAY + "Fire placement is currently disabled."); event.setCancelled(true); - return; } break; } @@ -235,7 +232,6 @@ public class TFM_BlockListener implements Listener p.sendMessage(ChatColor.GRAY + "TNT is currently disabled."); event.setCancelled(true); - return; } break; } @@ -250,6 +246,22 @@ public class TFM_BlockListener implements Listener event.setCancelled(true); } } + + @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) + public void onBlockPlaceRollback(BlockPlaceEvent event) + { + TFM_RollbackEntry entry = new TFM_RollbackEntry(); + entry.setLocation(event.getBlock().getLocation()); + entry.setMaterial(Material.AIR); + TFM_RollbackManager.blockUpdate(event.getPlayer(), entry); + } + + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onBlockBreakRollback(BlockBreakEvent event) + { + TFM_RollbackManager.blockUpdate(event.getPlayer(), event.getBlock()); + } + // @EventHandler(priority = EventPriority.NORMAL) // public void onCommandBlockChangeEvent(CommandBlockChangeEvent event) // { diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index 0c1cb432..247c48b6 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -55,7 +55,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; } case POTION: { @@ -81,7 +80,6 @@ public class TFM_PlayerListener implements Listener playerdata.enqueueMob(rezzed_mob); event.setCancelled(true); - return; } break; } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackEntry.java b/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackEntry.java new file mode 100644 index 00000000..3ed8f559 --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackEntry.java @@ -0,0 +1,54 @@ +package me.StevenLawson.TotalFreedomMod; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; + + +public class TFM_RollbackEntry +{ + + private Location location; + private Material material; + private byte data; + + public TFM_RollbackEntry() + { + } + + public TFM_RollbackEntry(Block block) + { + location = block.getLocation(); + material = block.getType(); + data = block.getData(); + } + + public void setBlock(Block block) + { + location = block.getLocation(); + material = block.getType(); + data = block.getData(); + } + + public void setLocation(Location location) + { + this.location = location; + } + + public void setMaterial(Material material) + { + this.material = material; + } + + public void setData(byte data) + { + this.data = data; + } + + public void restore() + { + Block b = location.getWorld().getBlockAt(location); + b.setType(material); + b.setData(data); + } +} diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackManager.java b/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackManager.java new file mode 100644 index 00000000..766c88b3 --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackManager.java @@ -0,0 +1,86 @@ +package me.StevenLawson.TotalFreedomMod; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.bukkit.OfflinePlayer; +import org.bukkit.block.Block; + +public class TFM_RollbackManager +{ + public static Map> entries = new HashMap>(); + + public static void blockUpdate(OfflinePlayer player, Block block) + { + List e; + if (entries.containsKey(player.getName())) + { + e = entries.get(player.getName()); + } + else + { + e = new ArrayList(); + } + e.add(new TFM_RollbackEntry(block)); + entries.put(player.getName(), e); + } + + public static void blockUpdate(OfflinePlayer player, TFM_RollbackEntry entry) + { + List e; + if (entries.containsKey(player.getName())) + { + e = entries.get(player.getName()); + } + else + { + e = new ArrayList(); + } + e.add(entry); + entries.put(player.getName(), e); + } + + public static int rollback(OfflinePlayer player) + { + if (!canRollback(player.getName())) + { + TFM_Log.severe("Could not rollback player: " + player.getName() + "! No entries are set"); + return 0; + } + + List e = entries.get(player.getName()); + int counter = 0; + for (TFM_RollbackEntry entry : e) + { + entry.restore(); + counter++; + } + entries.remove(player.getName()); + return counter; + } + + public static boolean canRollback(String player) + { + return entries.containsKey(player); + } + + public static int purgeEntries() + { + int counter = entries.size(); + entries.clear(); + return counter; + } + + public static int purgeEntries(String player) + { + if (!canRollback(player)) + { + return 0; + } + + int counter = entries.get(player).size(); + entries.remove(player); + return counter; + } + } From b8ab56bed504952e1fbed1c9a8f4f8d15c320a05 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Fri, 17 May 2013 23:00:27 +0200 Subject: [PATCH 23/77] Incremented version number --- appinfo.properties | 2 +- src/config.yml | 2 +- src/plugin.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index b21582e3..ca80135e 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ #Fri, 17 May 2013 22:55:47 +0200 -program.VERSION=2.16 +program.VERSION=2.17 program.BUILDNUM=210 program.BUILDDATE=05/17/2013 10\:55 PM diff --git a/src/config.yml b/src/config.yml index be4c016f..6059ae9c 100644 --- a/src/config.yml +++ b/src/config.yml @@ -1,4 +1,4 @@ -# TotalFreedomMod v2.16 Configuration +# TotalFreedomMod v2.17 Configuration # by Madgeek1450 and DarthSalamon # Block placement prevention: diff --git a/src/plugin.yml b/src/plugin.yml index 4c812d49..322dfcc8 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,6 +1,6 @@ name: TotalFreedomMod main: me.StevenLawson.TotalFreedomMod.TotalFreedomMod -version: 2.16 +version: 2.17 description: Plugin for the Total Freedom server. authors: [StevenLawson / Madgeek1450, JeromSar / DarthSalamon] From 63508addf44b264b59e6f23a20a5910f42a1adcb Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 19 May 2013 23:28:57 +0200 Subject: [PATCH 24/77] /Gtfo bug fix --- src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java index 9ef79461..5c7c447e 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java @@ -43,7 +43,7 @@ public class Command_gtfo extends TFM_Command //rollback - server.dispatchCommand(sender, "rollback " + p.getName() + " all"); + server.dispatchCommand(sender, "rollback " + p.getName()); // deop From 8d59ba59f43cfaba9855c67728472e3abbef547c Mon Sep 17 00:00:00 2001 From: Jerome van der Sar Date: Mon, 20 May 2013 15:40:04 +0200 Subject: [PATCH 25/77] Prepend Rollback entries, this ensures the last entries get restored first, instead of last --- appinfo.properties | 6 +++--- buildnumber.properties | 4 ++-- .../StevenLawson/TotalFreedomMod/TFM_RollbackManager.java | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index ca80135e..e672e774 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Fri, 17 May 2013 22:55:47 +0200 +#Mon, 20 May 2013 15:11:32 +0200 program.VERSION=2.17 -program.BUILDNUM=210 -program.BUILDDATE=05/17/2013 10\:55 PM +program.BUILDNUM=212 +program.BUILDDATE=05/20/2013 03\:11 PM diff --git a/buildnumber.properties b/buildnumber.properties index f5967c23..0d358756 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Fri May 17 22:55:47 CEST 2013 -build.number=211 +#Mon May 20 15:11:32 CEST 2013 +build.number=213 diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackManager.java b/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackManager.java index 766c88b3..23a5c0bc 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackManager.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackManager.java @@ -22,7 +22,7 @@ public class TFM_RollbackManager { e = new ArrayList(); } - e.add(new TFM_RollbackEntry(block)); + e.add(0, new TFM_RollbackEntry(block)); entries.put(player.getName(), e); } From d8ae364300d894a5f2437da14c881e5b74440496 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 26 May 2013 14:18:16 +0200 Subject: [PATCH 26/77] Patched exploit found in commands This will fix the issue with world edit history erasing, please push and compile ASAP as Mark would like this patched :) --- .../TotalFreedomMod/Listener/TFM_PlayerListener.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index f8edb986..30cbf5a8 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -497,6 +497,13 @@ public class TFM_PlayerListener implements Listener } } else if (Pattern.compile("^/save-").matcher(command).find()) + { + if (!TFM_SuperadminList.isUserSuperadmin(p)) + { + block_command = true; + } + } + else if (Pattern.compile("^/clearhistory").matcher(command).find()) { if (!TFM_SuperadminList.isUserSuperadmin(p)) { From ad9e901aa0a4af7315e8c5d742b118bc45502059 Mon Sep 17 00:00:00 2001 From: Wilee999 Date: Mon, 27 May 2013 19:57:53 -0700 Subject: [PATCH 27/77] Fixed /blockcmd in /purgeall --- .../StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java index bff4bfb7..c4fc7f5d 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java @@ -17,7 +17,7 @@ public class Command_purgeall extends TFM_Command server.dispatchCommand(sender, "mute purge"); server.dispatchCommand(sender, "fr purge"); server.dispatchCommand(sender, "mp"); - server.dispatchCommand(sender, "blockcmd"); + server.dispatchCommand(sender, "blockcmd purge"); server.dispatchCommand(sender, "halt purge"); //If I'm missing any, lemme know. Or just add it yourself. From f6943b9754df72cbd1eb0daa88c02d5785958cdf Mon Sep 17 00:00:00 2001 From: Wilee999 Date: Wed, 29 May 2013 20:57:01 -0600 Subject: [PATCH 28/77] This /stop message works better. --- src/me/StevenLawson/TotalFreedomMod/Commands/Command_stop.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_stop.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_stop.java index fd5216ba..711d5019 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_stop.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_stop.java @@ -17,7 +17,7 @@ public class Command_stop extends TFM_Command for (Player p : server.getOnlinePlayers()) { - p.kickPlayer("Server is going offline, come back in a few minutes."); + p.kickPlayer("Server is going offline, come back in about 20 seconds."); } server.shutdown(); From d1d220f6181b40c5a9f7c00fc2c222f6ddce83df Mon Sep 17 00:00:00 2001 From: Wilee999 Date: Thu, 30 May 2013 16:38:27 -0600 Subject: [PATCH 29/77] Added /rb (/rollback alias) --- .../StevenLawson/TotalFreedomMod/Commands/Command_rollback.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rollback.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rollback.java index 6301a5f7..1bc55e44 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rollback.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rollback.java @@ -10,7 +10,7 @@ import org.bukkit.entity.Player; @CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, block_host_console = true) -@CommandParameters(description = "Issues a rollback on a player", usage = "/ <[partialname] | purge [partialname] | purgeall>") +@CommandParameters(description = "Issues a rollback on a player", usage = "/ <[partialname] | purge [partialname] | purgeall>", aliases = "rb") public class Command_rollback extends TFM_Command { @Override From 79fc01eae78b1a6d416a1164cc2aa13c5cd3d0e7 Mon Sep 17 00:00:00 2001 From: Wilee999 Date: Fri, 31 May 2013 19:54:36 -0600 Subject: [PATCH 30/77] /nuke will now tempban you. --- .../TotalFreedomMod/Listener/TFM_PlayerListener.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index 30cbf5a8..3ed1b4bd 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -489,6 +489,13 @@ public class TFM_PlayerListener implements Listener block_command = true; } } + else if (Pattern.compile("^/nuke").matcher(command).find()) + { + if (!TFM_SuperadminList.isUserSuperadmin(p)) + { + block_command = true; + } + } else if (Pattern.compile("^/rl").matcher(command).find()) { if (!TFM_SuperadminList.isUserSuperadmin(p)) @@ -503,7 +510,7 @@ public class TFM_PlayerListener implements Listener block_command = true; } } - else if (Pattern.compile("^/clearhistory").matcher(command).find()) + else if (Pattern.compile("^/clearhistory").matcher(command).find()) { if (!TFM_SuperadminList.isUserSuperadmin(p)) { From 6768854eda2373c4a68e1df6f4bea7a62494052c Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 2 Jun 2013 18:17:33 +0200 Subject: [PATCH 31/77] Added new blocked wildcards This is to stop people from being able to abuse admin or going rogue as easily --- .../Commands/Command_wildcard.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_wildcard.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_wildcard.java index 2fc5af26..63431743 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_wildcard.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_wildcard.java @@ -18,6 +18,21 @@ public class Command_wildcard extends TFM_Command playerMsg("What the hell are you trying to do, you stupid idiot...", ChatColor.RED); return true; } + if (args[0].equals("gtfo")) + { + playerMsg("Nice try", ChatColor.RED); + return true; + } + if (args[0].equals("doom")) + { + playerMsg("Look, we all hate people, but this is not the way to deal with it, doom is evil enough!", ChatColor.RED); + return true; + } + if (args[0].equals("saconfig")) + { + playerMsg("WOA, WTF are you trying to do???", ChatColor.RED); + return true; + } String base_command = StringUtils.join(args, " "); From 6519ead1213d5fe04a56a1ac6a9bbb323eaba559 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Mon, 3 Jun 2013 23:06:23 +0200 Subject: [PATCH 32/77] Added Acidic, Wild and Hex to the developer list --- appinfo.properties | 6 +++--- buildnumber.properties | 4 ++-- .../TotalFreedomMod/Commands/Command_list.java | 2 +- src/me/StevenLawson/TotalFreedomMod/TFM_Util.java | 8 +++++--- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index e672e774..3d401e61 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Mon, 20 May 2013 15:11:32 +0200 +#Mon, 03 Jun 2013 23:06:55 +0200 program.VERSION=2.17 -program.BUILDNUM=212 -program.BUILDDATE=05/20/2013 03\:11 PM +program.BUILDNUM=214 +program.BUILDDATE=06/03/2013 11\:06 PM diff --git a/buildnumber.properties b/buildnumber.properties index 0d358756..039ae3cf 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Mon May 20 15:11:32 CEST 2013 -build.number=213 +#Mon Jun 03 23:06:55 CEST 2013 +build.number=215 diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_list.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_list.java index 0491edb5..08afcd0a 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_list.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_list.java @@ -72,7 +72,7 @@ public class Command_list extends TFM_Command prefix = (ChatColor.GOLD + "[SA]"); } - if (p.getName().equalsIgnoreCase("madgeek1450") || p.getName().equalsIgnoreCase("darthsalamon")) + if (TFM_Util.DEVELOPERS.contains(p.getName())) { prefix = (ChatColor.DARK_PURPLE + "[Dev]"); } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index 49163739..8142718d 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -27,6 +27,7 @@ public class TFM_Util private static final Map eject_tracker = new HashMap(); public static final Map mobtypes = new HashMap(); public static final List STOP_COMMANDS = Arrays.asList("stop", "off", "end", "halt", "die"); + public static final List DEVELOPERS = Arrays.asList("Madgeek1540", "DarthSalamon", "AcidicCyanide", "wild1145", "HeXeRei452"); static { @@ -979,7 +980,9 @@ public class TFM_Util String prefix; if (senderIsConsole) { prefix = ChatColor.BLUE + "(Console)"; - } else { + } + else + { if (TFM_SuperadminList.isSeniorAdmin(sender)) { prefix = ChatColor.LIGHT_PURPLE + "(SrA)"; @@ -987,8 +990,7 @@ public class TFM_Util { prefix = ChatColor.GOLD + "(SA)"; } - if (sender.getName().equalsIgnoreCase("Madgeek1450") - || sender.getName().equalsIgnoreCase("DarthSalamon")) + if (DEVELOPERS.contains(sender.getName())) { prefix = ChatColor.DARK_PURPLE + "(Dev)"; } From 36ceb7007a257c99077d39305c9de0e274f7cd96 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Sun, 9 Jun 2013 14:11:22 +0300 Subject: [PATCH 33/77] Added Disaster839 as a developer. --- src/me/StevenLawson/TotalFreedomMod/TFM_Util.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index 8142718d..e7b5ad96 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -27,7 +27,7 @@ public class TFM_Util private static final Map eject_tracker = new HashMap(); public static final Map mobtypes = new HashMap(); public static final List STOP_COMMANDS = Arrays.asList("stop", "off", "end", "halt", "die"); - public static final List DEVELOPERS = Arrays.asList("Madgeek1540", "DarthSalamon", "AcidicCyanide", "wild1145", "HeXeRei452"); + public static final List DEVELOPERS = Arrays.asList("Madgeek1540", "DarthSalamon", "AcidicCyanide", "wild1145", "HeXeRei452", "Disaster839"); static { From 201d27e0702443e2bda4aee885fdf267b92e6ab9 Mon Sep 17 00:00:00 2001 From: Dan Jones Date: Sun, 9 Jun 2013 21:52:13 +0200 Subject: [PATCH 34/77] Added survival -a (Allman Style) --- .../Commands/Command_survival.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_survival.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_survival.java index 552c0759..2062a7f9 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_survival.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_survival.java @@ -1,6 +1,8 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; +import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.command.Command; @@ -24,6 +26,29 @@ public class Command_survival extends TFM_Command } Player p; + p = sender_p; + if (args.length != 0){ + if (args[0].equalsIgnoreCase("-a")) + { + if (!TFM_SuperadminList.isUserSuperadmin(sender)) + { + sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + return true; + } + + for (Player player : server.getOnlinePlayers()) + { + if(!TFM_SuperadminList.isUserSuperadmin(p)) + { + player.setGameMode(GameMode.CREATIVE); + } + } + + Bukkit.broadcastMessage(ChatColor.AQUA + sender.getName() + " - Setting all non-admins gamemode to creative."); + return true; + } + } + if (args.length == 0) { p = sender_p; From c96bdea066ba461386f94d751db1aa3e7c3c77a3 Mon Sep 17 00:00:00 2001 From: Dan Jones Date: Sun, 9 Jun 2013 22:26:06 +0200 Subject: [PATCH 35/77] Fixed survival -a I was a numpty and forgot to change the gamemode it changed people to. --- .../TotalFreedomMod/Commands/Command_survival.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_survival.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_survival.java index 2062a7f9..5e36465b 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_survival.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_survival.java @@ -40,11 +40,11 @@ public class Command_survival extends TFM_Command { if(!TFM_SuperadminList.isUserSuperadmin(p)) { - player.setGameMode(GameMode.CREATIVE); + player.setGameMode(GameMode.SURVIVAL); } } - Bukkit.broadcastMessage(ChatColor.AQUA + sender.getName() + " - Setting all non-admins gamemode to creative."); + Bukkit.broadcastMessage(ChatColor.AQUA + sender.getName() + " - Setting all non-admins gamemode to survival."); return true; } } From a2a6e39db9a146492ed64125d0753e14e831ca78 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Mon, 10 Jun 2013 08:24:53 +0200 Subject: [PATCH 36/77] Minor changes, added /creative -a, formatting fixes, updated version number --- appinfo.properties | 8 ++-- buildnumber.properties | 4 +- src/config.yml | 2 +- .../Commands/Command_creative.java | 36 ++++++++++++---- .../Commands/Command_survival.java | 42 +++++++++---------- src/permban.yml | 1 + src/plugin.yml | 2 +- src/superadmin.yml | 2 +- 8 files changed, 56 insertions(+), 41 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index 3d401e61..8813518e 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Mon, 03 Jun 2013 23:06:55 +0200 +#Mon, 03 Jun 2013 23:08:42 +0200 -program.VERSION=2.17 -program.BUILDNUM=214 -program.BUILDDATE=06/03/2013 11\:06 PM +program.VERSION=2.18 +program.BUILDNUM=216 +program.BUILDDATE=06/03/2013 11\:08 PM diff --git a/buildnumber.properties b/buildnumber.properties index 039ae3cf..f9e3d172 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Mon Jun 03 23:06:55 CEST 2013 -build.number=215 +#Mon Jun 03 23:08:42 CEST 2013 +build.number=217 diff --git a/src/config.yml b/src/config.yml index 6059ae9c..a9a2ce17 100644 --- a/src/config.yml +++ b/src/config.yml @@ -1,4 +1,4 @@ -# TotalFreedomMod v2.17 Configuration +# TotalFreedomMod v2.18 Configuration # by Madgeek1450 and DarthSalamon # Block placement prevention: diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_creative.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_creative.java index 057e43fa..1d1fd608 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_creative.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_creative.java @@ -1,6 +1,8 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; +import me.StevenLawson.TotalFreedomMod.TFM_Util; +import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.GameMode; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -29,23 +31,39 @@ public class Command_creative extends TFM_Command } else { - if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) + if (args[0].equalsIgnoreCase("-a")) { - try + if (!TFM_SuperadminList.isUserSuperadmin(sender)) + { + sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + return true; + } + + for (Player player : server.getOnlinePlayers()) { - p = getPlayer(args[0]); - } - catch (CantFindPlayerException ex) - { - sender.sendMessage(ex.getMessage()); - return true; + player.setGameMode(GameMode.CREATIVE); } + + TFM_Util.adminAction(sender.getName(), "Changing everyone's gamemode to creative", false); + return true; } - else + + if (!(senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))) { playerMsg("Only superadmins can change other user's gamemode."); return true; } + + try + { + p = getPlayer(args[0]); + } + catch (CantFindPlayerException ex) + { + sender.sendMessage(ex.getMessage()); + return true; + } + } playerMsg("Setting " + p.getName() + " to game mode 'Creative'."); diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_survival.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_survival.java index 5e36465b..7b835d4f 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_survival.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_survival.java @@ -1,6 +1,7 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; +import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -10,7 +11,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH) -@CommandParameters(description = "Quickly change your own gamemode to survival, or define someone's username to change theirs.", usage = "/ [partialname]") +@CommandParameters(description = "Quickly change your own gamemode to survival, or define someone's username to change theirs.", usage = "/ <[partialname] | -a>") public class Command_survival extends TFM_Command { @Override @@ -26,28 +27,6 @@ public class Command_survival extends TFM_Command } Player p; - p = sender_p; - if (args.length != 0){ - if (args[0].equalsIgnoreCase("-a")) - { - if (!TFM_SuperadminList.isUserSuperadmin(sender)) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - - for (Player player : server.getOnlinePlayers()) - { - if(!TFM_SuperadminList.isUserSuperadmin(p)) - { - player.setGameMode(GameMode.SURVIVAL); - } - } - - Bukkit.broadcastMessage(ChatColor.AQUA + sender.getName() + " - Setting all non-admins gamemode to survival."); - return true; - } - } if (args.length == 0) { @@ -55,6 +34,23 @@ public class Command_survival extends TFM_Command } else { + if (args[0].equalsIgnoreCase("-a")) + { + if (!TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole) + { + sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + return true; + } + + for (Player player : server.getOnlinePlayers()) + { + player.setGameMode(GameMode.SURVIVAL); + } + + TFM_Util.adminAction(sender.getName(), "Changing everyone's gamemode to survival", false); + return true; + } + if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) { try diff --git a/src/permban.yml b/src/permban.yml index c763eb1b..329e3dc9 100644 --- a/src/permban.yml +++ b/src/permban.yml @@ -7,3 +7,4 @@ badplayer1: - 321.321.321.321 badplayer2: - 111.111.111.111 +badplayer3: [] diff --git a/src/plugin.yml b/src/plugin.yml index 322dfcc8..db4e3e52 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,6 +1,6 @@ name: TotalFreedomMod main: me.StevenLawson.TotalFreedomMod.TotalFreedomMod -version: 2.17 +version: 2.18 description: Plugin for the Total Freedom server. authors: [StevenLawson / Madgeek1450, JeromSar / DarthSalamon] diff --git a/src/superadmin.yml b/src/superadmin.yml index 02dbfaf3..b98880aa 100644 --- a/src/superadmin.yml +++ b/src/superadmin.yml @@ -15,7 +15,7 @@ superadmins: - 127.0.0.1 - 8.8.8.8 last_login: Sun, 11 Nov 2012 01:09:14 -0500 - custom_login_message: the &5Chief-Developer&b and &6Master-ass-kicker&b. + custom_login_message: the &4Co-Founder&b and &6Master-ass-kicker&b. is_senior_admin: true console_aliases: - madgeek From 1f87c05547e413362933e33cf71b76482a57e623 Mon Sep 17 00:00:00 2001 From: Dan Jones Date: Mon, 10 Jun 2013 11:51:55 +0200 Subject: [PATCH 37/77] Changed madgeek1540 to madgeek1450 Just noticed a little typing error in the developer's StringList, so I decided to fix it :) --- src/me/StevenLawson/TotalFreedomMod/TFM_Util.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index e7b5ad96..5b936e1e 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -27,7 +27,7 @@ public class TFM_Util private static final Map eject_tracker = new HashMap(); public static final Map mobtypes = new HashMap(); public static final List STOP_COMMANDS = Arrays.asList("stop", "off", "end", "halt", "die"); - public static final List DEVELOPERS = Arrays.asList("Madgeek1540", "DarthSalamon", "AcidicCyanide", "wild1145", "HeXeRei452", "Disaster839"); + public static final List DEVELOPERS = Arrays.asList("Madgeek1450", "DarthSalamon", "AcidicCyanide", "wild1145", "HeXeRei452", "Disaster839"); static { From 386989fa69137542bf4cbc14654ef27bc83259cc Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Tue, 11 Jun 2013 17:59:04 +0200 Subject: [PATCH 38/77] Added contribution info --- CONTRIBUTING.md | 63 ++++++++++++++++++++++++++++++++++++ README.markdown => README.md | 0 2 files changed, 63 insertions(+) create mode 100644 CONTRIBUTING.md rename README.markdown => README.md (100%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..8315c3d9 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,63 @@ +# How to contribute + +TotalFreedomMod aims to be a fully functional all-op server mod which works in +a large range of configurations. In order to be as flexible as possible on the +server-end, we encourage contributing to TotalFreedomMod by making 'pull-requests' +to this repository. + +## Getting Started + +* Make sure you have a [GitHub account](https://github.com/signup/free) +* If the issue is a bug, submit a ticket for it, assuming one does not already exist. + * Clearly describe the issue including steps to reproduce it. + * Make sure you fill in the earliest version that you know has the issue. +* Fork the repository on GitHub + +## Making Changes + +* Create a topic branch from where you want to base your work. + * This is usually the master branch. + * Only target release branches if you are certain your addition must be on that + branch. + * To quickly create a topic branch based on master; `git checkout -b contribution` + Please avoid working directly on the `master` branch. +* Make changes and commit where necessary. +* Check for unnecessary whitespace with `git diff --check` before committing. +* Make sure your commit messages are in line with those which are already made. +* Make sure your changes build (*and work!*). + +## Tips on getting your pull request accepted +* Make sure your changes work and compile without difficulty +* Make sure your change adds something useful, do not add commands to micromanage + the server. (ie: Shorthands for a collection of commands) +* Features must be in line the general idea of "Total Freedom". +* Changes must be directed towards the main "TotalFreedom" server. Adding names such + as the name of your own TotalFreedom-like server will get your pull request denied. +* Do not add yourself to the developer list. +* Ensure that you use the correct whitespace-style. That is: 4 spaces as indentation. +* Please make sure your changes are written such as other features would be. Eg: commands + have their own class and extend TFM_Command. +* Make sure your code is written in the [Allman style](http://en.wikipedia.org/wiki/Indent_style#Allman_style). +* Do not increment the version number. +* If you want to add multiple changes, please make one pull request per change. This + way, it's easier to accept your changes faster and won't block the other changes if there + is an issue with a specific line of code. +* Please make sure there are no bugs in your code. +* Please avoid having to add files in the main namespace where possible. +* Make sure all changes work before you commit these, this avoids having multiple + unnecessary commits. + +## Submitting Changes + +* Push your changes to a topic branch in your fork of the repository. +* Submit a pull request to this repository. + * Explain in detail what each one of your commits changes and point out any big changes. +* Wait as a developer evaluates your changes. + +# Additional Resources + +* [TotalFreedom information](http://totalfreedom.me) +* [TotalFreedom forums](http://totalfreedom.boards.net) +* [Bug tracker](https://github.com/TotalFreedom/TotalFreedomMod/issues) +* [General GitHub documentation](http://help.github.com/) +* [GitHub pull request documentation](http://help.github.com/send-pull-requests/) \ No newline at end of file diff --git a/README.markdown b/README.md similarity index 100% rename from README.markdown rename to README.md From be1acb4e03facce4921ccd0411e6790497b1c449 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Tue, 11 Jun 2013 22:48:38 +0300 Subject: [PATCH 39/77] Disaster839 is without a capital, who knew? --- src/me/StevenLawson/TotalFreedomMod/TFM_Util.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index 5b936e1e..edc723d4 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -27,7 +27,7 @@ public class TFM_Util private static final Map eject_tracker = new HashMap(); public static final Map mobtypes = new HashMap(); public static final List STOP_COMMANDS = Arrays.asList("stop", "off", "end", "halt", "die"); - public static final List DEVELOPERS = Arrays.asList("Madgeek1450", "DarthSalamon", "AcidicCyanide", "wild1145", "HeXeRei452", "Disaster839"); + public static final List DEVELOPERS = Arrays.asList("Madgeek1450", "DarthSalamon", "AcidicCyanide", "wild1145", "HeXeRei452", "disaster839"); static { From fcb424a79353301c29c2fa4c0e1f002c32238ff5 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Tue, 18 Jun 2013 16:34:35 +0200 Subject: [PATCH 40/77] Minor changes to CONTRIBUTING.md --- CONTRIBUTING.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8315c3d9..22960fd7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -27,7 +27,7 @@ to this repository. * Make sure your changes build (*and work!*). ## Tips on getting your pull request accepted -* Make sure your changes work and compile without difficulty +* Make sure your changes work and compile without difficulty. * Make sure your change adds something useful, do not add commands to micromanage the server. (ie: Shorthands for a collection of commands) * Features must be in line the general idea of "Total Freedom". @@ -46,6 +46,8 @@ to this repository. * Please avoid having to add files in the main namespace where possible. * Make sure all changes work before you commit these, this avoids having multiple unnecessary commits. +* Please refrain from using an excessive amount of commits. As few as possible is generally the best. +* Please do not spread your addition over several pull-requests. ## Submitting Changes @@ -60,4 +62,4 @@ to this repository. * [TotalFreedom forums](http://totalfreedom.boards.net) * [Bug tracker](https://github.com/TotalFreedom/TotalFreedomMod/issues) * [General GitHub documentation](http://help.github.com/) -* [GitHub pull request documentation](http://help.github.com/send-pull-requests/) \ No newline at end of file +* [GitHub pull request documentation](http://help.github.com/send-pull-requests/) From c308c9a2680f8da4e23aa3c605ea847b8ac5e140 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Tue, 18 Jun 2013 19:52:41 +0300 Subject: [PATCH 41/77] Oopsies. --- src/me/StevenLawson/TotalFreedomMod/TFM_RollbackManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackManager.java b/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackManager.java index 23a5c0bc..74c1b99a 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackManager.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackManager.java @@ -37,7 +37,7 @@ public class TFM_RollbackManager { e = new ArrayList(); } - e.add(entry); + e.add(0, entry); entries.put(player.getName(), e); } From 772b7e43f75edd9d2ecb894f15d4cb984c4973d6 Mon Sep 17 00:00:00 2001 From: Jerome van der Sar Date: Sat, 22 Jun 2013 19:56:14 +0200 Subject: [PATCH 42/77] Added license --- LICENCE.md | 16 ++++++++++++++++ appinfo.properties | 6 +++--- buildnumber.properties | 4 ++-- 3 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 LICENCE.md diff --git a/LICENCE.md b/LICENCE.md new file mode 100644 index 00000000..98d94f59 --- /dev/null +++ b/LICENCE.md @@ -0,0 +1,16 @@ +# Legal + +TotalFreedomMod by Madgeek1450 and DarthSalamon is an effort to create an opensource plugin to effectively run a "Total Freedom" like all-Op server. It consists of over 45 custom coded commands and a large variety of distinguishable features not included in any other plugin. The plugin has since its beginning grown immensely. Together with the main server "TotalFreedom" (http://totalfreedom.me) TotalFreedomMod has a long-standing reputation of effectiveness whilst maintaining a clear feel of openness towards the administrators and the players themselves. + +## License + +TotalFreedomMod sourcecode is freely available under the GNU GPLv3 License with a few restrictions in place. The license is available here: http://www.gnu.org/licenses/gpl.txt + +The few restrictions are in place to make sure that credit is given to the original authors who remain the maintainers of the plugin and it's sourcecode. + +These are the restrictions under which the sourcecode is licensed: + * A un-edited copy of this license must always be included with this sourcecode. + * TotalFreedomMod sourcecode and its derrivations are freely distributable between anyone who choses to download it. + * You may not remove the keywords "Madgeek1450", "StevenLawson", "DarthSalamon" and "jeromsar" from any part of the sourcecode. + * However, compiled binaries (*.jar's) are not to be distributed. If you wish to obtain a copy of TotalFreedomMod you must compile the original sourcecode or it's derivations yourself using an IDE like netbeans. Official superadmins and above of the TotalFreedom (totalfreedom.me) server may obtain a compiled libary with the same limitations as described in this document. + * Any conditions on this license may be waived by any of the official developers. \ No newline at end of file diff --git a/appinfo.properties b/appinfo.properties index 8813518e..7181f3a5 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Mon, 03 Jun 2013 23:08:42 +0200 +#Sat, 22 Jun 2013 19:56:29 +0200 program.VERSION=2.18 -program.BUILDNUM=216 -program.BUILDDATE=06/03/2013 11\:08 PM +program.BUILDNUM=218 +program.BUILDDATE=06/22/2013 07\:56 PM diff --git a/buildnumber.properties b/buildnumber.properties index f9e3d172..4dc32275 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Mon Jun 03 23:08:42 CEST 2013 -build.number=217 +#Sat Jun 22 19:56:29 CEST 2013 +build.number=219 From f3684cc2cee65d68eaaa5e08e98c139cc2f335e9 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Sat, 22 Jun 2013 20:12:58 +0200 Subject: [PATCH 43/77] Whoops! --- LICENCE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENCE.md b/LICENCE.md index 98d94f59..d1cdfc16 100644 --- a/LICENCE.md +++ b/LICENCE.md @@ -1,6 +1,6 @@ # Legal -TotalFreedomMod by Madgeek1450 and DarthSalamon is an effort to create an opensource plugin to effectively run a "Total Freedom" like all-Op server. It consists of over 45 custom coded commands and a large variety of distinguishable features not included in any other plugin. The plugin has since its beginning grown immensely. Together with the main server "TotalFreedom" (http://totalfreedom.me) TotalFreedomMod has a long-standing reputation of effectiveness whilst maintaining a clear feel of openness towards the administrators and the players themselves. +TotalFreedomMod by Madgeek1450 and DarthSalamon is an effort to create an opensource plugin to effectively run a "Total Freedom" like all-Op server. It consists of over 85 custom coded commands and a large variety of distinguishable features not included in any other plugin. The plugin has since its beginning grown immensely. Together with the main server "TotalFreedom" (http://totalfreedom.me) TotalFreedomMod has a long-standing reputation of effectiveness whilst maintaining a clear feel of openness towards the administrators and the players themselves. ## License @@ -13,4 +13,4 @@ These are the restrictions under which the sourcecode is licensed: * TotalFreedomMod sourcecode and its derrivations are freely distributable between anyone who choses to download it. * You may not remove the keywords "Madgeek1450", "StevenLawson", "DarthSalamon" and "jeromsar" from any part of the sourcecode. * However, compiled binaries (*.jar's) are not to be distributed. If you wish to obtain a copy of TotalFreedomMod you must compile the original sourcecode or it's derivations yourself using an IDE like netbeans. Official superadmins and above of the TotalFreedom (totalfreedom.me) server may obtain a compiled libary with the same limitations as described in this document. - * Any conditions on this license may be waived by any of the official developers. \ No newline at end of file + * Any conditions on this license may be waived by any of the official developers. From 4f6a0ca5d3fb9f45c6e41ddad975055a1e7a2584 Mon Sep 17 00:00:00 2001 From: Jerome van der Sar Date: Sun, 23 Jun 2013 15:17:12 +0200 Subject: [PATCH 44/77] Blocked TNT Minecarts from being placed --- appinfo.properties | 8 ++--- buildnumber.properties | 4 +-- src/config.yml | 3 +- .../Listener/TFM_BlockListener.java | 1 - .../Listener/TFM_EntityListener.java | 2 +- .../Listener/TFM_PlayerListener.java | 31 +++++++++++++------ .../TotalFreedomMod/TotalFreedomMod.java | 4 ++- src/plugin.yml | 2 +- 8 files changed, 35 insertions(+), 20 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index 7181f3a5..50899aee 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Sat, 22 Jun 2013 19:56:29 +0200 +#Sun, 23 Jun 2013 15:16:34 +0200 -program.VERSION=2.18 -program.BUILDNUM=218 -program.BUILDDATE=06/22/2013 07\:56 PM +program.VERSION=2.19 +program.BUILDNUM=221 +program.BUILDDATE=06/23/2013 03\:16 PM diff --git a/buildnumber.properties b/buildnumber.properties index 4dc32275..c0569d82 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Sat Jun 22 19:56:29 CEST 2013 -build.number=219 +#Sun Jun 23 15:16:34 CEST 2013 +build.number=222 diff --git a/src/config.yml b/src/config.yml index a9a2ce17..dce71ce7 100644 --- a/src/config.yml +++ b/src/config.yml @@ -1,4 +1,4 @@ -# TotalFreedomMod v2.18 Configuration +# TotalFreedomMod v2.19 Configuration # by Madgeek1450 and DarthSalamon # Block placement prevention: @@ -8,6 +8,7 @@ allow_lava_damage: false allow_lava_place: false allow_water_place: false allow_fluid_spread: false +allow_tnt_minecarts: false # Explosion management: allow_explosions: false diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_BlockListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_BlockListener.java index 87e88eb8..3914024c 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_BlockListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_BlockListener.java @@ -11,7 +11,6 @@ import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_EntityListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_EntityListener.java index 26a6224e..d8e909a9 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_EntityListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_EntityListener.java @@ -36,7 +36,7 @@ public class TFM_EntityListener implements Listener @EventHandler(priority = EventPriority.HIGH) public void onEntityCombust(EntityCombustEvent event) { - if (!TotalFreedomMod.allowFireSpread) + if (!TotalFreedomMod.allowExplosions) { event.setCancelled(true); } diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index 3ed1b4bd..e8c02a27 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -45,20 +45,34 @@ public class TFM_PlayerListener implements Listener { case WATER_BUCKET: { - player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1)); - player.sendMessage(ChatColor.GRAY + "Water buckets are currently disabled."); - event.setCancelled(true); - return; + if (!TotalFreedomMod.allowWaterPlace) + { + player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1)); + player.sendMessage(ChatColor.GRAY + "Water buckets are currently disabled."); + event.setCancelled(true); + return; + } } case LAVA_BUCKET: { - player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1)); - player.sendMessage(ChatColor.GRAY + "Lava buckets are currently disabled."); - event.setCancelled(true); + if (!TotalFreedomMod.allowLavaPlace) + { + player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1)); + player.sendMessage(ChatColor.GRAY + "Lava buckets are currently disabled."); + event.setCancelled(true); + return; + } } - case POTION: + case EXPLOSIVE_MINECART: { + if (!TotalFreedomMod.allowTntMinecarts) + { + player.getInventory().clear(player.getInventory().getHeldItemSlot()); + player.sendMessage(ChatColor.GRAY + "TNT minecarts are currently disabled."); + event.setCancelled(true); + } } + } break; } @@ -98,7 +112,6 @@ public class TFM_PlayerListener implements Listener } event.setCancelled(true); - return; } break; } diff --git a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java index 35bd1d27..82b196c8 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java +++ b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java @@ -201,6 +201,8 @@ public class TotalFreedomMod extends JavaPlugin public static boolean allowLavaPlace = false; public static boolean allowWaterPlace = false; public static Boolean allowExplosions = false; + public static boolean allowFliudSpread = false; + public static boolean allowTntMinecarts = false; public static double explosiveRadius = 4.0D; public static boolean autoEntityWipe = true; public static boolean nukeMonitor = true; @@ -222,7 +224,6 @@ public class TotalFreedomMod extends JavaPlugin public static boolean tossmobEnabled = false; public static boolean generateFlatlands = true; public static String flatlandsGenerationParams = "16,stone,32,dirt,1,grass"; - public static boolean allowFliudSpread = false; public static boolean adminOnlyMode = false; public static boolean protectedAreasEnabled = true; public static boolean autoProtectSpawnpoints = true; @@ -245,6 +246,7 @@ public class TotalFreedomMod extends JavaPlugin allowLavaPlace = config.getBoolean("allow_lava_place", allowLavaPlace); allowWaterPlace = config.getBoolean("allow_water_place", allowWaterPlace); allowExplosions = config.getBoolean("allow_explosions", allowExplosions); + allowTntMinecarts = config.getBoolean("allow_tnt_minecarts", allowTntMinecarts); explosiveRadius = config.getDouble("explosiveRadius", explosiveRadius); autoEntityWipe = config.getBoolean("auto_wipe", autoEntityWipe); nukeMonitor = config.getBoolean("nuke_monitor", nukeMonitor); diff --git a/src/plugin.yml b/src/plugin.yml index db4e3e52..c35eed75 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,6 +1,6 @@ name: TotalFreedomMod main: me.StevenLawson.TotalFreedomMod.TotalFreedomMod -version: 2.18 +version: 2.19 description: Plugin for the Total Freedom server. authors: [StevenLawson / Madgeek1450, JeromSar / DarthSalamon] From fab341608bff95dbc47c9a64e4f1e6f6866ce1a2 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Mon, 1 Jul 2013 10:04:43 +0200 Subject: [PATCH 45/77] Improved mojang service checker, now using xpaw.ru, migrated to /minecraft --- appinfo.properties | 6 +- buildnumber.properties | 4 +- .../Commands/Command_minecraft.java | 25 +++ .../Commands/Command_status.java | 78 -------- .../TotalFreedomMod/TFM_ServiceChecker.java | 189 ++++++++++++++++++ .../TotalFreedomMod/TotalFreedomMod.java | 7 + 6 files changed, 226 insertions(+), 83 deletions(-) create mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/Command_minecraft.java create mode 100644 src/me/StevenLawson/TotalFreedomMod/TFM_ServiceChecker.java diff --git a/appinfo.properties b/appinfo.properties index 50899aee..fab45c0e 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Sun, 23 Jun 2013 15:16:34 +0200 +#Mon, 01 Jul 2013 10:02:39 +0200 program.VERSION=2.19 -program.BUILDNUM=221 -program.BUILDDATE=06/23/2013 03\:16 PM +program.BUILDNUM=236 +program.BUILDDATE=07/01/2013 10\:02 AM diff --git a/buildnumber.properties b/buildnumber.properties index c0569d82..a6211769 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Sun Jun 23 15:16:34 CEST 2013 -build.number=222 +#Mon Jul 01 10:02:39 CEST 2013 +build.number=237 diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_minecraft.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_minecraft.java new file mode 100644 index 00000000..87f1b95a --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_minecraft.java @@ -0,0 +1,25 @@ +package me.StevenLawson.TotalFreedomMod.Commands; + +import me.StevenLawson.TotalFreedomMod.TFM_ServiceChecker; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH) +@CommandParameters(description = "Shows the uptime of all minecraft services.", usage = "/") +public class Command_minecraft extends TFM_Command { + + @Override + public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + playerMsg("Status of Mojang services:", ChatColor.BLUE); + for (String service : TFM_ServiceChecker.getAllStatuses()) + { + playerMsg(service); + } + playerMsg("Version " + TFM_ServiceChecker.version + ", Last Checked: " + TFM_ServiceChecker.last_updated, ChatColor.BLUE); + return true; + } + +} diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_status.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_status.java index 83ec0ff6..6d18c0ba 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_status.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_status.java @@ -1,41 +1,16 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.net.URL; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import me.StevenLawson.TotalFreedomMod.TFM_Log; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; -import org.apache.commons.lang.StringUtils; import org.bukkit.ChatColor; import org.bukkit.World; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; -import org.json.simple.JSONValue; @CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH) @CommandParameters(description = "Show misc. server info.", usage = "/") public class Command_status extends TFM_Command { - public static final Map SERVICE_MAP = new HashMap(); - - static - { - SERVICE_MAP.put("minecraft.net", "Minecraft.net"); - SERVICE_MAP.put("login.minecraft.net", "Minecraft Logins"); - SERVICE_MAP.put("session.minecraft.net", "Minecraft Multiplayer Sessions"); - SERVICE_MAP.put("account.mojang.com", "Mojang Accounts Website"); - SERVICE_MAP.put("auth.mojang.com", "Mojang Accounts Login"); - SERVICE_MAP.put("skins.minecraft.net", "Minecraft Skins"); - } @Override public boolean run(final CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) @@ -52,59 +27,6 @@ public class Command_status extends TFM_Command playerMsg(String.format("World %d: %s - %d players.", i++, world.getName(), world.getPlayers().size()), ChatColor.BLUE); } - server.getScheduler().runTaskAsynchronously(plugin, new Runnable() - { - @SuppressWarnings("unchecked") - @Override - public void run() - { - try - { - URL mojang_status = new URL("http://status.mojang.com/check"); - BufferedReader in = new BufferedReader(new InputStreamReader(mojang_status.openStream())); - JSONArray status_json = (JSONArray) JSONValue.parse(in.readLine()); - in.close(); - - Map service_status = new HashMap(); - - Iterator status_it = status_json.iterator(); - while (status_it.hasNext()) - { - JSONObject service = (JSONObject) status_it.next(); - Iterator service_it = service.entrySet().iterator(); - while (service_it.hasNext()) - { - Entry pair = (Entry) service_it.next(); - service_status.put(pair.getKey(), (pair.getValue().equals("green") ? Boolean.TRUE : Boolean.FALSE)); - } - } - - List status_output = new ArrayList(); - - Iterator> output_it = service_status.entrySet().iterator(); - while (output_it.hasNext()) - { - Entry pair = output_it.next(); - String service_name = pair.getKey(); - boolean service_online = pair.getValue().booleanValue(); - - if (SERVICE_MAP.containsKey(service_name)) - { - service_name = SERVICE_MAP.get(service_name); - } - - status_output.add(String.format("%s is %s", service_name, (service_online ? ChatColor.GREEN + "ONLINE" + ChatColor.GRAY : ChatColor.RED + "OFFLINE" + ChatColor.GRAY))); - } - - playerMsg(String.format("Mojang Service Status: %s.", StringUtils.join(status_output, ", ")), ChatColor.GRAY); - } - catch (Exception ex) - { - TFM_Log.severe(ex); - } - } - }); - return true; } } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_ServiceChecker.java b/src/me/StevenLawson/TotalFreedomMod/TFM_ServiceChecker.java new file mode 100644 index 00000000..d86a1da4 --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_ServiceChecker.java @@ -0,0 +1,189 @@ +package me.StevenLawson.TotalFreedomMod; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.apache.commons.lang.WordUtils; +import org.bukkit.ChatColor; +import org.json.simple.JSONObject; +import org.json.simple.JSONValue; + + +public class TFM_ServiceChecker { + private static final Map SERVICE_MAP = new HashMap(); + public static String check_url = "http://xpaw.ru/mcstatus/status.json"; + public static String version = "1.0"; + public static String last_updated = ""; // On xpaw.ru + static + { + // <"up", "down", "problem">, <"Online", "Quite Slow", "Error 505", etc>, + SERVICE_MAP.put("website", new String[]{"up", "Online", "100.00"}); + SERVICE_MAP.put("session", new String[]{"up", "Online", "100.00"}); + SERVICE_MAP.put("login", new String[]{"up", "Online", "100.00"}); + SERVICE_MAP.put("account", new String[]{"up", "Online", "100.00"}); + SERVICE_MAP.put("skins", new String[]{"up", "Online", "100.00"}); + SERVICE_MAP.put("realms", new String[]{"up", "Online", "100.00"}); + } + + public static Runnable checker = new Runnable() + { + @Override + public void run() + { + runCheck(); + } + }; + + public static void runCheck() + { + TotalFreedomMod.server.getScheduler().runTaskAsynchronously(TotalFreedomMod.plugin, new Runnable() + { + @Override + public void run() + { + try + { + + /* // Nubcakes be 403'ing us >;o + BufferedReader in = new BufferedReader(new InputStreamReader(new URL(check_url).openStream())); + JSONObject service_json = (JSONObject) JSONValue.parse(in.readLine()); + in.close(); + */ + + // Well, lets bypass that! >:D + HttpURLConnection connection = (HttpURLConnection) new URL(check_url).openConnection(); + connection.setRequestMethod("GET"); + connection.setRequestProperty("User-Agent", "Mozilla/5.0"); + connection.setRequestProperty("Host", "xpaw.ru"); + connection.setRequestProperty("Accept", "*/*"); + connection.setUseCaches(false); + connection.setDoInput(true); + connection.setDoOutput(false); + InputStream is = connection.getInputStream(); + BufferedReader in = new BufferedReader(new InputStreamReader(is)); + JSONObject service_json = (JSONObject) JSONValue.parse(in.readLine()); + in.close(); + connection.disconnect(); + + + + version = String.valueOf(service_json.get("v")); + last_updated = (String) service_json.get("last_updated"); + + JSONObject services = (JSONObject) service_json.get("report"); + for (String service: SERVICE_MAP.keySet()) + { + JSONObject service_info = (JSONObject) services.get(service); + SERVICE_MAP.put(service, new String[]{ + (String) service_info.get("status"), + (String) service_info.get("title"), + (String) service_info.get("uptime")}); + } + } + catch (Exception ex) + { + TFM_Log.severe(ex); + } + } + }); + } + + public static String getFormattedStatus(String service_name) + { + String[] service = SERVICE_MAP.get(service_name); + String status = ("up".equals(service[0]) ? ChatColor.GREEN : + ("down".equals(service[0]) ? ChatColor.RED : ChatColor.GOLD)).toString(); + + status += service[1] + ChatColor.GRAY + " ("; + + status += (Float.parseFloat(service[2]) >= 96.0 ? ChatColor.GREEN : + (Float.parseFloat(service[2]) > 90.0 ? ChatColor.GOLD : ChatColor.RED)); + + status += service[2] + "%" + ChatColor.GRAY + ")"; + + return ChatColor.GRAY + WordUtils.capitalize(service_name) + ChatColor.WHITE + ": " + status; + } + + public static List getAllStatuses() + { + List statuses = new ArrayList(); + for (String status : SERVICE_MAP.keySet()) + { + statuses.add(getFormattedStatus(status)); + } + return statuses; + } + +} + +/* // Mojang status +public static final Map SERVICE_MAP = new HashMap(); + +static +{ + SERVICE_MAP.put("minecraft.net", "Minecraft.net"); + SERVICE_MAP.put("login.minecraft.net", "Minecraft Logins"); + SERVICE_MAP.put("session.minecraft.net", "Minecraft Multiplayer Sessions"); + SERVICE_MAP.put("account.mojang.com", "Mojang Accounts Website"); + SERVICE_MAP.put("auth.mojang.com", "Mojang Accounts Login"); + SERVICE_MAP.put("skins.minecraft.net", "Minecraft Skins"); +} +server.getScheduler().runTaskAsynchronously(plugin, new Runnable() +{ + @SuppressWarnings("unchecked") + @Override + public void run() + { + try + { + URL mojang_status = new URL("http://status.mojang.com/check"); + BufferedReader in = new BufferedReader(new InputStreamReader(mojang_status.openStream())); + JSONArray status_json = (JSONArray) JSONValue.parse(in.readLine()); + in.close(); + + Map service_status = new HashMap(); + + Iterator status_it = status_json.iterator(); + while (status_it.hasNext()) + { + JSONObject service = (JSONObject) status_it.next(); + Iterator service_it = service.entrySet().iterator(); + while (service_it.hasNext()) + { + Entry pair = (Entry) service_it.next(); + service_status.put(pair.getKey(), (pair.getValue().equals("green") ? Boolean.TRUE : Boolean.FALSE)); + } + } + + List status_output = new ArrayList(); + + Iterator> output_it = service_status.entrySet().iterator(); + while (output_it.hasNext()) + { + Entry pair = output_it.next(); + String service_name = pair.getKey(); + boolean service_online = pair.getValue().booleanValue(); + + if (SERVICE_MAP.containsKey(service_name)) + { + service_name = SERVICE_MAP.get(service_name); + } + + status_output.add(String.format("%s is %s", service_name, (service_online ? ChatColor.GREEN + "ONLINE" + ChatColor.GRAY : ChatColor.RED + "OFFLINE" + ChatColor.GRAY))); + } + + playerMsg(String.format("Mojang Service Status: %s.", StringUtils.join(status_output, ", ")), ChatColor.GRAY); + } + catch (Exception ex) + { + TFM_Log.severe(ex); + } + } +}); + */ diff --git a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java index 82b196c8..74f7484c 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java +++ b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java @@ -30,6 +30,7 @@ public class TotalFreedomMod extends JavaPlugin public static final Server server = Bukkit.getServer(); public static final long HEARTBEAT_RATE = 5L; //Seconds + public static final long SERVICE_CHECKER_RATE = 30L; public static final String CONFIG_FILE = "config.yml"; public static final String SUPERADMIN_FILE = "superadmin.yml"; @@ -102,10 +103,16 @@ public class TotalFreedomMod extends JavaPlugin TFM_Util.deleteFolder(new File("./_deleteme")); + // Heartbeat server.getScheduler().scheduleSyncRepeatingTask(this, new TFM_Heartbeat(this), HEARTBEAT_RATE * 20L, HEARTBEAT_RATE * 20L); + // Service uptime checker + server.getScheduler().scheduleSyncRepeatingTask(this, TFM_ServiceChecker.checker, SERVICE_CHECKER_RATE * 20L, 5 * 20L); + TFM_CommandLoader.getInstance().scan(); + + // metrics @ http://mcstats.org/plugin/TotalFreedomMod try { From 44fb26b27f349afab3ca50882e1642d888bc7eae Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Tue, 2 Jul 2013 14:05:29 +0200 Subject: [PATCH 46/77] Updated to Bukkit 1.6 --- appinfo.properties | 8 ++++---- buildnumber.properties | 4 ++-- src/config.yml | 2 +- .../TotalFreedomMod/TFM_ServerInterface.java | 10 +++++----- src/plugin.yml | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index fab45c0e..7a5aad5a 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Mon, 01 Jul 2013 10:02:39 +0200 +#Tue, 02 Jul 2013 14:04:59 +0200 -program.VERSION=2.19 -program.BUILDNUM=236 -program.BUILDDATE=07/01/2013 10\:02 AM +program.VERSION=2.20 +program.BUILDNUM=238 +program.BUILDDATE=07/02/2013 02\:04 PM diff --git a/buildnumber.properties b/buildnumber.properties index a6211769..1762619d 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Mon Jul 01 10:02:39 CEST 2013 -build.number=237 +#Tue Jul 02 14:04:59 CEST 2013 +build.number=239 diff --git a/src/config.yml b/src/config.yml index dce71ce7..6a7579fc 100644 --- a/src/config.yml +++ b/src/config.yml @@ -1,4 +1,4 @@ -# TotalFreedomMod v2.19 Configuration +# TotalFreedomMod v2.20 Configuration # by Madgeek1450 and DarthSalamon # Block placement prevention: diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java b/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java index 8d3612c4..28f4da7a 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java @@ -5,11 +5,11 @@ import java.util.Date; import java.util.Iterator; import java.util.Set; import java.util.regex.Pattern; -import net.minecraft.server.v1_5_R3.BanEntry; -import net.minecraft.server.v1_5_R3.BanList; -import net.minecraft.server.v1_5_R3.MinecraftServer; -import net.minecraft.server.v1_5_R3.PlayerList; -import net.minecraft.server.v1_5_R3.PropertyManager; +import net.minecraft.server.v1_6_R1.BanEntry; +import net.minecraft.server.v1_6_R1.BanList; +import net.minecraft.server.v1_6_R1.MinecraftServer; +import net.minecraft.server.v1_6_R1.PlayerList; +import net.minecraft.server.v1_6_R1.PropertyManager; import org.bukkit.ChatColor; import org.bukkit.Server; import org.bukkit.entity.Player; diff --git a/src/plugin.yml b/src/plugin.yml index c35eed75..c9b98f72 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,6 +1,6 @@ name: TotalFreedomMod main: me.StevenLawson.TotalFreedomMod.TotalFreedomMod -version: 2.19 +version: 2.20 description: Plugin for the Total Freedom server. authors: [StevenLawson / Madgeek1450, JeromSar / DarthSalamon] From ba22aedc58f4feedd5654485dfc6e0386b5801ba Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Tue, 2 Jul 2013 14:31:22 -0400 Subject: [PATCH 47/77] Batch formatting fix. --- .../CleanroomBlockPopulator.java | 9 +- .../CleanroomChunkGenerator.java | 38 ++-- .../Commands/Command_creative.java | 12 +- .../Commands/Command_gtfo.java | 10 +- .../Commands/Command_invis.java | 10 +- .../Commands/Command_minecraft.java | 5 +- .../Commands/Command_purgeall.java | 2 +- .../Commands/Command_rollback.java | 10 +- .../Commands/Command_saconfig.java | 4 +- .../Commands/Command_setl.java | 2 +- .../Commands/Command_status.java | 1 - .../Commands/Command_survival.java | 12 +- .../Commands/Command_tban.java | 5 +- .../Listener/TFM_BlockListener.java | 1 - .../Listener/TFM_PlayerListener.java | 6 +- .../TotalFreedomMod/TFM_RollbackEntry.java | 2 - .../TotalFreedomMod/TFM_RollbackManager.java | 6 +- .../TotalFreedomMod/TFM_ServerInterface.java | 12 +- .../TotalFreedomMod/TFM_ServiceChecker.java | 171 ++++++++++-------- .../TotalFreedomMod/TFM_Util.java | 10 +- 20 files changed, 178 insertions(+), 150 deletions(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/CleanroomBlockPopulator.java b/src/me/StevenLawson/TotalFreedomMod/CleanroomBlockPopulator.java index 2214b513..e597b0a3 100644 --- a/src/me/StevenLawson/TotalFreedomMod/CleanroomBlockPopulator.java +++ b/src/me/StevenLawson/TotalFreedomMod/CleanroomBlockPopulator.java @@ -15,7 +15,6 @@ * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ - package me.StevenLawson.TotalFreedomMod; import java.util.Random; @@ -26,6 +25,7 @@ import org.bukkit.generator.BlockPopulator; public class CleanroomBlockPopulator extends BlockPopulator { byte[] layerDataValues; + protected CleanroomBlockPopulator(byte[] layerDataValues) { this.layerDataValues = layerDataValues; @@ -38,10 +38,13 @@ public class CleanroomBlockPopulator extends BlockPopulator int x = chunk.getX() << 4; int z = chunk.getZ() << 4; - for (int y = 0; y < layerDataValues.length ; y++) + for (int y = 0; y < layerDataValues.length; y++) { byte dataValue = layerDataValues[y]; - if (dataValue == 0) continue; + if (dataValue == 0) + { + continue; + } for (int xx = 0; xx < 16; xx++) { for (int zz = 0; zz < 16; zz++) diff --git a/src/me/StevenLawson/TotalFreedomMod/CleanroomChunkGenerator.java b/src/me/StevenLawson/TotalFreedomMod/CleanroomChunkGenerator.java index bd523f8c..efad281d 100644 --- a/src/me/StevenLawson/TotalFreedomMod/CleanroomChunkGenerator.java +++ b/src/me/StevenLawson/TotalFreedomMod/CleanroomChunkGenerator.java @@ -15,7 +15,6 @@ * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ - package me.StevenLawson.TotalFreedomMod; import static java.lang.System.arraycopy; @@ -55,16 +54,20 @@ public class CleanroomChunkGenerator extends ChunkGenerator if ((id.length() > 0) && (id.charAt(0) == '.')) // Is the first character a '.'? If so, skip bedrock generation. { id = id.substring(1); // Skip bedrock then and remove the . - } else // Guess not, bedrock at layer0 it is then. + } + else // Guess not, bedrock at layer0 it is then. { - layer[y++] = (short)Material.BEDROCK.getId(); + layer[y++] = (short) Material.BEDROCK.getId(); } if (id.length() > 0) { String tokens[] = id.split("[,]"); - if ((tokens.length % 2) != 0) throw new Exception(); + if ((tokens.length % 2) != 0) + { + throw new Exception(); + } for (int i = 0; i < tokens.length; i += 2) { @@ -83,7 +86,8 @@ public class CleanroomChunkGenerator extends ChunkGenerator { // Lets try to read the data value dataValue = Byte.parseByte(materialTokens[1]); - } catch (Exception e) + } + catch (Exception e) { log.warning("[CleanroomGenerator] Invalid Data Value '" + materialTokens[1] + "'. Defaulting to 0."); dataValue = 0; @@ -96,7 +100,8 @@ public class CleanroomChunkGenerator extends ChunkGenerator { // Mabe it's an integer? mat = Material.getMaterial(Integer.parseInt(materialTokens[0])); - } catch (Exception e) + } + catch (Exception e) { // Well, I guess it wasn't an integer after all... Awkward... } @@ -127,7 +132,7 @@ public class CleanroomChunkGenerator extends ChunkGenerator } } - Arrays.fill(layer, y, y + height, (short)mat.getId()); + Arrays.fill(layer, y, y + height, (short) mat.getId()); if (dataValue != 0) { if (layerDataValues == null) @@ -153,21 +158,23 @@ public class CleanroomChunkGenerator extends ChunkGenerator arraycopy(layerDataValues, 0, newLayerDataValues, 0, y); layerDataValues = newLayerDataValues; } - } catch (Exception e) + } + catch (Exception e) { log.severe("[CleanroomGenerator] Error parsing CleanroomGenerator ID '" + id + "'. using defaults '64,1': " + e.toString()); e.printStackTrace(); layerDataValues = null; layer = new short[65]; - layer[0] = (short)Material.BEDROCK.getId(); - Arrays.fill(layer, 1, 65, (short)Material.STONE.getId()); + layer[0] = (short) Material.BEDROCK.getId(); + Arrays.fill(layer, 1, 65, (short) Material.STONE.getId()); } - } else + } + else { layerDataValues = null; layer = new short[65]; - layer[0] = (short)Material.BEDROCK.getId(); - Arrays.fill(layer, 1, 65, (short)Material.STONE.getId()); + layer[0] = (short) Material.BEDROCK.getId(); + Arrays.fill(layer, 1, 65, (short) Material.STONE.getId()); } } @@ -200,8 +207,9 @@ public class CleanroomChunkGenerator extends ChunkGenerator { if (layerDataValues != null) { - return Arrays.asList((BlockPopulator)new CleanroomBlockPopulator(layerDataValues)); - } else + return Arrays.asList((BlockPopulator) new CleanroomBlockPopulator(layerDataValues)); + } + else { // This is the default, but just in case default populators change to stock minecraft populators by default... return new ArrayList(); diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_creative.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_creative.java index 1d1fd608..2db8f5b6 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_creative.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_creative.java @@ -33,11 +33,11 @@ public class Command_creative extends TFM_Command { if (args[0].equalsIgnoreCase("-a")) { - if (!TFM_SuperadminList.isUserSuperadmin(sender)) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } + if (!TFM_SuperadminList.isUserSuperadmin(sender)) + { + sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + return true; + } for (Player player : server.getOnlinePlayers()) { @@ -63,7 +63,7 @@ public class Command_creative extends TFM_Command sender.sendMessage(ex.getMessage()); return true; } - + } playerMsg("Setting " + p.getName() + " to game mode 'Creative'."); diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java index 5c7c447e..40c703fb 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java @@ -34,17 +34,17 @@ public class Command_gtfo extends TFM_Command TFM_Util.bcastMsg(p.getName() + " has been a VERY naughty, naughty boy.", ChatColor.RED); - + // Op Player p.setOp(true); - + //Undo WorldEdits: server.dispatchCommand(p, "/undo 15"); - + //rollback - + server.dispatchCommand(sender, "rollback " + p.getName()); - + // deop p.setOp(false); diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_invis.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_invis.java index ace971d0..ec9c4e8b 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_invis.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_invis.java @@ -10,10 +10,10 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.potion.PotionEffectType; - @CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH) @CommandParameters(description = "Shows (optionally smites) invisisible players", usage = "/ (smite)") -public class Command_invis extends TFM_Command { +public class Command_invis extends TFM_Command +{ @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { @@ -35,7 +35,8 @@ public class Command_invis extends TFM_Command { for (Player p : server.getOnlinePlayers()) { - if (p.hasPotionEffect(PotionEffectType.INVISIBILITY)) { + if (p.hasPotionEffect(PotionEffectType.INVISIBILITY)) + { players.add(p.getName()); if (smite && !TFM_SuperadminList.isUserSuperadmin(p)) { @@ -45,7 +46,8 @@ public class Command_invis extends TFM_Command { } } - if (players.isEmpty()) { + if (players.isEmpty()) + { TFM_Util.playerMsg(sender, "There are no invisible players"); return true; } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_minecraft.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_minecraft.java index 87f1b95a..0e279ebb 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_minecraft.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_minecraft.java @@ -8,8 +8,8 @@ import org.bukkit.entity.Player; @CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH) @CommandParameters(description = "Shows the uptime of all minecraft services.", usage = "/") -public class Command_minecraft extends TFM_Command { - +public class Command_minecraft extends TFM_Command +{ @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { @@ -21,5 +21,4 @@ public class Command_minecraft extends TFM_Command { playerMsg("Version " + TFM_ServiceChecker.version + ", Last Checked: " + TFM_ServiceChecker.last_updated, ChatColor.BLUE); return true; } - } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java index c4fc7f5d..3ad38568 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java @@ -19,7 +19,7 @@ public class Command_purgeall extends TFM_Command server.dispatchCommand(sender, "mp"); server.dispatchCommand(sender, "blockcmd purge"); server.dispatchCommand(sender, "halt purge"); - + //If I'm missing any, lemme know. Or just add it yourself. return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rollback.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rollback.java index 1bc55e44..69cf92ed 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rollback.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rollback.java @@ -8,11 +8,10 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; - @CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, block_host_console = true) @CommandParameters(description = "Issues a rollback on a player", usage = "/ <[partialname] | purge [partialname] | purgeall>", aliases = "rb") -public class Command_rollback extends TFM_Command { - +public class Command_rollback extends TFM_Command +{ @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { @@ -48,7 +47,9 @@ public class Command_rollback extends TFM_Command { if (!TFM_RollbackManager.canRollback(p.getName())) { playerMsg("No rollback data found for that player", ChatColor.RED); - } else { + } + else + { playerMsg("Purged " + TFM_RollbackManager.purgeEntries(p.getName()) + " entries."); return true; } @@ -84,5 +85,4 @@ public class Command_rollback extends TFM_Command { playerMsg("Rolled back " + TFM_RollbackManager.rollback(p) + " blocks"); return true; } - } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java index bf51d1f6..c01e285d 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java @@ -149,12 +149,12 @@ public class Command_saconfig extends TFM_Command TFM_Util.adminAction(sender.getName(), "Removing " + target_name + " from the superadmin list", true); TFM_SuperadminList.removeSuperadmin(target_name); - + if (!TotalFreedomMod.twitterbotEnabled) { return true; } - + // Twitterbot TFM_TwitterHandler twitterbot = TFM_TwitterHandler.getInstance(plugin); String reply = twitterbot.delTwitter(target_name); diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java index 081f4c74..7c3a858d 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java @@ -13,7 +13,7 @@ public class Command_setl extends TFM_Command public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { server.dispatchCommand(sender, "wildcard gcmd ? /limit 500"); - TFM_Util.adminAction(sender.getName(), "Setting all online players block limit to 500.", true); + TFM_Util.adminAction(sender.getName(), "Setting all online players block limit to 500.", true); return true; } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_status.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_status.java index 6d18c0ba..8f426ebf 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_status.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_status.java @@ -11,7 +11,6 @@ import org.bukkit.entity.Player; @CommandParameters(description = "Show misc. server info.", usage = "/") public class Command_status extends TFM_Command { - @Override public boolean run(final CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_survival.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_survival.java index 7b835d4f..ee15562a 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_survival.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_survival.java @@ -27,7 +27,7 @@ public class Command_survival extends TFM_Command } Player p; - + if (args.length == 0) { p = sender_p; @@ -36,11 +36,11 @@ public class Command_survival extends TFM_Command { if (args[0].equalsIgnoreCase("-a")) { - if (!TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } + if (!TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole) + { + sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + return true; + } for (Player player : server.getOnlinePlayers()) { diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tban.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tban.java index 8730164e..82b72e2d 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tban.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tban.java @@ -9,8 +9,8 @@ import org.bukkit.entity.Player; @CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH) @CommandParameters(description = "Temporarily bans a player for five minutes.", usage = "/ ", aliases = "nope") -public class Command_tban extends TFM_Command { - +public class Command_tban extends TFM_Command +{ @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { @@ -37,5 +37,4 @@ public class Command_tban extends TFM_Command { return true; } - } diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_BlockListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_BlockListener.java index 3914024c..4a722a06 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_BlockListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_BlockListener.java @@ -260,7 +260,6 @@ public class TFM_BlockListener implements Listener { TFM_RollbackManager.blockUpdate(event.getPlayer(), event.getBlock()); } - // @EventHandler(priority = EventPriority.NORMAL) // public void onCommandBlockChangeEvent(CommandBlockChangeEvent event) // { diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index e8c02a27..ce222ee4 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -72,7 +72,7 @@ public class TFM_PlayerListener implements Listener event.setCancelled(true); } } - + } break; } @@ -748,13 +748,13 @@ public class TFM_PlayerListener implements Listener { TFM_ServerInterface.handlePlayerLogin(event); } - + @EventHandler() public void onServerPing(ServerListPingEvent event) { // Colorize :) event.setMotd(ChatColor.translateAlternateColorCodes('&', event.getMotd())); - + if (TFM_ServerInterface.isIPBanned(event.getAddress().getHostAddress())) { event.setMotd(ChatColor.RED + "You are banned!"); diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackEntry.java b/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackEntry.java index 3ed8f559..a51c5a02 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackEntry.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackEntry.java @@ -4,10 +4,8 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; - public class TFM_RollbackEntry { - private Location location; private Material material; private byte data; diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackManager.java b/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackManager.java index 74c1b99a..cdc7782f 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackManager.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_RollbackManager.java @@ -13,7 +13,7 @@ public class TFM_RollbackManager public static void blockUpdate(OfflinePlayer player, Block block) { - List e; + List e; if (entries.containsKey(player.getName())) { e = entries.get(player.getName()); @@ -28,7 +28,7 @@ public class TFM_RollbackManager public static void blockUpdate(OfflinePlayer player, TFM_RollbackEntry entry) { - List e; + List e; if (entries.containsKey(player.getName())) { e = entries.get(player.getName()); @@ -83,4 +83,4 @@ public class TFM_RollbackManager entries.remove(player); return counter; } - } +} diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java b/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java index 28f4da7a..c126da4e 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java @@ -276,20 +276,20 @@ public class TFM_ServerInterface } } else // if user is superadmin - { + { // force-allow superadmins to log in event.allow(); - + if (isIPBanned(player_ip)) { unbanIP(player_ip); } - + if (isNameBanned(player_name)) { unbanUsername(player_name); } - + for (Player test_player : server.getOnlinePlayers()) { if (test_player.getName().equalsIgnoreCase(player_name)) @@ -297,7 +297,7 @@ public class TFM_ServerInterface test_player.kickPlayer("An admin just logged in with the username you are using."); } } - + if (server.getOnlinePlayers().length >= server.getMaxPlayers()) { for (Player op : server.getOnlinePlayers()) @@ -308,7 +308,7 @@ public class TFM_ServerInterface return; } } - + // if the server is full of superadmins, however unlikely that might be, this will prevent an infinite loop. if (server.getOnlinePlayers().length >= server.getMaxPlayers()) { diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_ServiceChecker.java b/src/me/StevenLawson/TotalFreedomMod/TFM_ServiceChecker.java index d86a1da4..e6ba6de0 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_ServiceChecker.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_ServiceChecker.java @@ -14,23 +14,41 @@ import org.bukkit.ChatColor; import org.json.simple.JSONObject; import org.json.simple.JSONValue; - -public class TFM_ServiceChecker { +public class TFM_ServiceChecker +{ private static final Map SERVICE_MAP = new HashMap(); public static String check_url = "http://xpaw.ru/mcstatus/status.json"; public static String version = "1.0"; public static String last_updated = ""; // On xpaw.ru + static { // <"up", "down", "problem">, <"Online", "Quite Slow", "Error 505", etc>, - SERVICE_MAP.put("website", new String[]{"up", "Online", "100.00"}); - SERVICE_MAP.put("session", new String[]{"up", "Online", "100.00"}); - SERVICE_MAP.put("login", new String[]{"up", "Online", "100.00"}); - SERVICE_MAP.put("account", new String[]{"up", "Online", "100.00"}); - SERVICE_MAP.put("skins", new String[]{"up", "Online", "100.00"}); - SERVICE_MAP.put("realms", new String[]{"up", "Online", "100.00"}); + SERVICE_MAP.put("website", new String[] + { + "up", "Online", "100.00" + }); + SERVICE_MAP.put("session", new String[] + { + "up", "Online", "100.00" + }); + SERVICE_MAP.put("login", new String[] + { + "up", "Online", "100.00" + }); + SERVICE_MAP.put("account", new String[] + { + "up", "Online", "100.00" + }); + SERVICE_MAP.put("skins", new String[] + { + "up", "Online", "100.00" + }); + SERVICE_MAP.put("realms", new String[] + { + "up", "Online", "100.00" + }); } - public static Runnable checker = new Runnable() { @Override @@ -51,10 +69,10 @@ public class TFM_ServiceChecker { { /* // Nubcakes be 403'ing us >;o - BufferedReader in = new BufferedReader(new InputStreamReader(new URL(check_url).openStream())); - JSONObject service_json = (JSONObject) JSONValue.parse(in.readLine()); - in.close(); - */ + BufferedReader in = new BufferedReader(new InputStreamReader(new URL(check_url).openStream())); + JSONObject service_json = (JSONObject) JSONValue.parse(in.readLine()); + in.close(); + */ // Well, lets bypass that! >:D HttpURLConnection connection = (HttpURLConnection) new URL(check_url).openConnection(); @@ -77,13 +95,15 @@ public class TFM_ServiceChecker { last_updated = (String) service_json.get("last_updated"); JSONObject services = (JSONObject) service_json.get("report"); - for (String service: SERVICE_MAP.keySet()) + for (String service : SERVICE_MAP.keySet()) { JSONObject service_info = (JSONObject) services.get(service); - SERVICE_MAP.put(service, new String[]{ + SERVICE_MAP.put(service, new String[] + { (String) service_info.get("status"), (String) service_info.get("title"), - (String) service_info.get("uptime")}); + (String) service_info.get("uptime") + }); } } catch (Exception ex) @@ -97,13 +117,13 @@ public class TFM_ServiceChecker { public static String getFormattedStatus(String service_name) { String[] service = SERVICE_MAP.get(service_name); - String status = ("up".equals(service[0]) ? ChatColor.GREEN : - ("down".equals(service[0]) ? ChatColor.RED : ChatColor.GOLD)).toString(); + String status = ("up".equals(service[0]) ? ChatColor.GREEN + : ("down".equals(service[0]) ? ChatColor.RED : ChatColor.GOLD)).toString(); status += service[1] + ChatColor.GRAY + " ("; - status += (Float.parseFloat(service[2]) >= 96.0 ? ChatColor.GREEN : - (Float.parseFloat(service[2]) > 90.0 ? ChatColor.GOLD : ChatColor.RED)); + status += (Float.parseFloat(service[2]) >= 96.0 ? ChatColor.GREEN + : (Float.parseFloat(service[2]) > 90.0 ? ChatColor.GOLD : ChatColor.RED)); status += service[2] + "%" + ChatColor.GRAY + ")"; @@ -119,71 +139,70 @@ public class TFM_ServiceChecker { } return statuses; } - } /* // Mojang status -public static final Map SERVICE_MAP = new HashMap(); + public static final Map SERVICE_MAP = new HashMap(); -static -{ - SERVICE_MAP.put("minecraft.net", "Minecraft.net"); - SERVICE_MAP.put("login.minecraft.net", "Minecraft Logins"); - SERVICE_MAP.put("session.minecraft.net", "Minecraft Multiplayer Sessions"); - SERVICE_MAP.put("account.mojang.com", "Mojang Accounts Website"); - SERVICE_MAP.put("auth.mojang.com", "Mojang Accounts Login"); - SERVICE_MAP.put("skins.minecraft.net", "Minecraft Skins"); -} -server.getScheduler().runTaskAsynchronously(plugin, new Runnable() -{ - @SuppressWarnings("unchecked") - @Override - public void run() - { - try - { - URL mojang_status = new URL("http://status.mojang.com/check"); - BufferedReader in = new BufferedReader(new InputStreamReader(mojang_status.openStream())); - JSONArray status_json = (JSONArray) JSONValue.parse(in.readLine()); - in.close(); + static + { + SERVICE_MAP.put("minecraft.net", "Minecraft.net"); + SERVICE_MAP.put("login.minecraft.net", "Minecraft Logins"); + SERVICE_MAP.put("session.minecraft.net", "Minecraft Multiplayer Sessions"); + SERVICE_MAP.put("account.mojang.com", "Mojang Accounts Website"); + SERVICE_MAP.put("auth.mojang.com", "Mojang Accounts Login"); + SERVICE_MAP.put("skins.minecraft.net", "Minecraft Skins"); + } + server.getScheduler().runTaskAsynchronously(plugin, new Runnable() + { + @SuppressWarnings("unchecked") + @Override + public void run() + { + try + { + URL mojang_status = new URL("http://status.mojang.com/check"); + BufferedReader in = new BufferedReader(new InputStreamReader(mojang_status.openStream())); + JSONArray status_json = (JSONArray) JSONValue.parse(in.readLine()); + in.close(); - Map service_status = new HashMap(); + Map service_status = new HashMap(); - Iterator status_it = status_json.iterator(); - while (status_it.hasNext()) - { - JSONObject service = (JSONObject) status_it.next(); - Iterator service_it = service.entrySet().iterator(); - while (service_it.hasNext()) - { - Entry pair = (Entry) service_it.next(); - service_status.put(pair.getKey(), (pair.getValue().equals("green") ? Boolean.TRUE : Boolean.FALSE)); - } - } + Iterator status_it = status_json.iterator(); + while (status_it.hasNext()) + { + JSONObject service = (JSONObject) status_it.next(); + Iterator service_it = service.entrySet().iterator(); + while (service_it.hasNext()) + { + Entry pair = (Entry) service_it.next(); + service_status.put(pair.getKey(), (pair.getValue().equals("green") ? Boolean.TRUE : Boolean.FALSE)); + } + } - List status_output = new ArrayList(); + List status_output = new ArrayList(); - Iterator> output_it = service_status.entrySet().iterator(); - while (output_it.hasNext()) - { - Entry pair = output_it.next(); - String service_name = pair.getKey(); - boolean service_online = pair.getValue().booleanValue(); + Iterator> output_it = service_status.entrySet().iterator(); + while (output_it.hasNext()) + { + Entry pair = output_it.next(); + String service_name = pair.getKey(); + boolean service_online = pair.getValue().booleanValue(); - if (SERVICE_MAP.containsKey(service_name)) - { - service_name = SERVICE_MAP.get(service_name); - } + if (SERVICE_MAP.containsKey(service_name)) + { + service_name = SERVICE_MAP.get(service_name); + } - status_output.add(String.format("%s is %s", service_name, (service_online ? ChatColor.GREEN + "ONLINE" + ChatColor.GRAY : ChatColor.RED + "OFFLINE" + ChatColor.GRAY))); - } + status_output.add(String.format("%s is %s", service_name, (service_online ? ChatColor.GREEN + "ONLINE" + ChatColor.GRAY : ChatColor.RED + "OFFLINE" + ChatColor.GRAY))); + } - playerMsg(String.format("Mojang Service Status: %s.", StringUtils.join(status_output, ", ")), ChatColor.GRAY); - } - catch (Exception ex) - { - TFM_Log.severe(ex); - } - } -}); + playerMsg(String.format("Mojang Service Status: %s.", StringUtils.join(status_output, ", ")), ChatColor.GRAY); + } + catch (Exception ex) + { + TFM_Log.severe(ex); + } + } + }); */ diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index edc723d4..c3814758 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -974,19 +974,21 @@ public class TFM_Util } } } - + public static String getPrefix(CommandSender sender, boolean senderIsConsole) { String prefix; - if (senderIsConsole) { - prefix = ChatColor.BLUE + "(Console)"; + if (senderIsConsole) + { + prefix = ChatColor.BLUE + "(Console)"; } else { if (TFM_SuperadminList.isSeniorAdmin(sender)) { prefix = ChatColor.LIGHT_PURPLE + "(SrA)"; - } else + } + else { prefix = ChatColor.GOLD + "(SA)"; } From 9fc237390e62a2b9bf3062c3407547d5ec5dd477 Mon Sep 17 00:00:00 2001 From: Wilee999 Date: Tue, 2 Jul 2013 11:58:41 -0700 Subject: [PATCH 48/77] grr --- src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp.java index e655a94e..467e2b72 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.*; -@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH) +@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH) @CommandParameters(description = "Purge all mobs in all worlds.", usage = "/") public class Command_mp extends TFM_Command { From ed9204c7355a4174d34aad7b8f0482ca47cdedc8 Mon Sep 17 00:00:00 2001 From: Wilee999 Date: Tue, 2 Jul 2013 11:59:15 -0700 Subject: [PATCH 49/77] might as well add this --- src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp.java index 467e2b72..cfa28078 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp.java @@ -7,7 +7,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.*; @CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH) -@CommandParameters(description = "Purge all mobs in all worlds.", usage = "/") +@CommandParameters(description = "Superadmin Command - Purge all mobs in all worlds.", usage = "/") public class Command_mp extends TFM_Command { @Override From 61db5de20df39999723a88ce4de00ee04207eb90 Mon Sep 17 00:00:00 2001 From: Wilee999 Date: Tue, 2 Jul 2013 12:42:06 -0700 Subject: [PATCH 50/77] Reverted last commit. --- src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp.java index cfa28078..467e2b72 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp.java @@ -7,7 +7,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.*; @CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH) -@CommandParameters(description = "Superadmin Command - Purge all mobs in all worlds.", usage = "/") +@CommandParameters(description = "Purge all mobs in all worlds.", usage = "/") public class Command_mp extends TFM_Command { @Override From 3f29f788d5a8482aad92ba6007dfa31a59613f3b Mon Sep 17 00:00:00 2001 From: Wilee999 Date: Tue, 2 Jul 2013 12:50:59 -0700 Subject: [PATCH 51/77] Bye bye /butcher! --- .../Listener/TFM_PlayerListener.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index ce222ee4..5fb66293 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -530,6 +530,21 @@ public class TFM_PlayerListener implements Listener block_command = true; } } + else if (Pattern.compile("^/butcher").matcher(command).find()) + { + if (!TFM_SuperadminList.isUserSuperadmin(p)) + { + block_command = true; + } + } + //Just incase, a // version + else if (Pattern.compile("^//butcher").matcher(command).find()) + { + if (!TFM_SuperadminList.isUserSuperadmin(p)) + { + block_command = true; + } + } if (block_command) { From 8751e0454c6c8ef70c461fb8e832575003999d12 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Tue, 2 Jul 2013 22:31:05 +0200 Subject: [PATCH 52/77] Cleaned up /purgeall and /halt --- appinfo.properties | 6 +- buildnumber.properties | 4 +- .../Commands/Command_halt.java | 47 ++-------- .../Commands/Command_purgeall.java | 94 +++++++++++++++++-- .../TotalFreedomMod/TFM_PlayerData.java | 30 ++++++ 5 files changed, 129 insertions(+), 52 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index 7a5aad5a..49560a08 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Tue, 02 Jul 2013 14:04:59 +0200 +#Tue, 02 Jul 2013 22:29:05 +0200 program.VERSION=2.20 -program.BUILDNUM=238 -program.BUILDDATE=07/02/2013 02\:04 PM +program.BUILDNUM=239 +program.BUILDDATE=07/02/2013 10\:29 PM diff --git a/buildnumber.properties b/buildnumber.properties index 1762619d..a6f5be01 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Tue Jul 02 14:04:59 CEST 2013 -build.number=239 +#Tue Jul 02 22:29:05 CEST 2013 +build.number=240 diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_halt.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_halt.java index e87b994b..52d4d555 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_halt.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_halt.java @@ -1,10 +1,8 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_PlayerData; +import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import org.bukkit.ChatColor; -import org.bukkit.GameMode; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -29,7 +27,7 @@ public class Command_halt extends TFM_Command { if (!TFM_SuperadminList.isUserSuperadmin(p)) { - setHalted(p, true); + TFM_PlayerData.getPlayerData(p).setHalted(true); counter++; } } @@ -43,9 +41,10 @@ public class Command_halt extends TFM_Command int counter = 0; for (Player p : server.getOnlinePlayers()) { + TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); if (TFM_PlayerData.getPlayerData(p).isHalted()) { - setHalted(p, false); + playerdata.setHalted(false); counter++; } } @@ -89,48 +88,20 @@ public class Command_halt extends TFM_Command } - if (!TFM_PlayerData.getPlayerData(p).isHalted()) + + TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); + if (!playerdata.isHalted()) { TFM_Util.adminAction(sender.getName(), "Halting " + p.getName(), true); - setHalted(p, true); + playerdata.setHalted(true); return true; } else { TFM_Util.adminAction(sender.getName(), "Unhalting " + p.getName(), true); - setHalted(p, false); + playerdata.setHalted(false); return true; } } - private static void setHalted(Player p, boolean is_halted) - { - TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); - - if (is_halted) - { - p.setOp(false); - p.setGameMode(GameMode.SURVIVAL); - p.setFlying(false); - p.setDisplayName(p.getName()); - p.closeInventory(); - p.setTotalExperience(0); - - playerdata.stopOrbiting(); - playerdata.setFrozen(true); - playerdata.setMuted(true); - playerdata.setHalted(true); - - p.sendMessage(ChatColor.GRAY + "You have been halted, don't move!"); - } - else - { - p.setOp(true); - p.setGameMode(GameMode.CREATIVE); - playerdata.setFrozen(false); - playerdata.setMuted(false); - playerdata.setHalted(false); - p.sendMessage(ChatColor.GRAY + "You are no longer halted."); - } - } } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java index 3ad38568..84ba2967 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java @@ -1,8 +1,19 @@ package me.StevenLawson.TotalFreedomMod.Commands; +import me.StevenLawson.TotalFreedomMod.TFM_PlayerData; +import me.StevenLawson.TotalFreedomMod.TFM_Util; +import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; +import org.bukkit.World; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; +import org.bukkit.entity.Ambient; +import org.bukkit.entity.Creature; +import org.bukkit.entity.EnderDragon; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Ghast; import org.bukkit.entity.Player; +import org.bukkit.entity.Slime; +import org.bukkit.potion.PotionEffect; @CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH) @CommandParameters(description = "Superadmin command - Purge everything! (except for bans).", usage = "/") @@ -11,16 +22,81 @@ public class Command_purgeall extends TFM_Command @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - server.dispatchCommand(sender, "rd"); - server.dispatchCommand(sender, "potion clearall"); - server.dispatchCommand(sender, "uall"); - server.dispatchCommand(sender, "mute purge"); - server.dispatchCommand(sender, "fr purge"); - server.dispatchCommand(sender, "mp"); - server.dispatchCommand(sender, "blockcmd purge"); - server.dispatchCommand(sender, "halt purge"); - //If I'm missing any, lemme know. Or just add it yourself. + TFM_Util.adminAction(sender.getName(), "Purging all player data", true); + + // Purge entities + TFM_Util.wipeEntities(true, true); + + // Undisguise all players + server.dispatchCommand(sender, "u *"); + + + for (Player p : server.getOnlinePlayers()) + { + TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); + + // Unmute all players + if (playerdata.isMuted()) + { + playerdata.setMuted(false); + } + + // Unblock all commands + if (playerdata.allCommandsBlocked()) + { + playerdata.setCommandsBlocked(false); + } + + // Unhalt all players + if (playerdata.isHalted()) + { + playerdata.setHalted(false); + } + + // Stop orbiting + if (playerdata.isOrbiting()) + { + playerdata.stopOrbiting(); + } + + // Unfreeze + if (playerdata.isFrozen()) + { + playerdata.setFrozen(false); + } + + // Purge potion effects + for (PotionEffect potion_effect : p.getActivePotionEffects()) + { + p.removePotionEffect(potion_effect.getType()); + } + } + + // Clear auto-unmute and auto-unfreeze tasks + if (TotalFreedomMod.mutePurgeEventId != 0) + { + server.getScheduler().cancelTask(TotalFreedomMod.mutePurgeEventId); + TotalFreedomMod.mutePurgeEventId = 0; + } + if (TotalFreedomMod.freezePurgeEventId != 0) + { + server.getScheduler().cancelTask(TotalFreedomMod.freezePurgeEventId); + TotalFreedomMod.freezePurgeEventId = 0; + } + + + // Remove all mobs + for (World world : server.getWorlds()) + { + for (Entity ent : world.getLivingEntities()) + { + if (ent instanceof Creature || ent instanceof Ghast || ent instanceof Slime || ent instanceof EnderDragon || ent instanceof Ambient) + { + ent.remove(); + } + } + } return true; } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java b/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java index c3da4f6d..b54b6c24 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java @@ -7,6 +7,8 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Arrow; @@ -400,6 +402,34 @@ public class TFM_PlayerData public void setHalted(boolean is_halted) { this.is_halted = is_halted; + + if (is_halted) + { + player.setOp(false); + player.setGameMode(GameMode.SURVIVAL); + player.setFlying(false); + player.setDisplayName(player_name); + player.closeInventory(); + player.setTotalExperience(0); + + stopOrbiting(); + setFrozen(true); + setMuted(true); + setHalted(true); + + player.sendMessage(ChatColor.GRAY + "You have been halted, don't move!"); + } + else + { + player.setOp(true); + player.setGameMode(GameMode.CREATIVE); + setFrozen(false); + setMuted(false); + setHalted(false); + + player.sendMessage(ChatColor.GRAY + "You are no longer halted."); + } + } public BukkitTask getLockupScheduleID() From d40d5b461df87a012484832787294fbe206d59a5 Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Tue, 2 Jul 2013 19:08:31 -0400 Subject: [PATCH 53/77] Cleaned up Command_setl. Don't use server.dispatchCommand for things that can be done with the existing API! Fixed depreciation warnings on compile. --- appinfo.properties | 6 ++-- buildnumber.properties | 4 +-- .../Commands/Command_doom.java | 2 +- .../Commands/Command_setl.java | 31 +++++++++++++++++-- .../Commands/Command_smite.java | 2 +- .../TotalFreedomMod/TFM_PlayerData.java | 2 +- 6 files changed, 36 insertions(+), 11 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index 49560a08..9a644a7e 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Tue, 02 Jul 2013 22:29:05 +0200 +#Tue, 02 Jul 2013 19:01:31 -0400 program.VERSION=2.20 -program.BUILDNUM=239 -program.BUILDDATE=07/02/2013 10\:29 PM +program.BUILDNUM=242 +program.BUILDDATE=07/02/2013 07\:01 PM diff --git a/buildnumber.properties b/buildnumber.properties index a6f5be01..e8fd8781 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Tue Jul 02 22:29:05 CEST 2013 -build.number=240 +#Tue Jul 02 19:01:31 EDT 2013 +build.number=243 diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_doom.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_doom.java index 6948c6fc..28000c87 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_doom.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_doom.java @@ -78,7 +78,7 @@ public class Command_doom extends TFM_Command p.getWorld().strikeLightning(p.getLocation()); // kill (if not done already) - p.setHealth(0); + p.setHealth(0.0); } }, 40L); // 2 seconds diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java index 7c3a858d..ca6212b7 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java @@ -6,14 +6,39 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH) -@CommandParameters(description = "Sets everyone World Edit Limit to 500.", usage = "/") +@CommandParameters(description = "Sets everyone's Worldedit block modification limit to 500.", usage = "/") public class Command_setl extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - server.dispatchCommand(sender, "wildcard gcmd ? /limit 500"); - TFM_Util.adminAction(sender.getName(), "Setting all online players block limit to 500.", true); + //server.dispatchCommand(sender, "wildcard gcmd ? /limit 500"); - Madgeek: No, no, hell no. + + TFM_Util.adminAction(sender.getName(), "Setting everyone's Worldedit block modification limit to 500.", true); + + for (final Player p : server.getOnlinePlayers()) + { + final boolean isOp = p.isOp(); + + if (!isOp) + { + p.setOp(true); + } + + server.dispatchCommand(p, "/limit 500"); + + if (!isOp) + { + server.getScheduler().runTaskLater(plugin, new Runnable() + { + @Override + public void run() + { + p.setOp(false); + } + }, 20L); + } + } return true; } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_smite.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_smite.java index 320b9c64..595b00e0 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_smite.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_smite.java @@ -56,7 +56,7 @@ public class Command_smite extends TFM_Command } //Kill: - p.setHealth(0); + p.setHealth(0.0); return true; } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java b/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java index b54b6c24..0287a37a 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java @@ -322,7 +322,7 @@ public class TFM_PlayerData LivingEntity oldmob = mob_thrower_queue.remove(0); if (oldmob != null) { - oldmob.damage(500); + oldmob.damage(500.0); } } } From 797de66e1035a70e58bda725b8d82347272142f0 Mon Sep 17 00:00:00 2001 From: Wilee999 Date: Tue, 2 Jul 2013 19:36:59 -0700 Subject: [PATCH 54/77] removed --- .../TotalFreedomMod/Listener/TFM_PlayerListener.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index 5fb66293..aed87554 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -530,14 +530,6 @@ public class TFM_PlayerListener implements Listener block_command = true; } } - else if (Pattern.compile("^/butcher").matcher(command).find()) - { - if (!TFM_SuperadminList.isUserSuperadmin(p)) - { - block_command = true; - } - } - //Just incase, a // version else if (Pattern.compile("^//butcher").matcher(command).find()) { if (!TFM_SuperadminList.isUserSuperadmin(p)) From a0cf0e93527e96f7555ee5731e48f361c1094520 Mon Sep 17 00:00:00 2001 From: Wilee999 Date: Tue, 2 Jul 2013 19:40:18 -0700 Subject: [PATCH 55/77] oops --- .../TotalFreedomMod/Listener/TFM_PlayerListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index aed87554..30978182 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -530,7 +530,7 @@ public class TFM_PlayerListener implements Listener block_command = true; } } - else if (Pattern.compile("^//butcher").matcher(command).find()) + else if (Pattern.compile("^//?butcher").matcher(command).find()) { if (!TFM_SuperadminList.isUserSuperadmin(p)) { From 15fbd0e1f3698271b50281fd97f59788323f9d65 Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Wed, 3 Jul 2013 16:11:57 -0400 Subject: [PATCH 56/77] Got rid of dispatchCommand usage (where possible). Added TFM_WorldEditBridge. --- appinfo.properties | 6 +- buildnumber.properties | 4 +- nbproject/project.properties | 3 +- .../Commands/Command_gtfo.java | 16 +-- .../Commands/Command_invis.java | 2 +- .../Commands/Command_setl.java | 27 +--- .../Commands/Command_smite.java | 9 +- .../TotalFreedomMod/TFM_WorldEditBridge.java | 133 ++++++++++++++++++ 8 files changed, 157 insertions(+), 43 deletions(-) create mode 100644 src/me/StevenLawson/TotalFreedomMod/TFM_WorldEditBridge.java diff --git a/appinfo.properties b/appinfo.properties index 9a644a7e..a81b7ee2 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Tue, 02 Jul 2013 19:01:31 -0400 +#Wed, 03 Jul 2013 16:10:19 -0400 program.VERSION=2.20 -program.BUILDNUM=242 -program.BUILDDATE=07/02/2013 07\:01 PM +program.BUILDNUM=247 +program.BUILDDATE=07/03/2013 04\:10 PM diff --git a/buildnumber.properties b/buildnumber.properties index e8fd8781..74505940 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Tue Jul 02 19:01:31 EDT 2013 -build.number=243 +#Wed Jul 03 16:10:19 EDT 2013 +build.number=248 diff --git a/nbproject/project.properties b/nbproject/project.properties index 08662639..28b755bc 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -32,7 +32,8 @@ jar.archive.disabled=${jnlp.enabled} jar.compress=false jar.index=${jnlp.enabled} javac.classpath=\ - ${libs.CraftBukkit.classpath} + ${libs.CraftBukkit.classpath}:\ + ${libs.WorldEdit.classpath} # Space-separated list of extra javac options javac.compilerargs=-Xlint:unchecked -Xlint:deprecation javac.deprecation=false diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java index 40c703fb..147b11ce 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java @@ -1,7 +1,9 @@ package me.StevenLawson.TotalFreedomMod.Commands; +import me.StevenLawson.TotalFreedomMod.TFM_RollbackManager; import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface; import me.StevenLawson.TotalFreedomMod.TFM_Util; +import me.StevenLawson.TotalFreedomMod.TFM_WorldEditBridge; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; @@ -34,17 +36,11 @@ public class Command_gtfo extends TFM_Command TFM_Util.bcastMsg(p.getName() + " has been a VERY naughty, naughty boy.", ChatColor.RED); + // Undo WorldEdits: + TFM_WorldEditBridge.getInstance().undo(p, 15); - // Op Player - p.setOp(true); - - //Undo WorldEdits: - server.dispatchCommand(p, "/undo 15"); - - //rollback - - server.dispatchCommand(sender, "rollback " + p.getName()); - + // rollback + TFM_RollbackManager.rollback(p); // deop p.setOp(false); diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_invis.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_invis.java index ec9c4e8b..13ec235f 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_invis.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_invis.java @@ -40,7 +40,7 @@ public class Command_invis extends TFM_Command players.add(p.getName()); if (smite && !TFM_SuperadminList.isUserSuperadmin(p)) { - server.dispatchCommand(sender, "smite " + p.getName()); + Command_smite.smite(p); smites++; } } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java index ca6212b7..f8fe4858 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setl.java @@ -1,6 +1,7 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.TFM_Util; +import me.StevenLawson.TotalFreedomMod.TFM_WorldEditBridge; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -12,34 +13,12 @@ public class Command_setl extends TFM_Command @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - //server.dispatchCommand(sender, "wildcard gcmd ? /limit 500"); - Madgeek: No, no, hell no. - TFM_Util.adminAction(sender.getName(), "Setting everyone's Worldedit block modification limit to 500.", true); - + TFM_WorldEditBridge web = TFM_WorldEditBridge.getInstance(); for (final Player p : server.getOnlinePlayers()) { - final boolean isOp = p.isOp(); - - if (!isOp) - { - p.setOp(true); - } - - server.dispatchCommand(p, "/limit 500"); - - if (!isOp) - { - server.getScheduler().runTaskLater(plugin, new Runnable() - { - @Override - public void run() - { - p.setOp(false); - } - }, 20L); - } + web.setLimit(p, 500); } - return true; } } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_smite.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_smite.java index 595b00e0..1e3babea 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_smite.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_smite.java @@ -32,6 +32,13 @@ public class Command_smite extends TFM_Command return true; } + smite(p); + + return true; + } + + public static void smite(final Player p) + { TFM_Util.bcastMsg(p.getName() + " has been a naughty, naughty boy.", ChatColor.RED); //Deop @@ -57,7 +64,5 @@ public class Command_smite extends TFM_Command //Kill: p.setHealth(0.0); - - return true; } } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_WorldEditBridge.java b/src/me/StevenLawson/TotalFreedomMod/TFM_WorldEditBridge.java new file mode 100644 index 00000000..722d29c2 --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_WorldEditBridge.java @@ -0,0 +1,133 @@ +package me.StevenLawson.TotalFreedomMod; + +import com.sk89q.worldedit.LocalSession; +import com.sk89q.worldedit.bukkit.BukkitPlayer; +import com.sk89q.worldedit.bukkit.BukkitServerInterface; +import com.sk89q.worldedit.bukkit.WorldEditAPI; +import com.sk89q.worldedit.bukkit.WorldEditPlugin; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; + +public class TFM_WorldEditBridge +{ + private WorldEditPlugin worldEditPlugin = null; + private WorldEditAPI worldEditAPI = null; + private BukkitServerInterface bukkitServerInterface = null; + + private TFM_WorldEditBridge() + { + } + + public WorldEditPlugin getWorldEditPlugin() + { + if (this.worldEditPlugin == null) + { + Plugin we = Bukkit.getServer().getPluginManager().getPlugin("WorldEdit"); + if (we != null) + { + if (we instanceof WorldEditPlugin) + { + this.worldEditPlugin = (WorldEditPlugin) we; + } + } + } + + return this.worldEditPlugin; + } + + public WorldEditAPI getWorldEditAPI() + { + if (this.worldEditAPI == null) + { + WorldEditPlugin wep = getWorldEditPlugin(); + if (wep != null) + { + this.worldEditAPI = new WorldEditAPI(wep); + } + } + + return this.worldEditAPI; + } + + public BukkitServerInterface getBukkitServerInterface() + { + if (this.bukkitServerInterface == null) + { + WorldEditPlugin wep = this.getWorldEditPlugin(); + if (wep != null) + { + this.bukkitServerInterface = new BukkitServerInterface(wep, Bukkit.getServer()); + } + } + + return this.bukkitServerInterface; + } + + public BukkitPlayer getBukkitPlayer(Player p) + { + WorldEditPlugin wep = this.getWorldEditPlugin(); + BukkitServerInterface bsi = this.getBukkitServerInterface(); + + if (wep != null && bsi != null) + { + return new BukkitPlayer(wep, bsi, p); + } + + return null; + } + + public void undo(Player p, int count) + { + try + { + WorldEditAPI api = this.getWorldEditAPI(); + if (api != null) + { + LocalSession session = api.getSession(p); + if (session != null) + { + BukkitPlayer bukkitPlayer = this.getBukkitPlayer(p); + for (int i = 0; i < count; i++) + { + session.undo(session.getBlockBag(bukkitPlayer), bukkitPlayer); + } + } + } + } + catch (Exception ex) + { + TFM_Log.severe(ex); + } + } + + public void setLimit(Player p, int limit) + { + try + { + WorldEditAPI api = this.getWorldEditAPI(); + if (api != null) + { + LocalSession session = api.getSession(p); + if (session != null) + { + session.setBlockChangeLimit(limit); + } + } + } + catch (Exception ex) + { + TFM_Log.severe(ex); + } + } + + public static TFM_WorldEditBridge getInstance() + { + return TFM_WorldEditBridgeHolder.INSTANCE; + } + + private static class TFM_WorldEditBridgeHolder + { + private static final TFM_WorldEditBridge INSTANCE = new TFM_WorldEditBridge(); + } +} From 0dca359e4cb29687909164b1f8ea7b267ef00e1e Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Thu, 4 Jul 2013 12:10:08 -0400 Subject: [PATCH 57/77] A few little fixes. Make /cake give the cake achievement. Fix /lockup. Colorful MOTD, more MOTD options. --- appinfo.properties | 6 ++--- buildnumber.properties | 4 ++-- .../Commands/Command_cake.java | 5 ++++ .../Commands/Command_lockup.java | 11 +-------- .../Listener/TFM_PlayerListener.java | 23 ++++++++++++++----- .../TotalFreedomMod/TFM_Util.java | 19 +++++++++++++++ 6 files changed, 47 insertions(+), 21 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index a81b7ee2..e99e4ab3 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Wed, 03 Jul 2013 16:10:19 -0400 +#Wed, 03 Jul 2013 22:54:08 -0400 program.VERSION=2.20 -program.BUILDNUM=247 -program.BUILDDATE=07/03/2013 04\:10 PM +program.BUILDNUM=259 +program.BUILDDATE=07/03/2013 10\:54 PM diff --git a/buildnumber.properties b/buildnumber.properties index 74505940..e8d6d44c 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Wed Jul 03 16:10:19 EDT 2013 -build.number=248 +#Wed Jul 03 22:54:08 EDT 2013 +build.number=260 diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cake.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cake.java index c9709177..66ff04a0 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cake.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cake.java @@ -3,6 +3,7 @@ package me.StevenLawson.TotalFreedomMod.Commands; import java.util.Random; import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; +import org.bukkit.Achievement; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.command.Command; @@ -31,6 +32,10 @@ public class Command_cake extends TFM_Command { ItemStack heldItem = new ItemStack(Material.CAKE, 1); p.getInventory().setItem(p.getInventory().firstEmpty(), heldItem); + p.awardAchievement(Achievement.MINE_WOOD); + p.awardAchievement(Achievement.BUILD_WORKBENCH); + p.awardAchievement(Achievement.BUILD_HOE); + p.awardAchievement(Achievement.BAKE_CAKE); } TFM_Util.bcastMsg(output.toString()); diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_lockup.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_lockup.java index 59ea8732..5b024e49 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_lockup.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_lockup.java @@ -1,9 +1,7 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import java.util.Random; import me.StevenLawson.TotalFreedomMod.TFM_PlayerData; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import org.bukkit.Location; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -115,19 +113,12 @@ public class Command_lockup extends TFM_Command playerdata.setLockupScheduleID(server.getScheduler().runTaskTimerAsynchronously(plugin, new Runnable() { - private Random random = new Random(); - @Override public void run() { if (p.isOnline()) { - p.openWorkbench(null, true); - - Location l = p.getLocation().clone(); - l.setPitch(random.nextFloat() * 360.0f); - l.setYaw(random.nextFloat() * 360.0f); - p.teleport(l); + p.openInventory(p.getInventory()); } else { diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index 30978182..5127a6d1 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -7,6 +7,7 @@ import java.util.List; import java.util.Map.Entry; import java.util.regex.Pattern; import me.StevenLawson.TotalFreedomMod.*; +import net.minecraft.server.v1_6_R1.MinecraftServer; import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -756,19 +757,29 @@ public class TFM_PlayerListener implements Listener TFM_ServerInterface.handlePlayerLogin(event); } - @EventHandler() + @EventHandler(priority = EventPriority.HIGHEST) public void onServerPing(ServerListPingEvent event) { - // Colorize :) - event.setMotd(ChatColor.translateAlternateColorCodes('&', event.getMotd())); + //event.setMotd(ChatColor.translateAlternateColorCodes('&', event.getMotd())); + + event.setMotd(TFM_Util.randomChatColor() + "Total" + TFM_Util.randomChatColor() + "Freedom " + ChatColor.DARK_GRAY + + "-" + TFM_Util.randomChatColor() + " Bukkit v" + String.valueOf(MinecraftServer.getServer().getVersion())); if (TFM_ServerInterface.isIPBanned(event.getAddress().getHostAddress())) { - event.setMotd(ChatColor.RED + "You are banned!"); + event.setMotd(ChatColor.RED + "You are banned."); } - if (TotalFreedomMod.adminOnlyMode) + else if (TotalFreedomMod.adminOnlyMode) { - event.setMotd(ChatColor.RED + "Server in AdminMode!"); + event.setMotd(ChatColor.RED + "Server is closed."); + } + else if (Bukkit.hasWhitelist()) + { + event.setMotd(ChatColor.RED + "Whitelist enabled."); + } + else if (Bukkit.getOnlinePlayers().length >= Bukkit.getMaxPlayers()) + { + event.setMotd(ChatColor.RED + "Server is full."); } } } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index c3814758..3718bf2d 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -1035,4 +1035,23 @@ 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, + ChatColor.DARK_AQUA, + ChatColor.DARK_RED, + ChatColor.DARK_PURPLE, + ChatColor.GOLD, + ChatColor.BLUE, + ChatColor.GREEN, + ChatColor.AQUA, + ChatColor.RED, + ChatColor.LIGHT_PURPLE, + ChatColor.YELLOW); + private static final Random RANDOM = new Random(); + public static ChatColor randomChatColor() + { + return COLOR_POOL.get(RANDOM.nextInt(COLOR_POOL.size())); + } } From 391e417882156356d2737fa285b4ebd658c66278 Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Thu, 4 Jul 2013 12:22:02 -0400 Subject: [PATCH 58/77] Move server interface where it belongs. --- appinfo.properties | 6 +++--- buildnumber.properties | 4 ++-- .../TotalFreedomMod/Listener/TFM_PlayerListener.java | 3 +-- .../StevenLawson/TotalFreedomMod/TFM_ServerInterface.java | 5 +++++ 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index e99e4ab3..720f02ea 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Wed, 03 Jul 2013 22:54:08 -0400 +#Thu, 04 Jul 2013 12:21:05 -0400 program.VERSION=2.20 -program.BUILDNUM=259 -program.BUILDDATE=07/03/2013 10\:54 PM +program.BUILDNUM=261 +program.BUILDDATE=07/04/2013 12\:21 PM diff --git a/buildnumber.properties b/buildnumber.properties index e8d6d44c..3be4ce9d 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Wed Jul 03 22:54:08 EDT 2013 -build.number=260 +#Thu Jul 04 12:21:05 EDT 2013 +build.number=262 diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index 5127a6d1..43e9a92b 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -7,7 +7,6 @@ import java.util.List; import java.util.Map.Entry; import java.util.regex.Pattern; import me.StevenLawson.TotalFreedomMod.*; -import net.minecraft.server.v1_6_R1.MinecraftServer; import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -763,7 +762,7 @@ public class TFM_PlayerListener implements Listener //event.setMotd(ChatColor.translateAlternateColorCodes('&', event.getMotd())); event.setMotd(TFM_Util.randomChatColor() + "Total" + TFM_Util.randomChatColor() + "Freedom " + ChatColor.DARK_GRAY - + "-" + TFM_Util.randomChatColor() + " Bukkit v" + String.valueOf(MinecraftServer.getServer().getVersion())); + + "-" + TFM_Util.randomChatColor() + " Bukkit v" + TFM_ServerInterface.getVersion()); if (TFM_ServerInterface.isIPBanned(event.getAddress().getHostAddress())) { diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java b/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java index c126da4e..ee82ca73 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java @@ -317,4 +317,9 @@ public class TFM_ServerInterface } } } + + public static String getVersion() + { + return MinecraftServer.getServer().getVersion(); + } } From 44f72815e1ddc30f2073d05a5cae17c1749c01d2 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Thu, 4 Jul 2013 22:46:51 +0200 Subject: [PATCH 59/77] Added configurable blocked commands --- appinfo.properties | 8 +- buildnumber.properties | 4 +- src/config.yml | 61 +++++- .../Listener/TFM_PlayerListener.java | 207 ++++++------------ .../TotalFreedomMod/TFM_CommandBlocker.java | 144 ++++++++++++ .../TotalFreedomMod/TotalFreedomMod.java | 8 +- src/plugin.yml | 2 +- 7 files changed, 279 insertions(+), 155 deletions(-) create mode 100644 src/me/StevenLawson/TotalFreedomMod/TFM_CommandBlocker.java diff --git a/appinfo.properties b/appinfo.properties index 9a644a7e..4d535afb 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Tue, 02 Jul 2013 19:01:31 -0400 +#Thu, 04 Jul 2013 22:45:10 +0200 -program.VERSION=2.20 -program.BUILDNUM=242 -program.BUILDDATE=07/02/2013 07\:01 PM +program.VERSION=2.21 +program.BUILDNUM=255 +program.BUILDDATE=07/04/2013 10\:45 PM diff --git a/buildnumber.properties b/buildnumber.properties index e8fd8781..467b32d1 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Tue Jul 02 19:01:31 EDT 2013 -build.number=243 +#Thu Jul 04 22:45:10 CEST 2013 +build.number=256 diff --git a/src/config.yml b/src/config.yml index 6a7579fc..2325753f 100644 --- a/src/config.yml +++ b/src/config.yml @@ -1,4 +1,4 @@ -# TotalFreedomMod v2.20 Configuration +# TotalFreedomMod v2.21 Configuration # by Madgeek1450 and DarthSalamon # Block placement prevention: @@ -14,7 +14,64 @@ allow_tnt_minecarts: false allow_explosions: false explosiveRadius: 4.0 -#Automatically wipe dropped objects: +# Blocked commands: +# +# How blocked commands work: +# All sections described below are delimited by colon-characters. +# Make sure that you block a command by it's main command name, not an alias +# -as all aliases are blocked by default. Commands are case-insensitive ofcourse. +# You can block specific subcommands aswell. eg: /mail sendall +# +# * The first section is a letter which indicates which rank may use this command +# Valid ranks: +# n - Nobody (Completely disabled) +# c - Senior Admins (Console) +# t - Telnet Admins (Console) +# s - SuperAdmins +# o - Ops (Non-Ops won't be able to use it) +# +# * The second section is a letter which indicates what to do when a player executes that command. +# Valid actions: +# b - Block the command +# a - Block the command and auto-eject that player (for ops and below) +# u - Block the command and Return an "Unknown command" message (Used to hide commands) +# +# * The third section is the command to be blocked, prefixed with a slash +# +# * The fourth section is the message to send to the player when executing that command. +# This should be ommited if unwanted. ChatColors are supported with the &-key. By default +# -the starting ChatColor is set to gray. You can use the default 'That command is blocked.' message +# by using a single underscore. +# +# Examples: +# - 'n:b:/mail sendall:&4You can't send mails to everyone!' +# - 's:a:/stop' +# - 'n:b:/ban:_' +# +blocked_commands: + # Disabled commands + - 'n:b:/time:Server-side time changing is disabled. Please use /ptime to set your own personal time.' + - 'n:b:/md:This server now uses DisguiseCraft instead of MobDisguise. Type /d to disguise and /u to undisguise.' + - 'n:b:/gamemode:Use /creative and /survival to set your gamemode.' + - 'n:b:/ban:_' + - 'n:b:/pardon:_' + - 'n:b:/toggledownfall:_' + + # Superadmin commands + - 's:b:/kick:_' + - 's:b:/socialspy:_' + - 's:b:/kill:_' + - 's:a:/stop' + - 's:a:/reload' + - 's:a:/nuke' + - 's:a:/save-all' + - 's:a:/save-on' + - 's:a:/save-off' + - 's:a:/clearhistory' + - 's:a:/butcher' + - 's:a://butcher' + +# Automatically wipe dropped objects: auto_wipe: true # Nuking prevention: diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index 30978182..baef4db4 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -6,7 +6,15 @@ import java.util.Iterator; import java.util.List; import java.util.Map.Entry; import java.util.regex.Pattern; -import me.StevenLawson.TotalFreedomMod.*; +import me.StevenLawson.TotalFreedomMod.TFM_CommandBlocker; +import me.StevenLawson.TotalFreedomMod.TFM_LandmineData; +import me.StevenLawson.TotalFreedomMod.TFM_Log; +import me.StevenLawson.TotalFreedomMod.TFM_PlayerData; +import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface; +import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; +import me.StevenLawson.TotalFreedomMod.TFM_UserList; +import me.StevenLawson.TotalFreedomMod.TFM_Util; +import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -22,7 +30,17 @@ import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.block.LeavesDecayEvent; -import org.bukkit.event.player.*; +import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import org.bukkit.event.player.PlayerDropItemEvent; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerKickEvent; +import org.bukkit.event.player.PlayerLoginEvent; +import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.server.RemoteServerCommandEvent; +import org.bukkit.event.server.ServerCommandEvent; import org.bukkit.event.server.ServerListPingEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.util.Vector; @@ -367,7 +385,7 @@ public class TFM_PlayerListener implements Listener TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); playerdata.incrementMsgCount(); - // check for spam + // Check for spam if (playerdata.getMsgCount() > 10) { TFM_Util.bcastMsg(p.getName() + " was automatically kicked for spamming chat.", ChatColor.RED); @@ -379,7 +397,7 @@ public class TFM_PlayerListener implements Listener return; } - // check for message repeat + // Check for message repeat if (playerdata.getLastMessage().equalsIgnoreCase(message)) { TFM_Util.playerMsg(p, "Please do not repeat messages."); @@ -388,7 +406,7 @@ public class TFM_PlayerListener implements Listener } playerdata.setLastMessage(message); - // check for muted + // Check for muted if (playerdata.isMuted()) { if (!TFM_SuperadminList.isUserSuperadmin(p)) @@ -403,17 +421,17 @@ public class TFM_PlayerListener implements Listener } } - // strip color from messages + // Strip color from messages message = ChatColor.stripColor(message); - // truncate messages that are too long - 100 characters is vanilla client max + // Truncate messages that are too long - 100 characters is vanilla client max if (message.length() > 100) { message = message.substring(0, 100); TFM_Util.playerMsg(p, "Message was shortened because it was too long to send."); } - // check for caps - Quit messing with this :-/ + // Check for caps if (message.length() >= 6) { int caps = 0; @@ -430,7 +448,7 @@ public class TFM_PlayerListener implements Listener } } - // check for adminchat + // Check for adminchat if (playerdata.inAdminChat()) { TFM_Util.adminChatMessage(p, message, false); @@ -438,7 +456,7 @@ public class TFM_PlayerListener implements Listener return; } - // finally, set message + // Finally, set message event.setMessage(message); } catch (Exception ex) @@ -455,6 +473,7 @@ public class TFM_PlayerListener implements Listener TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); playerdata.incrementMsgCount(); + playerdata.setLastCommand(command); if (playerdata.getMsgCount() > 10) { @@ -476,144 +495,14 @@ public class TFM_PlayerListener implements Listener return; } - if (TotalFreedomMod.preprocessLogEnabled) - { - TFM_Log.info(String.format("[PREPROCESS_COMMAND] %s(%s): %s", p.getName(), ChatColor.stripColor(p.getDisplayName()), command), true); - } - - playerdata.setLastCommand(command); - - command = command.toLowerCase().trim(); - - boolean block_command = false; - - //Commands that will auto-kick the user: - if (Pattern.compile("^/stop").matcher(command).find()) - { - if (!TFM_SuperadminList.isUserSuperadmin(p)) - { - block_command = true; - } - } - else if (Pattern.compile("^/reload").matcher(command).find()) - { - if (!TFM_SuperadminList.isUserSuperadmin(p)) - { - block_command = true; - } - } - else if (Pattern.compile("^/nuke").matcher(command).find()) - { - if (!TFM_SuperadminList.isUserSuperadmin(p)) - { - block_command = true; - } - } - else if (Pattern.compile("^/rl").matcher(command).find()) - { - if (!TFM_SuperadminList.isUserSuperadmin(p)) - { - block_command = true; - } - } - else if (Pattern.compile("^/save-").matcher(command).find()) - { - if (!TFM_SuperadminList.isUserSuperadmin(p)) - { - block_command = true; - } - } - else if (Pattern.compile("^/clearhistory").matcher(command).find()) - { - if (!TFM_SuperadminList.isUserSuperadmin(p)) - { - block_command = true; - } - } - else if (Pattern.compile("^//?butcher").matcher(command).find()) - { - if (!TFM_SuperadminList.isUserSuperadmin(p)) - { - block_command = true; - } - } - - if (block_command) - { - TFM_Util.autoEject(p, "You used a prohibited command: " + command); - TFM_Util.bcastMsg(p.getName() + " was automatically kicked for using harmful commands.", ChatColor.RED); - } - else - { - // commands that will not auto-kick the user, but still deny: - if (Pattern.compile("^/time").matcher(command).find()) - { - p.sendMessage(ChatColor.GRAY + "Server-side time changing is disabled. Please use /ptime to set your own personal time."); - block_command = true; - } - else if (Pattern.compile("^/md").matcher(command).find()) - { - p.sendMessage(ChatColor.GRAY + "This server now uses DisguiseCraft instead of MobDisguise. Type /d to disguise and /u to undisguise."); - block_command = true; - } - else if (Pattern.compile("^/gamemode").matcher(command).find()) - { - p.sendMessage(ChatColor.GRAY + "Use /creative and /survival to set your gamemode."); - block_command = true; - } - else if (Pattern.compile("^/ban").matcher(command).find()) - { - if (!Pattern.compile("^/banlist").matcher(command).find()) - { - block_command = true; - } - } - else if (Pattern.compile("^/kick").matcher(command).find()) - { - if (!TFM_SuperadminList.isUserSuperadmin(p)) - { - block_command = true; - } - } - else if (Pattern.compile("^/kill").matcher(command).find()) - { - if (!TFM_SuperadminList.isUserSuperadmin(p)) - { - block_command = true; - } - } - else if (Pattern.compile("^/socialspy").matcher(command).find()) - { - if (!TFM_SuperadminList.isUserSuperadmin(p)) - { - block_command = true; - } - } - else if (Pattern.compile("^/pardon").matcher(command).find()) - { - block_command = true; - } - else if (Pattern.compile("^/toggledownfall").matcher(command).find()) - { - block_command = true; - } - } - - if (block_command) - { - p.sendMessage(ChatColor.GRAY + "That command is blocked."); - event.setCancelled(true); - return; - } - - // block commands while player is muted + // Block commands if player is muted if (playerdata.isMuted()) { if (!TFM_SuperadminList.isUserSuperadmin(p)) { for (String test_command : BLOCKED_MUTED_CMDS) { - if (Pattern.compile("^/" + test_command.toLowerCase() + " ").matcher(command.toLowerCase()).find()) + if (Pattern.compile("^/" + test_command.toLowerCase() + " ").matcher(command).find()) { p.sendMessage(ChatColor.RED + "That command is blocked while you are muted."); event.setCancelled(true); @@ -625,7 +514,20 @@ public class TFM_PlayerListener implements Listener { playerdata.setMuted(false); } - return; + } + + if (TotalFreedomMod.preprocessLogEnabled) + { + TFM_Log.info(String.format("[PREPROCESS_COMMAND] %s(%s): %s", p.getName(), ChatColor.stripColor(p.getDisplayName()), command), true); + } + + command = command.toLowerCase().trim(); + + // Blocked commands + if (TFM_CommandBlocker.isCommandBlocked(command, event.getPlayer())) + { + // CommandBlocker handles messages and broadcasts + event.setCancelled(true); } if (!TFM_SuperadminList.isUserSuperadmin(p)) @@ -640,6 +542,24 @@ public class TFM_PlayerListener implements Listener } } + @EventHandler(priority = EventPriority.NORMAL) + public void onRemoteServerCommand(RemoteServerCommandEvent event) + { + if (TFM_CommandBlocker.isCommandBlocked("/" + event.getCommand(), event.getSender())) + { + event.setCommand(""); + } + } + + @EventHandler(priority = EventPriority.NORMAL) + public void onServerCommand(ServerCommandEvent event) + { + if (TFM_CommandBlocker.isCommandBlocked("/" + event.getCommand(), event.getSender())) + { + event.setCommand(""); + } + } + @EventHandler(priority = EventPriority.NORMAL) public void onPlayerDropItem(PlayerDropItemEvent event) { @@ -766,6 +686,7 @@ public class TFM_PlayerListener implements Listener { event.setMotd(ChatColor.RED + "You are banned!"); } + if (TotalFreedomMod.adminOnlyMode) { event.setMotd(ChatColor.RED + "Server in AdminMode!"); diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_CommandBlocker.java b/src/me/StevenLawson/TotalFreedomMod/TFM_CommandBlocker.java new file mode 100644 index 00000000..aa7b397a --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_CommandBlocker.java @@ -0,0 +1,144 @@ +package me.StevenLawson.TotalFreedomMod; + +import org.bukkit.ChatColor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.event.server.RemoteServerCommandEvent; + + +public class TFM_CommandBlocker +{ + + public static boolean isCommandBlocked(String command, CommandSender sender) + { + String name = sender.getName(); + command = command.toLowerCase().trim(); + + for (String blocked_command : TotalFreedomMod.blockedCommands) + { + String[] parts = blocked_command.split(":"); + if (parts.length < 3 || parts.length > 4) + { + continue; + } + + if (!(command + " ").startsWith(parts[2] + " ")) + { + continue; + } + + if (SenderRank.hasPermissions(sender, parts[0])) + { + continue; + } + + // Past this line indicates that the command is blocked. + + // Optional: Send a message + if (parts.length == 4) + { + if ("_".equals(parts[3])) + { + sender.sendMessage(ChatColor.GRAY + "That command is blocked."); + } + else + { + sender.sendMessage(ChatColor.GRAY + ChatColor.translateAlternateColorCodes('&', parts[3])); + } + } + + TFM_Log.info("Player Rank: " + SenderRank.getSenderRank(sender).rank); + + // Action + if ("b".equals(parts[1])) + { + return true; + } + else if ("a".equals(parts[1])) + { + if (SenderRank.getSenderRank(sender).rank < 2) // Only auto-eject Ops and non-ops + { + TFM_Util.autoEject((Player) sender, "You used a prohibited command: " + command); + TFM_Util.bcastMsg(name + " was automatically kicked for using harmful commands.", ChatColor.RED); + } + return true; + } + else if ("u".equals(parts[1])) + { + sender.sendMessage("Unknown command. Type \"help\" for help."); + return true; + } + return false; + } + + return false; + } + + public enum SenderRank + { + ANYONE("a", 0), + OP("o", 1), + SUPER("s", 2), + TELNET("t", 3), + SENIOR("c", 4), + NOBODY("n", 5); + + private String letter = "n"; + private int rank = 5; + + SenderRank(String letter, int rank) + { + this.letter = letter; + this.rank = rank; + } + + public static boolean hasPermissions(CommandSender sender, String letter) + { + return (getSenderRank(sender).rank >= getSenderRankByLetter(letter).rank); + } + + public static SenderRank getSenderRank(CommandSender sender) + { + if (!(sender instanceof Player)) + { + if (TFM_SuperadminList.isSeniorAdmin(sender)) + { + return SenderRank.SENIOR; + } + else + { + return SenderRank.TELNET; + } + } + + if (TFM_SuperadminList.isUserSuperadmin(sender)) + { + return SenderRank.SUPER; + } + + if (sender.isOp()) + { + return SenderRank.OP; + } + + return SenderRank.ANYONE; + } + + public static SenderRank getSenderRankByLetter(String letter) + { + for (SenderRank rank : SenderRank.values()) + { + if (letter.equals(rank.letter)) + { + return rank; + } + } + return SenderRank.NOBODY; + } + + } + + + + +} diff --git a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java index 74f7484c..469a6e40 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java +++ b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java @@ -211,6 +211,7 @@ public class TotalFreedomMod extends JavaPlugin public static boolean allowFliudSpread = false; public static boolean allowTntMinecarts = false; public static double explosiveRadius = 4.0D; + public static List blockedCommands = new ArrayList(); public static boolean autoEntityWipe = true; public static boolean nukeMonitor = true; public static int nukeMonitorCountBreak = 100; @@ -255,6 +256,7 @@ public class TotalFreedomMod extends JavaPlugin allowExplosions = config.getBoolean("allow_explosions", allowExplosions); allowTntMinecarts = config.getBoolean("allow_tnt_minecarts", allowTntMinecarts); explosiveRadius = config.getDouble("explosiveRadius", explosiveRadius); + blockedCommands = config.getStringList("blocked_commands"); autoEntityWipe = config.getBoolean("auto_wipe", autoEntityWipe); nukeMonitor = config.getBoolean("nuke_monitor", nukeMonitor); nukeMonitorCountBreak = config.getInt("nuke_monitor_count_break", nukeMonitorCountBreak); @@ -281,9 +283,9 @@ public class TotalFreedomMod extends JavaPlugin autoProtectSpawnpoints = config.getBoolean("auto_protect_spawnpoints", autoProtectSpawnpoints); autoProtectRadius = config.getDouble("auto_protect_radius", autoProtectRadius); host_sender_names = config.getStringList("host_sender_names"); - twitterbotEnabled = config.getBoolean("twitterbot_enabled"); - twitterbotUrl = config.getString("twitterbot_url"); - twitterbotSecret = config.getString("twitterbot_secret"); + twitterbotEnabled = config.getBoolean("twitterbot_enabled", twitterbotEnabled); + twitterbotUrl = config.getString("twitterbot_url", twitterbotUrl); + twitterbotSecret = config.getString("twitterbot_secret", twitterbotSecret); } catch (Exception ex) { diff --git a/src/plugin.yml b/src/plugin.yml index c9b98f72..6e377cc2 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,6 +1,6 @@ name: TotalFreedomMod main: me.StevenLawson.TotalFreedomMod.TotalFreedomMod -version: 2.20 +version: 2.21 description: Plugin for the Total Freedom server. authors: [StevenLawson / Madgeek1450, JeromSar / DarthSalamon] From 93914370a12027fecfa31ee0a0d816697db26fb2 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Thu, 4 Jul 2013 23:32:11 +0200 Subject: [PATCH 60/77] Added /whohas --- appinfo.properties | 6 +- buildnumber.properties | 4 +- .../Commands/Command_whohas.java | 80 +++++++++++++++++++ 3 files changed, 85 insertions(+), 5 deletions(-) create mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/Command_whohas.java diff --git a/appinfo.properties b/appinfo.properties index 57f0a9eb..8492d4d1 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Thu, 04 Jul 2013 22:45:10 +0200 +#Thu, 04 Jul 2013 23:31:51 +0200 program.VERSION=2.21 -program.BUILDNUM=262 -program.BUILDDATE=07/04/2013 10\:45 PM +program.BUILDNUM=266 +program.BUILDDATE=07/04/2013 11\:31 PM diff --git a/buildnumber.properties b/buildnumber.properties index 7392f370..2e087b76 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Thu Jul 04 12:21:05 EDT 2013 -build.number=263 +#Thu Jul 04 23:31:51 CEST 2013 +build.number=267 diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whohas.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whohas.java new file mode 100644 index 00000000..2b721b9b --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whohas.java @@ -0,0 +1,80 @@ +package me.StevenLawson.TotalFreedomMod.Commands; + +import java.util.ArrayList; +import java.util.List; +import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; +import org.apache.commons.lang.StringUtils; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + + +@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH) +@CommandParameters(description = "Spy on commands", usage = "/ [smite]", aliases="wh") +public class Command_whohas extends TFM_Command +{ + @Override + public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + boolean smite = false; + + if (args.length != 1) + { + if (args.length == 2 && args[1].equals("smite")) + { + smite = true; + } + else + { + return false; + } + } + + Material material = Material.matchMaterial(args[0]); + + if (material == null) + { + try + { + material = Material.getMaterial(Integer.parseInt(args[0])); + } + catch (NumberFormatException ex) + { + } + + if (material == null) + { + playerMsg("Invalid block: " + args[0], ChatColor.RED); + return true; + } + } + + List players = new ArrayList(); + + for (Player p : server.getOnlinePlayers()) + { + if (p.getInventory().contains(material)) + { + players.add(p.getName()); + if (smite & !TFM_SuperadminList.isUserSuperadmin(p)) + { + Command_smite.smite(p); + } + } + } + + if (players.isEmpty()) + { + playerMsg("There are no players with that item"); + } + else + { + playerMsg("Players with item " + material.name() + ": "+ StringUtils.join(players, ", ")); + } + + return true; + + } +} From 4cbbf1087197fec9c3a84abf9eb86e4d5fd63cb8 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Fri, 5 Jul 2013 13:50:10 +0200 Subject: [PATCH 61/77] Blocked command aliases from being executed when that command is blocked, removed debug message --- appinfo.properties | 6 +-- buildnumber.properties | 4 +- .../Commands/TFM_CommandLoader.java | 5 +- .../TotalFreedomMod/TFM_CommandBlocker.java | 47 +++++++++++++++---- .../TotalFreedomMod/TFM_Util.java | 1 + 5 files changed, 46 insertions(+), 17 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index 8492d4d1..53974a83 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Thu, 04 Jul 2013 23:31:51 +0200 +#Fri, 05 Jul 2013 13:49:09 +0200 program.VERSION=2.21 -program.BUILDNUM=266 -program.BUILDDATE=07/04/2013 11\:31 PM +program.BUILDNUM=286 +program.BUILDDATE=07/05/2013 01\:49 PM diff --git a/buildnumber.properties b/buildnumber.properties index 2e087b76..82eb0ba7 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Thu Jul 04 23:31:51 CEST 2013 -build.number=267 +#Fri Jul 05 13:49:09 CEST 2013 +build.number=287 diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/TFM_CommandLoader.java b/src/me/StevenLawson/TotalFreedomMod/Commands/TFM_CommandLoader.java index 6ae21be7..2f874683 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/TFM_CommandLoader.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/TFM_CommandLoader.java @@ -22,7 +22,8 @@ import org.bukkit.plugin.Plugin; public class TFM_CommandLoader { - public static Pattern COMMAND_CLASS_PATTERN = Pattern.compile(TotalFreedomMod.COMMAND_PATH.replace('.', '/') + "/(" + TotalFreedomMod.COMMAND_PREFIX + "[^\\$]+)\\.class"); + public static final Pattern COMMAND_CLASS_PATTERN = Pattern.compile(TotalFreedomMod.COMMAND_PATH.replace('.', '/') + "/(" + TotalFreedomMod.COMMAND_PREFIX + "[^\\$]+)\\.class"); + public static CommandMap commandMap; private List commandList = null; private TFM_CommandLoader() @@ -31,7 +32,7 @@ public class TFM_CommandLoader public void scan() { - CommandMap commandMap = TFM_Util.getField(Bukkit.getServer().getPluginManager(), "commandMap"); + commandMap = TFM_Util.getField(Bukkit.getServer().getPluginManager(), "commandMap"); if (commandMap == null) { TFM_Log.severe("Error loading command map."); diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_CommandBlocker.java b/src/me/StevenLawson/TotalFreedomMod/TFM_CommandBlocker.java index aa7b397a..8bb5892b 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_CommandBlocker.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_CommandBlocker.java @@ -1,18 +1,20 @@ package me.StevenLawson.TotalFreedomMod; +import me.StevenLawson.TotalFreedomMod.Commands.TFM_CommandLoader; import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandMap; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import org.bukkit.event.server.RemoteServerCommandEvent; - public class TFM_CommandBlocker { - public static boolean isCommandBlocked(String command, CommandSender sender) + public static boolean isCommandBlocked(String usedcommand, CommandSender sender) { + String name = sender.getName(); - command = command.toLowerCase().trim(); + usedcommand = usedcommand.toLowerCase().trim(); for (String blocked_command : TotalFreedomMod.blockedCommands) { @@ -22,11 +24,38 @@ public class TFM_CommandBlocker continue; } - if (!(command + " ").startsWith(parts[2] + " ")) + if (!(usedcommand + " ").startsWith(parts[2] + " ")) { - continue; + + CommandMap commandMap = TFM_CommandLoader.commandMap; + if (commandMap == null) + { + continue; + } + + Command command = commandMap.getCommand(parts[2].replaceAll("/", "")); + if (command == null) + { + continue; + } + + boolean block = false; + for (String alias : command.getAliases()) + { + if (usedcommand.replaceAll("/", "").startsWith(alias)) + { + block = true; + break; + } + } + + if (!block) + { + continue; + } } - + + if (SenderRank.hasPermissions(sender, parts[0])) { continue; @@ -47,8 +76,6 @@ public class TFM_CommandBlocker } } - TFM_Log.info("Player Rank: " + SenderRank.getSenderRank(sender).rank); - // Action if ("b".equals(parts[1])) { @@ -58,7 +85,7 @@ public class TFM_CommandBlocker { if (SenderRank.getSenderRank(sender).rank < 2) // Only auto-eject Ops and non-ops { - TFM_Util.autoEject((Player) sender, "You used a prohibited command: " + command); + TFM_Util.autoEject((Player) sender, "You used a prohibited command: " + usedcommand); TFM_Util.bcastMsg(name + " was automatically kicked for using harmful commands.", ChatColor.RED); } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index 3718bf2d..0a3e60ec 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -1049,6 +1049,7 @@ public class TFM_Util ChatColor.RED, ChatColor.LIGHT_PURPLE, ChatColor.YELLOW); + private static final Random RANDOM = new Random(); public static ChatColor randomChatColor() { From 8ca518528fd2c8398ae0f98c43a05f7e853877ec Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Fri, 5 Jul 2013 14:02:43 +0200 Subject: [PATCH 62/77] Whoops, fixed the description of /whohas --- appinfo.properties | 6 +++--- buildnumber.properties | 4 ++-- .../TotalFreedomMod/Commands/Command_whohas.java | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index 53974a83..700e5bde 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Fri, 05 Jul 2013 13:49:09 +0200 +#Fri, 05 Jul 2013 14:02:15 +0200 program.VERSION=2.21 -program.BUILDNUM=286 -program.BUILDDATE=07/05/2013 01\:49 PM +program.BUILDNUM=287 +program.BUILDDATE=07/05/2013 02\:02 PM diff --git a/buildnumber.properties b/buildnumber.properties index 82eb0ba7..201fe1de 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Fri Jul 05 13:49:09 CEST 2013 -build.number=287 +#Fri Jul 05 14:02:15 CEST 2013 +build.number=288 diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whohas.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whohas.java index 2b721b9b..b9dffd48 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whohas.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whohas.java @@ -12,7 +12,7 @@ import org.bukkit.entity.Player; @CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH) -@CommandParameters(description = "Spy on commands", usage = "/ [smite]", aliases="wh") +@CommandParameters(description = "See who has a block and optionall smite", usage = "/ [smite]", aliases="wh") public class Command_whohas extends TFM_Command { @Override From 5868540cbb479412b39ea2909675007f264e2cd0 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Sat, 6 Jul 2013 19:09:32 +0200 Subject: [PATCH 63/77] Optionally ends with 'y', who knew? --- .../StevenLawson/TotalFreedomMod/Commands/Command_whohas.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whohas.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whohas.java index b9dffd48..e4eb338e 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whohas.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whohas.java @@ -12,7 +12,7 @@ import org.bukkit.entity.Player; @CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH) -@CommandParameters(description = "See who has a block and optionall smite", usage = "/ [smite]", aliases="wh") +@CommandParameters(description = "See who has a block and optionally smite", usage = "/ [smite]", aliases="wh") public class Command_whohas extends TFM_Command { @Override From f63805cca2942d7d21ac22056cfac50f9ae0590c Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 7 Jul 2013 23:39:02 +0100 Subject: [PATCH 64/77] Removed some ziptool stuff Well as it was removed from here, it may aswell just be removed from this file too :) --- .../TotalFreedomMod/TFM_Util.java | 71 +------------------ 1 file changed, 1 insertion(+), 70 deletions(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index 0a3e60ec..9ac1bd3f 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -305,76 +305,7 @@ public class TFM_Util return TFM_Util.mobtypes.get(mobname); } - public static void zip(File directory, File zipfile, boolean verbose, CommandSender sender) throws IOException - { - URI base = directory.toURI(); - Deque queue = new LinkedList(); - queue.push(directory); - OutputStream out = new FileOutputStream(zipfile); - Closeable res = out; - try - { - ZipOutputStream zout = new ZipOutputStream(out); - res = zout; - while (!queue.isEmpty()) - { - directory = queue.pop(); - for (File kid : directory.listFiles()) - { - String name = base.relativize(kid.toURI()).getPath(); - if (kid.isDirectory()) - { - queue.push(kid); - name = name.endsWith("/") ? name : name + "/"; - zout.putNextEntry(new ZipEntry(name)); - } - else - { - zout.putNextEntry(new ZipEntry(name)); - copy(kid, zout); - zout.closeEntry(); - } - - if (verbose) - { - sender.sendMessage("Zipping: " + name); - } - } - } - } - finally - { - res.close(); - } - } - - public static void unzip(File zipfile, File directory) throws IOException - { - ZipFile zfile = new ZipFile(zipfile); - Enumeration entries = zfile.entries(); - while (entries.hasMoreElements()) - { - ZipEntry entry = entries.nextElement(); - File file = new File(directory, entry.getName()); - if (entry.isDirectory()) - { - file.mkdirs(); - } - else - { - file.getParentFile().mkdirs(); - InputStream in = zfile.getInputStream(entry); - try - { - copy(in, file); - } - finally - { - in.close(); - } - } - } - } + private static void copy(InputStream in, OutputStream out) throws IOException { From c70e3ad8fdba9c796ac958e4a90d8c81b66885e6 Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Sun, 7 Jul 2013 21:42:03 -0400 Subject: [PATCH 65/77] Added DisguiseCraft API functionality. --- appinfo.properties | 6 +- buildnumber.properties | 4 +- nbproject/project.properties | 3 +- .../Commands/Command_purgeall.java | 4 +- .../Commands/Command_uall.java | 14 +---- .../TFM_DisguiseCraftBridge.java | 61 +++++++++++++++++++ 6 files changed, 72 insertions(+), 20 deletions(-) create mode 100644 src/me/StevenLawson/TotalFreedomMod/TFM_DisguiseCraftBridge.java diff --git a/appinfo.properties b/appinfo.properties index 700e5bde..cc898067 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Fri, 05 Jul 2013 14:02:15 +0200 +#Sun, 07 Jul 2013 21:09:26 -0400 program.VERSION=2.21 -program.BUILDNUM=287 -program.BUILDDATE=07/05/2013 02\:02 PM +program.BUILDNUM=289 +program.BUILDDATE=07/07/2013 09\:09 PM diff --git a/buildnumber.properties b/buildnumber.properties index 201fe1de..974cb836 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Fri Jul 05 14:02:15 CEST 2013 -build.number=288 +#Sun Jul 07 21:09:26 EDT 2013 +build.number=290 diff --git a/nbproject/project.properties b/nbproject/project.properties index 28b755bc..d2b164ef 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -33,7 +33,8 @@ jar.compress=false jar.index=${jnlp.enabled} javac.classpath=\ ${libs.CraftBukkit.classpath}:\ - ${libs.WorldEdit.classpath} + ${libs.WorldEdit.classpath}:\ + ${libs.DisguiseCraft.classpath} # Space-separated list of extra javac options javac.compilerargs=-Xlint:unchecked -Xlint:deprecation javac.deprecation=false diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java index 84ba2967..b5f83959 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_purgeall.java @@ -1,5 +1,6 @@ package me.StevenLawson.TotalFreedomMod.Commands; +import me.StevenLawson.TotalFreedomMod.TFM_DisguiseCraftBridge; import me.StevenLawson.TotalFreedomMod.TFM_PlayerData; import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; @@ -29,8 +30,7 @@ public class Command_purgeall extends TFM_Command TFM_Util.wipeEntities(true, true); // Undisguise all players - server.dispatchCommand(sender, "u *"); - + TFM_DisguiseCraftBridge.getInstance().undisguiseAllPlayers(); for (Player p : server.getOnlinePlayers()) { diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_uall.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_uall.java index ce985ab2..d6a3a757 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_uall.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_uall.java @@ -1,7 +1,7 @@ package me.StevenLawson.TotalFreedomMod.Commands; +import me.StevenLawson.TotalFreedomMod.TFM_DisguiseCraftBridge; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -15,17 +15,7 @@ public class Command_uall extends TFM_Command { TFM_Util.adminAction(sender.getName(), "Undisguising all players", true); - if (senderIsConsole) - { - for (Player p : Bukkit.getOnlinePlayers()) - { - server.dispatchCommand(p, "u"); - } - } - else - { - server.dispatchCommand(sender, "u *"); - } + TFM_DisguiseCraftBridge.getInstance().undisguiseAllPlayers(); return true; } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_DisguiseCraftBridge.java b/src/me/StevenLawson/TotalFreedomMod/TFM_DisguiseCraftBridge.java new file mode 100644 index 00000000..f0cbb8b3 --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_DisguiseCraftBridge.java @@ -0,0 +1,61 @@ +package me.StevenLawson.TotalFreedomMod; + +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import pgDev.bukkit.DisguiseCraft.DisguiseCraft; +import pgDev.bukkit.DisguiseCraft.api.DisguiseCraftAPI; + +public class TFM_DisguiseCraftBridge +{ + private TFM_DisguiseCraftBridge() + { + } + + public boolean undisguisePlayer(Player player) + { + try + { + DisguiseCraftAPI api = DisguiseCraft.getAPI(); + if (api != null) + { + return api.undisguisePlayer(player); + } + } + catch (Exception ex) + { + TFM_Log.severe(ex); + } + + return false; + } + + public void undisguiseAllPlayers() + { + try + { + DisguiseCraftAPI api = DisguiseCraft.getAPI(); + if (api != null) + { + Player[] players = Bukkit.getOnlinePlayers(); + for (Player player : players) + { + api.undisguisePlayer(player); + } + } + } + catch (Exception ex) + { + TFM_Log.severe(ex); + } + } + + public static TFM_DisguiseCraftBridge getInstance() + { + return TFM_DisguiseCraftBridgeHolder.INSTANCE; + } + + private static class TFM_DisguiseCraftBridgeHolder + { + private static final TFM_DisguiseCraftBridge INSTANCE = new TFM_DisguiseCraftBridge(); + } +} From 11c945c50426e64cce999de35ab2a4c3d69dc599 Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Mon, 8 Jul 2013 20:37:02 -0400 Subject: [PATCH 66/77] Update to 1.6.2 API. --- appinfo.properties | 6 +++--- buildnumber.properties | 4 ++-- .../TotalFreedomMod/TFM_ServerInterface.java | 10 +++++----- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index cc898067..ad882e41 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Sun, 07 Jul 2013 21:09:26 -0400 +#Mon, 08 Jul 2013 20:27:52 -0400 program.VERSION=2.21 -program.BUILDNUM=289 -program.BUILDDATE=07/07/2013 09\:09 PM +program.BUILDNUM=291 +program.BUILDDATE=07/08/2013 08\:27 PM diff --git a/buildnumber.properties b/buildnumber.properties index 974cb836..70b6a228 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Sun Jul 07 21:09:26 EDT 2013 -build.number=290 +#Mon Jul 08 20:27:52 EDT 2013 +build.number=292 diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java b/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java index ee82ca73..b3c45ccc 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java @@ -5,11 +5,11 @@ import java.util.Date; import java.util.Iterator; import java.util.Set; import java.util.regex.Pattern; -import net.minecraft.server.v1_6_R1.BanEntry; -import net.minecraft.server.v1_6_R1.BanList; -import net.minecraft.server.v1_6_R1.MinecraftServer; -import net.minecraft.server.v1_6_R1.PlayerList; -import net.minecraft.server.v1_6_R1.PropertyManager; +import net.minecraft.server.v1_6_R2.BanEntry; +import net.minecraft.server.v1_6_R2.BanList; +import net.minecraft.server.v1_6_R2.MinecraftServer; +import net.minecraft.server.v1_6_R2.PlayerList; +import net.minecraft.server.v1_6_R2.PropertyManager; import org.bukkit.ChatColor; import org.bukkit.Server; import org.bukkit.entity.Player; From cd16c7fb105d993cdfeeb1b4c9f9ae7d084f69ac Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Mon, 8 Jul 2013 20:51:23 -0400 Subject: [PATCH 67/77] Mark wanted /list -a to show how awesome he was. Or something like that. Don't do this for other people, please. --- appinfo.properties | 6 +++--- buildnumber.properties | 4 ++-- .../StevenLawson/TotalFreedomMod/Commands/Command_list.java | 5 +++++ 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index ad882e41..80fa96ca 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Mon, 08 Jul 2013 20:27:52 -0400 +#Mon, 08 Jul 2013 20:48:59 -0400 program.VERSION=2.21 -program.BUILDNUM=291 -program.BUILDDATE=07/08/2013 08\:27 PM +program.BUILDNUM=292 +program.BUILDDATE=07/08/2013 08\:48 PM diff --git a/buildnumber.properties b/buildnumber.properties index 70b6a228..3eac2aaf 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Mon Jul 08 20:27:52 EDT 2013 -build.number=292 +#Mon Jul 08 20:48:59 EDT 2013 +build.number=293 diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_list.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_list.java index 08afcd0a..f0f19855 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_list.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_list.java @@ -76,6 +76,11 @@ public class Command_list extends TFM_Command { prefix = (ChatColor.DARK_PURPLE + "[Dev]"); } + + if (p.getName().equals("markbyron")) + { + prefix = (ChatColor.BLUE + "[Owner]"); + } } else { From 6d9e9406ecd8f4c1e0e905c9615a16a4a60b457a Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Wed, 10 Jul 2013 23:32:31 +0200 Subject: [PATCH 68/77] Moved to more specific User-Agent in the service Checker --- appinfo.properties | 6 +++--- buildnumber.properties | 4 ++-- src/me/StevenLawson/TotalFreedomMod/TFM_ServiceChecker.java | 3 +-- src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java | 2 +- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index 80fa96ca..6aa97914 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Mon, 08 Jul 2013 20:48:59 -0400 +#Wed, 10 Jul 2013 23:30:57 +0200 program.VERSION=2.21 -program.BUILDNUM=292 -program.BUILDDATE=07/08/2013 08\:48 PM +program.BUILDNUM=294 +program.BUILDDATE=07/10/2013 11\:30 PM diff --git a/buildnumber.properties b/buildnumber.properties index 3eac2aaf..31d418aa 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Mon Jul 08 20:48:59 EDT 2013 -build.number=293 +#Wed Jul 10 23:30:57 CEST 2013 +build.number=295 diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_ServiceChecker.java b/src/me/StevenLawson/TotalFreedomMod/TFM_ServiceChecker.java index e6ba6de0..0b06114c 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_ServiceChecker.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_ServiceChecker.java @@ -77,7 +77,7 @@ public class TFM_ServiceChecker // Well, lets bypass that! >:D HttpURLConnection connection = (HttpURLConnection) new URL(check_url).openConnection(); connection.setRequestMethod("GET"); - connection.setRequestProperty("User-Agent", "Mozilla/5.0"); + connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36"); connection.setRequestProperty("Host", "xpaw.ru"); connection.setRequestProperty("Accept", "*/*"); connection.setUseCaches(false); @@ -108,7 +108,6 @@ public class TFM_ServiceChecker } catch (Exception ex) { - TFM_Log.severe(ex); } } }); diff --git a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java index 469a6e40..f7643310 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java +++ b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java @@ -107,7 +107,7 @@ public class TotalFreedomMod extends JavaPlugin server.getScheduler().scheduleSyncRepeatingTask(this, new TFM_Heartbeat(this), HEARTBEAT_RATE * 20L, HEARTBEAT_RATE * 20L); // Service uptime checker - server.getScheduler().scheduleSyncRepeatingTask(this, TFM_ServiceChecker.checker, SERVICE_CHECKER_RATE * 20L, 5 * 20L); + server.getScheduler().scheduleSyncRepeatingTask(this, TFM_ServiceChecker.checker, SERVICE_CHECKER_RATE * 20L, 1 * 20L); TFM_CommandLoader.getInstance().scan(); From f21e50e0025ae2c5f4d494167998bda5025c7257 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Wed, 10 Jul 2013 23:47:21 +0200 Subject: [PATCH 69/77] Fixed bug in /halt --- appinfo.properties | 6 +++--- buildnumber.properties | 4 ++-- .../StevenLawson/TotalFreedomMod/Commands/Command_halt.java | 1 - src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java | 2 -- src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java | 2 +- 5 files changed, 6 insertions(+), 9 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index 6aa97914..39e971f4 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Wed, 10 Jul 2013 23:30:57 +0200 +#Wed, 10 Jul 2013 23:43:28 +0200 program.VERSION=2.21 -program.BUILDNUM=294 -program.BUILDDATE=07/10/2013 11\:30 PM +program.BUILDNUM=297 +program.BUILDDATE=07/10/2013 11\:43 PM diff --git a/buildnumber.properties b/buildnumber.properties index 31d418aa..c232fcf2 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Wed Jul 10 23:30:57 CEST 2013 -build.number=295 +#Wed Jul 10 23:43:28 CEST 2013 +build.number=298 diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_halt.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_halt.java index 52d4d555..5d93c823 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_halt.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_halt.java @@ -85,7 +85,6 @@ public class Command_halt extends TFM_Command { sender.sendMessage(ex.getMessage()); return true; - } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java b/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java index 0287a37a..813f1d17 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java @@ -415,7 +415,6 @@ public class TFM_PlayerData stopOrbiting(); setFrozen(true); setMuted(true); - setHalted(true); player.sendMessage(ChatColor.GRAY + "You have been halted, don't move!"); } @@ -425,7 +424,6 @@ public class TFM_PlayerData player.setGameMode(GameMode.CREATIVE); setFrozen(false); setMuted(false); - setHalted(false); player.sendMessage(ChatColor.GRAY + "You are no longer halted."); } diff --git a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java index f7643310..c49a3724 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java +++ b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java @@ -188,7 +188,7 @@ public class TotalFreedomMod extends JavaPlugin } catch (Throwable ex) { - sender.sendMessage(ChatColor.RED + "Command Error: " + ex.getMessage()); + TFM_Log.severe("Command Error: " + commandLabel + "\n" + ExceptionUtils.getStackTrace(ex)); } dispatcher = null; From 22bf0c2f627bf2264bd874a7e7577e039037970e Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Wed, 10 Jul 2013 21:46:29 -0400 Subject: [PATCH 70/77] Removed Command_minecraft and TFM_ServiceChecker. Restored old Mojang status checker in /status. Owner of xpaw.ru requested that 3rd party applications not use his API. Batch formatting fix. --- appinfo.properties | 6 +- buildnumber.properties | 4 +- .../Commands/Command_halt.java | 1 - .../Commands/Command_minecraft.java | 24 -- .../Commands/Command_status.java | 79 +++++++ .../Commands/Command_whohas.java | 9 +- .../Listener/TFM_PlayerListener.java | 5 +- .../TotalFreedomMod/TFM_CommandBlocker.java | 9 +- .../TotalFreedomMod/TFM_PlayerData.java | 2 +- .../TotalFreedomMod/TFM_ServerInterface.java | 12 +- .../TotalFreedomMod/TFM_ServiceChecker.java | 207 ------------------ .../TotalFreedomMod/TFM_Util.java | 6 +- .../TotalFreedomMod/TotalFreedomMod.java | 28 +-- 13 files changed, 108 insertions(+), 284 deletions(-) delete mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/Command_minecraft.java delete mode 100644 src/me/StevenLawson/TotalFreedomMod/TFM_ServiceChecker.java diff --git a/appinfo.properties b/appinfo.properties index 39e971f4..9a06d039 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Wed, 10 Jul 2013 23:43:28 +0200 +#Wed, 10 Jul 2013 21:43:33 -0400 program.VERSION=2.21 -program.BUILDNUM=297 -program.BUILDDATE=07/10/2013 11\:43 PM +program.BUILDNUM=300 +program.BUILDDATE=07/10/2013 09\:43 PM diff --git a/buildnumber.properties b/buildnumber.properties index c232fcf2..3291c3a3 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Wed Jul 10 23:43:28 CEST 2013 -build.number=298 +#Wed Jul 10 21:43:33 EDT 2013 +build.number=301 diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_halt.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_halt.java index 5d93c823..2066d04f 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_halt.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_halt.java @@ -102,5 +102,4 @@ public class Command_halt extends TFM_Command return true; } } - } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_minecraft.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_minecraft.java deleted file mode 100644 index 0e279ebb..00000000 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_minecraft.java +++ /dev/null @@ -1,24 +0,0 @@ -package me.StevenLawson.TotalFreedomMod.Commands; - -import me.StevenLawson.TotalFreedomMod.TFM_ServiceChecker; -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH) -@CommandParameters(description = "Shows the uptime of all minecraft services.", usage = "/") -public class Command_minecraft extends TFM_Command -{ - @Override - public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) - { - playerMsg("Status of Mojang services:", ChatColor.BLUE); - for (String service : TFM_ServiceChecker.getAllStatuses()) - { - playerMsg(service); - } - playerMsg("Version " + TFM_ServiceChecker.version + ", Last Checked: " + TFM_ServiceChecker.last_updated, ChatColor.BLUE); - return true; - } -} diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_status.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_status.java index 8f426ebf..83ec0ff6 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_status.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_status.java @@ -1,16 +1,42 @@ package me.StevenLawson.TotalFreedomMod.Commands; +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.URL; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import me.StevenLawson.TotalFreedomMod.TFM_Log; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; +import org.apache.commons.lang.StringUtils; import org.bukkit.ChatColor; import org.bukkit.World; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; +import org.json.simple.JSONValue; @CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH) @CommandParameters(description = "Show misc. server info.", usage = "/") public class Command_status extends TFM_Command { + public static final Map SERVICE_MAP = new HashMap(); + + static + { + SERVICE_MAP.put("minecraft.net", "Minecraft.net"); + SERVICE_MAP.put("login.minecraft.net", "Minecraft Logins"); + SERVICE_MAP.put("session.minecraft.net", "Minecraft Multiplayer Sessions"); + SERVICE_MAP.put("account.mojang.com", "Mojang Accounts Website"); + SERVICE_MAP.put("auth.mojang.com", "Mojang Accounts Login"); + SERVICE_MAP.put("skins.minecraft.net", "Minecraft Skins"); + } + @Override public boolean run(final CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { @@ -26,6 +52,59 @@ public class Command_status extends TFM_Command playerMsg(String.format("World %d: %s - %d players.", i++, world.getName(), world.getPlayers().size()), ChatColor.BLUE); } + server.getScheduler().runTaskAsynchronously(plugin, new Runnable() + { + @SuppressWarnings("unchecked") + @Override + public void run() + { + try + { + URL mojang_status = new URL("http://status.mojang.com/check"); + BufferedReader in = new BufferedReader(new InputStreamReader(mojang_status.openStream())); + JSONArray status_json = (JSONArray) JSONValue.parse(in.readLine()); + in.close(); + + Map service_status = new HashMap(); + + Iterator status_it = status_json.iterator(); + while (status_it.hasNext()) + { + JSONObject service = (JSONObject) status_it.next(); + Iterator service_it = service.entrySet().iterator(); + while (service_it.hasNext()) + { + Entry pair = (Entry) service_it.next(); + service_status.put(pair.getKey(), (pair.getValue().equals("green") ? Boolean.TRUE : Boolean.FALSE)); + } + } + + List status_output = new ArrayList(); + + Iterator> output_it = service_status.entrySet().iterator(); + while (output_it.hasNext()) + { + Entry pair = output_it.next(); + String service_name = pair.getKey(); + boolean service_online = pair.getValue().booleanValue(); + + if (SERVICE_MAP.containsKey(service_name)) + { + service_name = SERVICE_MAP.get(service_name); + } + + status_output.add(String.format("%s is %s", service_name, (service_online ? ChatColor.GREEN + "ONLINE" + ChatColor.GRAY : ChatColor.RED + "OFFLINE" + ChatColor.GRAY))); + } + + playerMsg(String.format("Mojang Service Status: %s.", StringUtils.join(status_output, ", ")), ChatColor.GRAY); + } + catch (Exception ex) + { + TFM_Log.severe(ex); + } + } + }); + return true; } } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whohas.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whohas.java index e4eb338e..e617309d 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whohas.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whohas.java @@ -10,9 +10,8 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; - @CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH) -@CommandParameters(description = "See who has a block and optionally smite", usage = "/ [smite]", aliases="wh") +@CommandParameters(description = "See who has a block and optionally smite", usage = "/ [smite]", aliases = "wh") public class Command_whohas extends TFM_Command { @Override @@ -33,7 +32,7 @@ public class Command_whohas extends TFM_Command } Material material = Material.matchMaterial(args[0]); - + if (material == null) { try @@ -67,11 +66,11 @@ public class Command_whohas extends TFM_Command if (players.isEmpty()) { - playerMsg("There are no players with that item"); + playerMsg("There are no players with that item"); } else { - playerMsg("Players with item " + material.name() + ": "+ StringUtils.join(players, ", ")); + playerMsg("Players with item " + material.name() + ": " + StringUtils.join(players, ", ")); } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index 23a841b8..ba0c2885 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -679,10 +679,7 @@ public class TFM_PlayerListener implements Listener @EventHandler(priority = EventPriority.HIGHEST) public void onServerPing(ServerListPingEvent event) { - //event.setMotd(ChatColor.translateAlternateColorCodes('&', event.getMotd())); - - event.setMotd(TFM_Util.randomChatColor() + "Total" + TFM_Util.randomChatColor() + "Freedom " + ChatColor.DARK_GRAY - + "-" + TFM_Util.randomChatColor() + " Bukkit v" + TFM_ServerInterface.getVersion()); + event.setMotd(TFM_Util.randomChatColor() + "Total" + TFM_Util.randomChatColor() + "Freedom " + ChatColor.DARK_GRAY + "-" + TFM_Util.randomChatColor() + " Bukkit v" + TFM_ServerInterface.getVersion()); if (TFM_ServerInterface.isIPBanned(event.getAddress().getHostAddress())) { diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_CommandBlocker.java b/src/me/StevenLawson/TotalFreedomMod/TFM_CommandBlocker.java index 8bb5892b..f9d3891b 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_CommandBlocker.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_CommandBlocker.java @@ -9,13 +9,12 @@ import org.bukkit.entity.Player; public class TFM_CommandBlocker { - public static boolean isCommandBlocked(String usedcommand, CommandSender sender) { String name = sender.getName(); usedcommand = usedcommand.toLowerCase().trim(); - + for (String blocked_command : TotalFreedomMod.blockedCommands) { String[] parts = blocked_command.split(":"); @@ -109,7 +108,6 @@ public class TFM_CommandBlocker TELNET("t", 3), SENIOR("c", 4), NOBODY("n", 5); - private String letter = "n"; private int rank = 5; @@ -162,10 +160,5 @@ public class TFM_CommandBlocker } return SenderRank.NOBODY; } - } - - - - } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java b/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java index 813f1d17..054afe05 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java @@ -427,7 +427,7 @@ public class TFM_PlayerData player.sendMessage(ChatColor.GRAY + "You are no longer halted."); } - + } public BukkitTask getLockupScheduleID() diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java b/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java index b3c45ccc..92301fe3 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java @@ -171,8 +171,7 @@ public class TFM_ServerInterface kick_message = kick_message + "\nReason: " + ban_entry.getReason(); if (ban_entry.getExpires() != null) { - kick_message = kick_message + "\nYour ban will be removed on " - + date_format.format(ban_entry.getExpires()); + kick_message = kick_message + "\nYour ban will be removed on " + date_format.format(ban_entry.getExpires()); } } @@ -216,8 +215,7 @@ public class TFM_ServerInterface kick_message = kick_message + "\nReason: " + ban_entry.getReason(); if (ban_entry.getExpires() != null) { - kick_message = kick_message + "\nYour ban will be removed on " - + date_format.format(ban_entry.getExpires()); + kick_message = kick_message + "\nYour ban will be removed on " + date_format.format(ban_entry.getExpires()); } } @@ -229,8 +227,7 @@ public class TFM_ServerInterface { if (test_player.equalsIgnoreCase(player_name)) { - event.disallow(PlayerLoginEvent.Result.KICK_BANNED, ChatColor.RED - + "Your username is permanently banned from this server."); + event.disallow(PlayerLoginEvent.Result.KICK_BANNED, ChatColor.RED + "Your username is permanently banned from this server."); return; } } @@ -239,8 +236,7 @@ public class TFM_ServerInterface { if (TFM_Util.fuzzyIpMatch(test_ip, player_ip, 4)) { - event.disallow(PlayerLoginEvent.Result.KICK_BANNED, ChatColor.RED - + "Your IP address is permanently banned from this server."); + event.disallow(PlayerLoginEvent.Result.KICK_BANNED, ChatColor.RED + "Your IP address is permanently banned from this server."); return; } } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_ServiceChecker.java b/src/me/StevenLawson/TotalFreedomMod/TFM_ServiceChecker.java deleted file mode 100644 index 0b06114c..00000000 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_ServiceChecker.java +++ /dev/null @@ -1,207 +0,0 @@ -package me.StevenLawson.TotalFreedomMod; - -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.URL; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import org.apache.commons.lang.WordUtils; -import org.bukkit.ChatColor; -import org.json.simple.JSONObject; -import org.json.simple.JSONValue; - -public class TFM_ServiceChecker -{ - private static final Map SERVICE_MAP = new HashMap(); - public static String check_url = "http://xpaw.ru/mcstatus/status.json"; - public static String version = "1.0"; - public static String last_updated = ""; // On xpaw.ru - - static - { - // <"up", "down", "problem">, <"Online", "Quite Slow", "Error 505", etc>, - SERVICE_MAP.put("website", new String[] - { - "up", "Online", "100.00" - }); - SERVICE_MAP.put("session", new String[] - { - "up", "Online", "100.00" - }); - SERVICE_MAP.put("login", new String[] - { - "up", "Online", "100.00" - }); - SERVICE_MAP.put("account", new String[] - { - "up", "Online", "100.00" - }); - SERVICE_MAP.put("skins", new String[] - { - "up", "Online", "100.00" - }); - SERVICE_MAP.put("realms", new String[] - { - "up", "Online", "100.00" - }); - } - public static Runnable checker = new Runnable() - { - @Override - public void run() - { - runCheck(); - } - }; - - public static void runCheck() - { - TotalFreedomMod.server.getScheduler().runTaskAsynchronously(TotalFreedomMod.plugin, new Runnable() - { - @Override - public void run() - { - try - { - - /* // Nubcakes be 403'ing us >;o - BufferedReader in = new BufferedReader(new InputStreamReader(new URL(check_url).openStream())); - JSONObject service_json = (JSONObject) JSONValue.parse(in.readLine()); - in.close(); - */ - - // Well, lets bypass that! >:D - HttpURLConnection connection = (HttpURLConnection) new URL(check_url).openConnection(); - connection.setRequestMethod("GET"); - connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36"); - connection.setRequestProperty("Host", "xpaw.ru"); - connection.setRequestProperty("Accept", "*/*"); - connection.setUseCaches(false); - connection.setDoInput(true); - connection.setDoOutput(false); - InputStream is = connection.getInputStream(); - BufferedReader in = new BufferedReader(new InputStreamReader(is)); - JSONObject service_json = (JSONObject) JSONValue.parse(in.readLine()); - in.close(); - connection.disconnect(); - - - - version = String.valueOf(service_json.get("v")); - last_updated = (String) service_json.get("last_updated"); - - JSONObject services = (JSONObject) service_json.get("report"); - for (String service : SERVICE_MAP.keySet()) - { - JSONObject service_info = (JSONObject) services.get(service); - SERVICE_MAP.put(service, new String[] - { - (String) service_info.get("status"), - (String) service_info.get("title"), - (String) service_info.get("uptime") - }); - } - } - catch (Exception ex) - { - } - } - }); - } - - public static String getFormattedStatus(String service_name) - { - String[] service = SERVICE_MAP.get(service_name); - String status = ("up".equals(service[0]) ? ChatColor.GREEN - : ("down".equals(service[0]) ? ChatColor.RED : ChatColor.GOLD)).toString(); - - status += service[1] + ChatColor.GRAY + " ("; - - status += (Float.parseFloat(service[2]) >= 96.0 ? ChatColor.GREEN - : (Float.parseFloat(service[2]) > 90.0 ? ChatColor.GOLD : ChatColor.RED)); - - status += service[2] + "%" + ChatColor.GRAY + ")"; - - return ChatColor.GRAY + WordUtils.capitalize(service_name) + ChatColor.WHITE + ": " + status; - } - - public static List getAllStatuses() - { - List statuses = new ArrayList(); - for (String status : SERVICE_MAP.keySet()) - { - statuses.add(getFormattedStatus(status)); - } - return statuses; - } -} - -/* // Mojang status - public static final Map SERVICE_MAP = new HashMap(); - - static - { - SERVICE_MAP.put("minecraft.net", "Minecraft.net"); - SERVICE_MAP.put("login.minecraft.net", "Minecraft Logins"); - SERVICE_MAP.put("session.minecraft.net", "Minecraft Multiplayer Sessions"); - SERVICE_MAP.put("account.mojang.com", "Mojang Accounts Website"); - SERVICE_MAP.put("auth.mojang.com", "Mojang Accounts Login"); - SERVICE_MAP.put("skins.minecraft.net", "Minecraft Skins"); - } - server.getScheduler().runTaskAsynchronously(plugin, new Runnable() - { - @SuppressWarnings("unchecked") - @Override - public void run() - { - try - { - URL mojang_status = new URL("http://status.mojang.com/check"); - BufferedReader in = new BufferedReader(new InputStreamReader(mojang_status.openStream())); - JSONArray status_json = (JSONArray) JSONValue.parse(in.readLine()); - in.close(); - - Map service_status = new HashMap(); - - Iterator status_it = status_json.iterator(); - while (status_it.hasNext()) - { - JSONObject service = (JSONObject) status_it.next(); - Iterator service_it = service.entrySet().iterator(); - while (service_it.hasNext()) - { - Entry pair = (Entry) service_it.next(); - service_status.put(pair.getKey(), (pair.getValue().equals("green") ? Boolean.TRUE : Boolean.FALSE)); - } - } - - List status_output = new ArrayList(); - - Iterator> output_it = service_status.entrySet().iterator(); - while (output_it.hasNext()) - { - Entry pair = output_it.next(); - String service_name = pair.getKey(); - boolean service_online = pair.getValue().booleanValue(); - - if (SERVICE_MAP.containsKey(service_name)) - { - service_name = SERVICE_MAP.get(service_name); - } - - status_output.add(String.format("%s is %s", service_name, (service_online ? ChatColor.GREEN + "ONLINE" + ChatColor.GRAY : ChatColor.RED + "OFFLINE" + ChatColor.GRAY))); - } - - playerMsg(String.format("Mojang Service Status: %s.", StringUtils.join(status_output, ", ")), ChatColor.GRAY); - } - catch (Exception ex) - { - TFM_Log.severe(ex); - } - } - }); - */ diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index 0a3e60ec..06f94d84 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -969,8 +969,7 @@ public class TFM_Util { if (TFM_SuperadminList.isUserSuperadmin(p)) { - p.sendMessage("[" + ChatColor.AQUA + "ADMIN" + ChatColor.WHITE + "] " + ChatColor.DARK_RED - + name + ": " + ChatColor.AQUA + message); + p.sendMessage("[" + ChatColor.AQUA + "ADMIN" + ChatColor.WHITE + "] " + ChatColor.DARK_RED + name + ": " + ChatColor.AQUA + message); } } } @@ -1035,7 +1034,6 @@ 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, @@ -1049,8 +1047,8 @@ public class TFM_Util ChatColor.RED, ChatColor.LIGHT_PURPLE, ChatColor.YELLOW); - private static final Random RANDOM = new Random(); + public static ChatColor randomChatColor() { return COLOR_POOL.get(RANDOM.nextInt(COLOR_POOL.size())); diff --git a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java index c49a3724..39c63581 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java +++ b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java @@ -28,35 +28,35 @@ import org.mcstats.Metrics; public class TotalFreedomMod extends JavaPlugin { public static final Server server = Bukkit.getServer(); - + // public static final long HEARTBEAT_RATE = 5L; //Seconds public static final long SERVICE_CHECKER_RATE = 30L; - + // public static final String CONFIG_FILE = "config.yml"; public static final String SUPERADMIN_FILE = "superadmin.yml"; public static final String PERMBAN_FILE = "permban.yml"; public static final String PROTECTED_AREA_FILE = "protectedareas.dat"; public static final String SAVED_FLAGS_FILE = "savedflags.dat"; - + // public static final String COMMAND_PATH = "me.StevenLawson.TotalFreedomMod.Commands"; public static final String COMMAND_PREFIX = "Command_"; - + // public static final String MSG_NO_PERMS = ChatColor.YELLOW + "You do not have permission to use this command."; public static final String YOU_ARE_OP = ChatColor.YELLOW + "You are now op!"; public static final String YOU_ARE_NOT_OP = ChatColor.YELLOW + "You are no longer op!"; public static final String CAKE_LYRICS = "But there's no sense crying over every mistake. You just keep on trying till you run out of cake."; public static final String NOT_FROM_CONSOLE = "This command may not be used from the console."; - + // public static boolean allPlayersFrozen = false; public static int freezePurgeEventId = 0; public static int mutePurgeEventId = 0; public static Map fuckoffEnabledFor = new HashMap(); - + // public static String pluginVersion = ""; public static String buildNumber = ""; public static String buildDate = ""; public static String pluginName = ""; - + // public static TotalFreedomMod plugin = null; public static File plugin_file = null; @@ -106,13 +106,8 @@ public class TotalFreedomMod extends JavaPlugin // Heartbeat server.getScheduler().scheduleSyncRepeatingTask(this, new TFM_Heartbeat(this), HEARTBEAT_RATE * 20L, HEARTBEAT_RATE * 20L); - // Service uptime checker - server.getScheduler().scheduleSyncRepeatingTask(this, TFM_ServiceChecker.checker, SERVICE_CHECKER_RATE * 20L, 1 * 20L); - TFM_CommandLoader.getInstance().scan(); - - // metrics @ http://mcstats.org/plugin/TotalFreedomMod try { @@ -124,8 +119,7 @@ public class TotalFreedomMod extends JavaPlugin TFM_Log.warning("Failed to submit metrics data: " + ex.getMessage()); } - TFM_Log.info("Plugin Enabled - Version: " + TotalFreedomMod.pluginVersion + "." - + TotalFreedomMod.buildNumber + " by Madgeek1450 and DarthSalamon"); + TFM_Log.info("Plugin Enabled - Version: " + TotalFreedomMod.pluginVersion + "." + TotalFreedomMod.buildNumber + " by Madgeek1450 and DarthSalamon"); } @Override @@ -201,7 +195,7 @@ public class TotalFreedomMod extends JavaPlugin return true; } - + // public static boolean allowFirePlace = false; public static Boolean allowFireSpread = false; public static Boolean allowLavaDamage = false; @@ -292,7 +286,7 @@ public class TotalFreedomMod extends JavaPlugin TFM_Log.severe("Error loading main config: " + ex.getMessage()); } } - + // @Deprecated public static List superadmins = new ArrayList(); @Deprecated @@ -313,7 +307,7 @@ public class TotalFreedomMod extends JavaPlugin TFM_Log.severe("Error loading superadmin list: " + ex.getMessage()); } } - + // public static List permbanned_players = new ArrayList(); public static List permbanned_ips = new ArrayList(); From 3c80aaa7c4309bf38be9d5cc9bdf3e179d3b3bb2 Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Thu, 11 Jul 2013 08:18:10 -0400 Subject: [PATCH 71/77] Update CONTRIBUTING.md --- CONTRIBUTING.md | 49 ++++++++++++++++++------------------------------- 1 file changed, 18 insertions(+), 31 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 22960fd7..2cdc3d1c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,63 +1,50 @@ -# How to contribute +# Contributing to TotalFreedomMod # +TotalFreedomMod is a CraftBukkit server plugin designed primarily to support the [Official TotalFreedom Minecraft Server](http://totalfreedom.me/). However, it can be used in a variety of other configurations with minimal fuss. -TotalFreedomMod aims to be a fully functional all-op server mod which works in -a large range of configurations. In order to be as flexible as possible on the -server-end, we encourage contributing to TotalFreedomMod by making 'pull-requests' -to this repository. - -## Getting Started +For those who wish to contribute, we encourage you to fork the repository and submit pull requests. Below you will find guidelines that will explain this process in further detail. +## Getting Started ## * Make sure you have a [GitHub account](https://github.com/signup/free) * If the issue is a bug, submit a ticket for it, assuming one does not already exist. * Clearly describe the issue including steps to reproduce it. * Make sure you fill in the earliest version that you know has the issue. * Fork the repository on GitHub -## Making Changes - +## Making Changes ## * Create a topic branch from where you want to base your work. * This is usually the master branch. - * Only target release branches if you are certain your addition must be on that - branch. - * To quickly create a topic branch based on master; `git checkout -b contribution` - Please avoid working directly on the `master` branch. + * Only target release branches if you are certain your addition must be on that branch. + * To quickly create a topic branch based on master; `git checkout -b contribution` - Please avoid working directly on the `master` branch. * Make changes and commit where necessary. * Check for unnecessary whitespace with `git diff --check` before committing. * Make sure your commit messages are in line with those which are already made. -* Make sure your changes build (*and work!*). +* Make sure your changes build (and work!). -## Tips on getting your pull request accepted +## Tips - How To Get Your Pull Request Accepted ## * Make sure your changes work and compile without difficulty. -* Make sure your change adds something useful, do not add commands to micromanage - the server. (ie: Shorthands for a collection of commands) +* Make sure your change adds something useful, do not add commands to micromanage the server. (ie: Shorthands for a collection of commands) + * __Commands that make use of `org.bukkit.Server.dispatchCommand()` will probably be rejected.__ * Features must be in line the general idea of "Total Freedom". -* Changes must be directed towards the main "TotalFreedom" server. Adding names such - as the name of your own TotalFreedom-like server will get your pull request denied. +* Changes must be directed towards the main "TotalFreedom" server. Adding names such as the name of your own TotalFreedom-like server will get your pull request denied. * Do not add yourself to the developer list. * Ensure that you use the correct whitespace-style. That is: 4 spaces as indentation. -* Please make sure your changes are written such as other features would be. Eg: commands - have their own class and extend TFM_Command. -* Make sure your code is written in the [Allman style](http://en.wikipedia.org/wiki/Indent_style#Allman_style). +* Please make sure your changes are written such as other features would be. Eg: commands have their own class and extend TFM_Command. +* __Make sure your code is written in the [Allman style](http://en.wikipedia.org/wiki/Indent_style#Allman_style).__ * Do not increment the version number. -* If you want to add multiple changes, please make one pull request per change. This - way, it's easier to accept your changes faster and won't block the other changes if there - is an issue with a specific line of code. +* If you want to add multiple changes, please make one pull request per change. This way, it's easier to accept your changes faster and won't block the other changes if there is an issue with a specific line of code. * Please make sure there are no bugs in your code. * Please avoid having to add files in the main namespace where possible. -* Make sure all changes work before you commit these, this avoids having multiple - unnecessary commits. +* Make sure all changes work before you commit these, this avoids having multiple unnecessary commits. * Please refrain from using an excessive amount of commits. As few as possible is generally the best. * Please do not spread your addition over several pull-requests. -## Submitting Changes - +## Submitting Your Changes ## * Push your changes to a topic branch in your fork of the repository. * Submit a pull request to this repository. * Explain in detail what each one of your commits changes and point out any big changes. * Wait as a developer evaluates your changes. -# Additional Resources - +## Additional Resources ## * [TotalFreedom information](http://totalfreedom.me) * [TotalFreedom forums](http://totalfreedom.boards.net) * [Bug tracker](https://github.com/TotalFreedom/TotalFreedomMod/issues) From fa1c9a255c1953f6c86a4c06e8c7b9486f55bc3f Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Thu, 11 Jul 2013 08:43:48 -0400 Subject: [PATCH 72/77] Update and rename LICENCE.md to LICENSE.md --- LICENCE.md | 16 ---------------- LICENSE.md | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 16 deletions(-) delete mode 100644 LICENCE.md create mode 100644 LICENSE.md diff --git a/LICENCE.md b/LICENCE.md deleted file mode 100644 index d1cdfc16..00000000 --- a/LICENCE.md +++ /dev/null @@ -1,16 +0,0 @@ -# Legal - -TotalFreedomMod by Madgeek1450 and DarthSalamon is an effort to create an opensource plugin to effectively run a "Total Freedom" like all-Op server. It consists of over 85 custom coded commands and a large variety of distinguishable features not included in any other plugin. The plugin has since its beginning grown immensely. Together with the main server "TotalFreedom" (http://totalfreedom.me) TotalFreedomMod has a long-standing reputation of effectiveness whilst maintaining a clear feel of openness towards the administrators and the players themselves. - -## License - -TotalFreedomMod sourcecode is freely available under the GNU GPLv3 License with a few restrictions in place. The license is available here: http://www.gnu.org/licenses/gpl.txt - -The few restrictions are in place to make sure that credit is given to the original authors who remain the maintainers of the plugin and it's sourcecode. - -These are the restrictions under which the sourcecode is licensed: - * A un-edited copy of this license must always be included with this sourcecode. - * TotalFreedomMod sourcecode and its derrivations are freely distributable between anyone who choses to download it. - * You may not remove the keywords "Madgeek1450", "StevenLawson", "DarthSalamon" and "jeromsar" from any part of the sourcecode. - * However, compiled binaries (*.jar's) are not to be distributed. If you wish to obtain a copy of TotalFreedomMod you must compile the original sourcecode or it's derivations yourself using an IDE like netbeans. Official superadmins and above of the TotalFreedom (totalfreedom.me) server may obtain a compiled libary with the same limitations as described in this document. - * Any conditions on this license may be waived by any of the official developers. diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 00000000..6c3d12e9 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,14 @@ +# Legal Overview # +TotalFreedomMod, by StevenLawson (Madgeek1450) and Jerom van der Sar (DarthSalamon), is an effort to create an open source plugin to effectively run a "Total Freedom" like all-OP Minecraft server. It consists of over 85 custom coded commands and a large variety of distinguishable features not included in any other plugin. The plugin has since its beginning grown immensely. Together, with the main [TotalFreedom](http://totalfreedom.me) server, TotalFreedomMod has a long-standing reputation of effectiveness whilst maintaining a clear feeling of openness towards the administrators and the players themselves. + +## License ## +TotalFreedomMod is primarily derived from the Bukkit and CraftBukkit library and server, respectively. Therefore, we have chosen for it to inherit the GNU GPLv3 License as used by those programs. This license is available at http://www.gnu.org/licenses/gpl-3.0.txt + +We do, however, ask that you comply by several restrictions. These restrictions are in place to make sure that credit is given to the original authors, who remain the maintainers of the plugin and its source code. +* A un-edited copy of this LICENSE.md shall always be included with this source code. +* TotalFreedomMod source code and its derivations shall be freely distributable between anyone who chooses to download it. +* You shall not remove the keywords "Madgeek1450", "StevenLawson", "DarthSalamon" or "jeromsar" from any part of the source code. +* Compiled binaries (*.jar's) shall not to be distributed. + * If you wish to obtain a copy of TotalFreedomMod you must compile the original source code or it's derivations yourself. + * The primary developers, StevenLawson (Madgeek1450) and Jerom van der Sar (DarthSalamon), may choose to provide official binaries on a discretionary basis. +* Any restrictions listed here may be waived by any of the above mentioned primary developers. From f2aaba17de1c00f32906c98733939ddb173cbc68 Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Thu, 11 Jul 2013 12:48:25 -0400 Subject: [PATCH 73/77] Update README.md --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index be8f2247..19cdc7a4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ -TotalFreedomMod -=============== +# TotalFreedomMod # -TotalFreedomMod is a CraftBukkit mod for the TotalFreedom server. +TotalFreedomMod is a CraftBukkit server plugin designed primarily to support the [Official TotalFreedom Minecraft Server](http://totalfreedom.me/). However, you are more than welcome to adapt the source for your own server. -Information about the TotalFreedom server can be found at http://totalfreedom.me/ +This plugin was originally coded by StevenLawson (Madgeek1450), with Jerom van der Sar (DarthSalamon) becoming heavily involved in its development some time later. It consists of over 85 custom coded commands and a large variety of distinguishable features not included in any other plugin. The plugin has since its beginning grown immensely. Together, with the main TotalFreedom server, TotalFreedomMod has a long-standing reputation of effectiveness whilst maintaining a clear feeling of openness towards the administrators and the players themselves. + +Please see [CONTRIBUTING.md](CONTRIBUTING.md) if you are interested in developing TotalFreedomMod. For information on how TotalFreedomMod is licensed, please see [LICENSE.md](LICENSE.md). From 3dc51715c5e48d363d656b185ce61e05c7a74214 Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Thu, 11 Jul 2013 12:50:23 -0400 Subject: [PATCH 74/77] Update LICENSE.md --- LICENSE.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index 6c3d12e9..8d652832 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,7 +1,4 @@ -# Legal Overview # -TotalFreedomMod, by StevenLawson (Madgeek1450) and Jerom van der Sar (DarthSalamon), is an effort to create an open source plugin to effectively run a "Total Freedom" like all-OP Minecraft server. It consists of over 85 custom coded commands and a large variety of distinguishable features not included in any other plugin. The plugin has since its beginning grown immensely. Together, with the main [TotalFreedom](http://totalfreedom.me) server, TotalFreedomMod has a long-standing reputation of effectiveness whilst maintaining a clear feeling of openness towards the administrators and the players themselves. - -## License ## +# TotalFreedomMod License # TotalFreedomMod is primarily derived from the Bukkit and CraftBukkit library and server, respectively. Therefore, we have chosen for it to inherit the GNU GPLv3 License as used by those programs. This license is available at http://www.gnu.org/licenses/gpl-3.0.txt We do, however, ask that you comply by several restrictions. These restrictions are in place to make sure that credit is given to the original authors, who remain the maintainers of the plugin and its source code. From 4903f009b38d347ce910db58f52467607e5a3d28 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 11 Jul 2013 14:51:08 -0400 Subject: [PATCH 75/77] Add Pet Protection. Cleaned up config file a bit. --- src/config.yml | 41 ++++++++++--------- .../Commands/Command_petprotect.java | 30 ++++++++++++++ .../Listener/TFM_EntityListener.java | 13 ++++++ .../Listener/TFM_PlayerListener.java | 1 - .../TotalFreedomMod/TFM_Util.java | 5 --- .../TotalFreedomMod/TotalFreedomMod.java | 7 ++-- 6 files changed, 68 insertions(+), 29 deletions(-) create mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/Command_petprotect.java diff --git a/src/config.yml b/src/config.yml index 2325753f..a582ff69 100644 --- a/src/config.yml +++ b/src/config.yml @@ -50,26 +50,24 @@ explosiveRadius: 4.0 # blocked_commands: # Disabled commands - - 'n:b:/time:Server-side time changing is disabled. Please use /ptime to set your own personal time.' - - 'n:b:/md:This server now uses DisguiseCraft instead of MobDisguise. Type /d to disguise and /u to undisguise.' - - 'n:b:/gamemode:Use /creative and /survival to set your gamemode.' - - 'n:b:/ban:_' - - 'n:b:/pardon:_' - - 'n:b:/toggledownfall:_' + - n:b:/time:Server-side time changing is disabled. Please use /ptime to set your own personal time. + - n:b:/md:This server now uses DisguiseCraft instead of MobDisguise. Type /d to disguise and /u to undisguise. + - n:b:/gamemode:Use /creative and /survival to set your gamemode. + - n:b:/ban:_ + - n:b:/pardon:_ + - n:b:/toggledownfall:_ # Superadmin commands - - 's:b:/kick:_' - - 's:b:/socialspy:_' - - 's:b:/kill:_' - - 's:a:/stop' - - 's:a:/reload' - - 's:a:/nuke' - - 's:a:/save-all' - - 's:a:/save-on' - - 's:a:/save-off' - - 's:a:/clearhistory' - - 's:a:/butcher' - - 's:a://butcher' + - s:b:/kick:_ + - s:b:/socialspy:_ + - s:b:/kill:_ + - s:b:/clearhistory:_ + - s:a:/stop + - s:a:/reload + - s:a:/nuke + - s:a:/save-all + - s:a:/save-on + - s:a:/save-off # Automatically wipe dropped objects: auto_wipe: true @@ -125,5 +123,8 @@ host_sender_names: # TwitterBot - Used to allow superadmins to verify themselves using twitter twitterbot_enabled: false -twitterbot_url: 'http://tftwitter.darthcraft.net/' -twitterbot_secret: '' +twitterbot_url: +twitterbot_secret: + +# Pet Protect - Prevent tamed pets from being killed. +pet_protect_enabled: true diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_petprotect.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_petprotect.java new file mode 100644 index 00000000..31851dab --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_petprotect.java @@ -0,0 +1,30 @@ +package me.StevenLawson.TotalFreedomMod.Commands; + +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.SUPER, source = SourceType.BOTH) +@CommandParameters(description = "Enable/disable tamed pet protection.", usage = "/ ") +public class Command_petprotect extends TFM_Command +{ + @Override + public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + if (args.length != 1) + { + return false; + } + + TotalFreedomMod.petProtectEnabled = !TFM_Util.isStopCommand(args[0]); + + TFM_Util.adminAction( + sender.getName(), + "Tamed pet protection is now " + (TotalFreedomMod.petProtectEnabled ? "enabled" : "disabled") + ".", + false); + + return true; + } +} diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_EntityListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_EntityListener.java index d8e909a9..737fe8b7 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_EntityListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_EntityListener.java @@ -50,6 +50,19 @@ public class TFM_EntityListener implements Listener case LAVA: { if (!TotalFreedomMod.allowLavaDamage) + { + event.setCancelled(true); + return; + } + } + } + + if (TotalFreedomMod.petProtectEnabled) + { + Entity entity = event.getEntity(); + if (entity instanceof Tameable) + { + if (((Tameable) entity).isTamed()) { event.setCancelled(true); } diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index ba0c2885..1b1f90f6 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -90,7 +90,6 @@ public class TFM_PlayerListener implements Listener event.setCancelled(true); } } - } break; } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index 6762e356..17716b77 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -2,7 +2,6 @@ package me.StevenLawson.TotalFreedomMod; import java.io.*; import java.lang.reflect.Field; -import java.net.URI; import java.net.URL; import java.nio.channels.Channels; import java.nio.channels.ReadableByteChannel; @@ -13,8 +12,6 @@ import java.util.jar.JarFile; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; -import java.util.zip.ZipOutputStream; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.exception.ExceptionUtils; import org.bukkit.*; @@ -305,8 +302,6 @@ public class TFM_Util return TFM_Util.mobtypes.get(mobname); } - - private static void copy(InputStream in, OutputStream out) throws IOException { byte[] buffer = new byte[1024]; diff --git a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java index 39c63581..0d066446 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java +++ b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java @@ -158,8 +158,7 @@ public class TotalFreedomMod extends JavaPlugin try { ClassLoader classLoader = TotalFreedomMod.class.getClassLoader(); - dispatcher = (TFM_Command) classLoader.loadClass(String.format("%s.%s%s", COMMAND_PATH, COMMAND_PREFIX, - cmd.getName().toLowerCase())).newInstance(); + dispatcher = (TFM_Command) classLoader.loadClass(String.format("%s.%s%s", COMMAND_PATH, COMMAND_PREFIX, cmd.getName().toLowerCase())).newInstance(); dispatcher.setup(this, sender, dispatcher.getClass()); } catch (Throwable ex) @@ -232,8 +231,9 @@ public class TotalFreedomMod extends JavaPlugin public static double autoProtectRadius = 25.0D; public static List host_sender_names = Arrays.asList("rcon", "remotebukkit"); public static boolean twitterbotEnabled = false; - public static String twitterbotUrl = "http://tftwitter.darthcraft.net/"; + public static String twitterbotUrl = ""; public static String twitterbotSecret = ""; + public static boolean petProtectEnabled = true; public static void loadMainConfig() { @@ -280,6 +280,7 @@ public class TotalFreedomMod extends JavaPlugin twitterbotEnabled = config.getBoolean("twitterbot_enabled", twitterbotEnabled); twitterbotUrl = config.getString("twitterbot_url", twitterbotUrl); twitterbotSecret = config.getString("twitterbot_secret", twitterbotSecret); + petProtectEnabled = config.getBoolean("pet_protect_enabled", petProtectEnabled); } catch (Exception ex) { From aaf96d00a9a1712b3097502350ec92c29266cbf0 Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Thu, 11 Jul 2013 18:21:23 -0400 Subject: [PATCH 76/77] Revert to old login logic. Ban messages weren't working right. --- .../TotalFreedomMod/TFM_ServerInterface.java | 42 ++++++------------- 1 file changed, 13 insertions(+), 29 deletions(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java b/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java index 92301fe3..75e89b50 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java @@ -121,6 +121,8 @@ public class TFM_ServerInterface public static void handlePlayerLogin(PlayerLoginEvent event) { + // this should supersede all other onPlayerLogin authentication on the TFM server. + // when using the TFM CraftBukkit, CraftBukkit itself should not do any of its own authentication. final Server server = TotalFreedomMod.plugin.getServer(); @@ -135,8 +137,7 @@ public class TFM_ServerInterface if (player_name.trim().length() <= 2) { - event.disallow(PlayerLoginEvent.Result.KICK_OTHER, - "Your username is too short (must be at least 3 characters long)."); + event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Your username is too short (must be at least 3 characters long)."); return; } else if (Pattern.compile("[^a-zA-Z0-9\\-\\.\\_]").matcher(player_name).find()) @@ -145,8 +146,7 @@ public class TFM_ServerInterface return; } - // not safe to use TFM_Util.isUserSuperadmin for player logging in because p.getAddress() - // will return a null until after player login. + // not safe to use TFM_Util.isUserSuperadmin for player logging in because p.getAddress() will return a null until after player login. boolean is_superadmin; if (server.getOnlineMode()) { @@ -271,21 +271,8 @@ public class TFM_ServerInterface } } } - else // if user is superadmin + else { - // force-allow superadmins to log in - event.allow(); - - if (isIPBanned(player_ip)) - { - unbanIP(player_ip); - } - - if (isNameBanned(player_name)) - { - unbanUsername(player_name); - } - for (Player test_player : server.getOnlinePlayers()) { if (test_player.getName().equalsIgnoreCase(player_name)) @@ -294,22 +281,19 @@ public class TFM_ServerInterface } } - if (server.getOnlinePlayers().length >= server.getMaxPlayers()) + boolean can_kick = true; // if the server is full of superadmins, however unlikely that might be, this will prevent an infinite loop. + while (server.getOnlinePlayers().length >= server.getMaxPlayers() && can_kick) { - for (Player op : server.getOnlinePlayers()) + can_kick = false; + for (Player test_player : server.getOnlinePlayers()) { - if (!TFM_SuperadminList.isUserSuperadmin(op)) + if (!TFM_SuperadminList.isUserSuperadmin(test_player)) { - op.kickPlayer("You have been kicked to free up space for an admin"); - return; + can_kick = true; + test_player.kickPlayer("You have been kicked to free up room for an admin."); + break; } } - - // if the server is full of superadmins, however unlikely that might be, this will prevent an infinite loop. - if (server.getOnlinePlayers().length >= server.getMaxPlayers()) - { - event.disallow(PlayerLoginEvent.Result.KICK_FULL, "Sorry, this server is full"); - } } } } From b9bd0461057bad8623fcb7f40f97f99a8e57dfb8 Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Thu, 11 Jul 2013 20:35:09 -0400 Subject: [PATCH 77/77] Changed WorldEdit API access method. --- appinfo.properties | 6 +- buildnumber.properties | 4 +- .../TotalFreedomMod/TFM_WorldEditBridge.java | 98 +++++++++---------- 3 files changed, 49 insertions(+), 59 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index 9a06d039..f444ea55 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Wed, 10 Jul 2013 21:43:33 -0400 +#Thu, 11 Jul 2013 20:20:19 -0400 program.VERSION=2.21 -program.BUILDNUM=300 -program.BUILDDATE=07/10/2013 09\:43 PM +program.BUILDNUM=301 +program.BUILDDATE=07/11/2013 08\:20 PM diff --git a/buildnumber.properties b/buildnumber.properties index 3291c3a3..a6b191af 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Wed Jul 10 21:43:33 EDT 2013 -build.number=301 +#Thu Jul 11 20:20:19 EDT 2013 +build.number=302 diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_WorldEditBridge.java b/src/me/StevenLawson/TotalFreedomMod/TFM_WorldEditBridge.java index 722d29c2..b52baef0 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_WorldEditBridge.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_WorldEditBridge.java @@ -2,8 +2,6 @@ package me.StevenLawson.TotalFreedomMod; import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.bukkit.BukkitPlayer; -import com.sk89q.worldedit.bukkit.BukkitServerInterface; -import com.sk89q.worldedit.bukkit.WorldEditAPI; import com.sk89q.worldedit.bukkit.WorldEditPlugin; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -12,8 +10,6 @@ import org.bukkit.plugin.Plugin; public class TFM_WorldEditBridge { private WorldEditPlugin worldEditPlugin = null; - private WorldEditAPI worldEditAPI = null; - private BukkitServerInterface bukkitServerInterface = null; private TFM_WorldEditBridge() { @@ -23,57 +19,56 @@ public class TFM_WorldEditBridge { if (this.worldEditPlugin == null) { - Plugin we = Bukkit.getServer().getPluginManager().getPlugin("WorldEdit"); - if (we != null) + try { - if (we instanceof WorldEditPlugin) + Plugin we = Bukkit.getServer().getPluginManager().getPlugin("WorldEdit"); + if (we != null) { - this.worldEditPlugin = (WorldEditPlugin) we; + if (we instanceof WorldEditPlugin) + { + this.worldEditPlugin = (WorldEditPlugin) we; + } } } + catch (Exception ex) + { + TFM_Log.severe(ex); + } } - return this.worldEditPlugin; } - public WorldEditAPI getWorldEditAPI() - { - if (this.worldEditAPI == null) - { - WorldEditPlugin wep = getWorldEditPlugin(); - if (wep != null) - { - this.worldEditAPI = new WorldEditAPI(wep); - } - } - - return this.worldEditAPI; - } - - public BukkitServerInterface getBukkitServerInterface() - { - if (this.bukkitServerInterface == null) - { - WorldEditPlugin wep = this.getWorldEditPlugin(); - if (wep != null) - { - this.bukkitServerInterface = new BukkitServerInterface(wep, Bukkit.getServer()); - } - } - - return this.bukkitServerInterface; - } - public BukkitPlayer getBukkitPlayer(Player p) { - WorldEditPlugin wep = this.getWorldEditPlugin(); - BukkitServerInterface bsi = this.getBukkitServerInterface(); - - if (wep != null && bsi != null) + try { - return new BukkitPlayer(wep, bsi, p); + WorldEditPlugin wep = this.getWorldEditPlugin(); + if (wep != null) + { + return wep.wrapPlayer(p); + } } + catch (Exception ex) + { + TFM_Log.severe(ex); + } + return null; + } + public LocalSession getPlayerSession(Player p) + { + try + { + WorldEditPlugin wep = this.getWorldEditPlugin(); + if (wep != null) + { + return wep.getSession(p); + } + } + catch (Exception ex) + { + TFM_Log.severe(ex); + } return null; } @@ -81,13 +76,12 @@ public class TFM_WorldEditBridge { try { - WorldEditAPI api = this.getWorldEditAPI(); - if (api != null) + LocalSession session = getPlayerSession(p); + if (session != null) { - LocalSession session = api.getSession(p); - if (session != null) + BukkitPlayer bukkitPlayer = this.getBukkitPlayer(p); + if (bukkitPlayer != null) { - BukkitPlayer bukkitPlayer = this.getBukkitPlayer(p); for (int i = 0; i < count; i++) { session.undo(session.getBlockBag(bukkitPlayer), bukkitPlayer); @@ -105,14 +99,10 @@ public class TFM_WorldEditBridge { try { - WorldEditAPI api = this.getWorldEditAPI(); - if (api != null) + LocalSession session = getPlayerSession(p); + if (session != null) { - LocalSession session = api.getSession(p); - if (session != null) - { - session.setBlockChangeLimit(limit); - } + session.setBlockChangeLimit(limit); } } catch (Exception ex)