From 9ae46773071b201311704922ca1230d687eecf00 Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Sat, 8 Dec 2012 22:42:29 -0500 Subject: [PATCH] Consolidate any calls to net.minecraft.server classes to new TFM_ServerInterface class. Fix use of deprecated async calls. --- .../Commands/Command_doom.java | 9 +- .../Commands/Command_gadmin.java | 9 +- .../Commands/Command_glist.java | 130 ++++---- .../Commands/Command_gtfo.java | 7 +- .../Commands/Command_lockup.java | 13 +- .../Commands/Command_onlinemode.java | 7 +- .../Commands/Command_permban.java | 2 +- .../Commands/Command_status.java | 97 +++++- .../Commands/Command_tempban.java | 5 +- .../Commands/Command_terminal.java | 2 +- .../Commands/Command_tfbanlist.java | 8 +- .../Commands/Command_tfipbanlist.java | 8 +- .../Commands/Command_whitelist.java | 8 +- .../Listener/TFM_PlayerListener.java | 184 +---------- .../TotalFreedomMod/TFM_ServerInterface.java | 300 ++++++++++++++++++ .../TotalFreedomMod/TFM_UserInfo.java | 17 +- .../TotalFreedomMod/TFM_Util.java | 75 +---- .../TotalFreedomMod/TotalFreedomMod.java | 2 +- 18 files changed, 516 insertions(+), 367 deletions(-) create mode 100644 src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_doom.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_doom.java index 01aa5be7..dfc4f4fe 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_doom.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_doom.java @@ -1,5 +1,6 @@ package me.StevenLawson.TotalFreedomMod.Commands; +import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; import org.bukkit.ChatColor; @@ -49,10 +50,10 @@ public class Command_doom extends TFM_Command p.setOp(false); // ban IP - TFM_Util.banIP(IP, null, null, null); + TFM_ServerInterface.banIP(IP, null, null, null); // ban name - TFM_Util.banUsername(p.getName(), null, null, null); + TFM_ServerInterface.banUsername(p.getName(), null, null, null); // set gamemode to survival p.setGameMode(GameMode.SURVIVAL); @@ -67,7 +68,7 @@ public class Command_doom extends TFM_Command // generate explosion p.getWorld().createExplosion(p.getLocation(), 4F); - server.getScheduler().scheduleAsyncDelayedTask(plugin, new Runnable() + server.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() { @Override public void run() @@ -80,7 +81,7 @@ public class Command_doom extends TFM_Command } }, 40L); // 2 seconds - server.getScheduler().scheduleAsyncDelayedTask(plugin, new Runnable() + server.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() { @Override public void run() diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gadmin.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gadmin.java index 743f1882..c0b63032 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gadmin.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gadmin.java @@ -1,5 +1,6 @@ package me.StevenLawson.TotalFreedomMod.Commands; +import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface; import me.StevenLawson.TotalFreedomMod.TFM_UserInfo; import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; @@ -45,7 +46,7 @@ public class Command_gadmin extends TFM_Command } else if (mode.equals("nameban")) { - TFM_Util.banUsername(p.getName(), null, null, null); + TFM_ServerInterface.banUsername(p.getName(), null, null, null); TFM_Util.adminAction(sender.getName(), String.format("Banning Name: %s.", p.getName()), true); p.kickPlayer("Username banned by Administrator."); } @@ -58,7 +59,7 @@ public class Command_gadmin extends TFM_Command user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]); } TFM_Util.adminAction(sender.getName(), String.format("Banning IP: %s.", p.getName(), user_ip), true); - TFM_Util.banIP(user_ip, null, null, null); + TFM_ServerInterface.banIP(user_ip, null, null, null); p.kickPlayer("IP address banned by Administrator."); } else if (mode.equals("ban")) @@ -70,8 +71,8 @@ public class Command_gadmin extends TFM_Command user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]); } TFM_Util.adminAction(sender.getName(), String.format("Banning Name: %s, IP: %s.", p.getName(), user_ip), true); - TFM_Util.banIP(user_ip, null, null, null); - TFM_Util.banUsername(p.getName(), null, null, null); + TFM_ServerInterface.banIP(user_ip, null, null, null); + TFM_ServerInterface.banUsername(p.getName(), null, null, null); p.kickPlayer("IP and username banned by Administrator."); } else if (mode.equals("op")) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_glist.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_glist.java index dc3b45bd..72917409 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_glist.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_glist.java @@ -2,6 +2,8 @@ package me.StevenLawson.TotalFreedomMod.Commands; import java.util.ArrayList; import java.util.List; +import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface; +import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_UserList; import me.StevenLawson.TotalFreedomMod.TFM_UserList.TFM_UserListEntry; import me.StevenLawson.TotalFreedomMod.TFM_Util; @@ -26,7 +28,14 @@ public class Command_glist extends TFM_Command if (args[0].equalsIgnoreCase("purge")) { //Purge does not clear the banlist! This is not for clearing bans! This is for clearing the yaml file that stores the player/IP database! - TFM_UserList.getInstance(plugin).purge(); + if (TFM_SuperadminList.isSeniorAdmin(sender)) + { + TFM_UserList.getInstance(plugin).purge(); + } + else + { + TFM_Util.playerMsg(sender, "Only Senior Admins may purge the userlist."); + } return true; } else @@ -34,79 +43,78 @@ public class Command_glist extends TFM_Command return false; } } - else if (args.length != 2) + else if (args.length == 2) { - return false; - } + String username; + List ip_addresses = new ArrayList(); - String username; - List ip_addresses = new ArrayList(); - - try - { - Player p = getPlayer(args[1]); - - username = p.getName(); - ip_addresses.add(p.getAddress().getAddress().getHostAddress()); - } - catch (CantFindPlayerException ex) - { - TFM_UserListEntry entry = TFM_UserList.getInstance(plugin).getEntry(args[1]); - - if (entry == null) + try { - sender.sendMessage("Can't find that user. If target is not logged in, make sure that you spelled the name exactly."); - return true; + Player p = getPlayer(args[1]); + + username = p.getName(); + ip_addresses.add(p.getAddress().getAddress().getHostAddress()); + } + catch (CantFindPlayerException ex) + { + TFM_UserListEntry entry = TFM_UserList.getInstance(plugin).getEntry(args[1]); + + if (entry == null) + { + TFM_Util.playerMsg(sender, "Can't find that user. If target is not logged in, make sure that you spelled the name exactly."); + return true; + } + + username = entry.getUsername(); + ip_addresses = entry.getIpAddresses(); } - username = entry.getUsername(); - ip_addresses = entry.getIpAddresses(); - } - - String mode = args[0].toLowerCase(); - if (mode.equalsIgnoreCase("ban")) - { - TFM_Util.adminAction(sender.getName(), "Banning " + username + " and IPs: " + StringUtils.join(ip_addresses, ","), true); - - Player p = server.getPlayerExact(username); - if (p != null) + String mode = args[0].toLowerCase(); + if (mode.equalsIgnoreCase("ban")) { - //p.setBanned(true); - TFM_Util.banUsername(p.getName(), null, null, null); - p.kickPlayer("IP and username banned by Administrator."); + TFM_Util.adminAction(sender.getName(), "Banning " + username + " and IPs: " + StringUtils.join(ip_addresses, ","), true); + + Player p = server.getPlayerExact(username); + if (p != null) + { + TFM_ServerInterface.banUsername(p.getName(), null, null, null); + p.kickPlayer("IP and username banned by Administrator."); + } + else + { + TFM_ServerInterface.banUsername(username, null, null, null); + } + + for (String ip_address : ip_addresses) + { + TFM_ServerInterface.banIP(ip_address, null, null, null); + String[] ip_address_parts = ip_address.split("\\."); + TFM_ServerInterface.banIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*", null, null, null); + } + } + else if (mode.equalsIgnoreCase("unban") || mode.equalsIgnoreCase("pardon")) + { + TFM_Util.adminAction(sender.getName(), "Unbanning " + username + " and IPs: " + StringUtils.join(ip_addresses, ","), true); + + TFM_ServerInterface.unbanUsername(username); + + for (String ip_address : ip_addresses) + { + TFM_ServerInterface.unbanIP(ip_address); + String[] ip_address_parts = ip_address.split("\\."); + TFM_ServerInterface.unbanIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*"); + } } else { - //server.getOfflinePlayer(username).setBanned(true); - TFM_Util.banUsername(username, null, null, null); + return false; } - for (String ip_address : ip_addresses) - { - //server.banIP(ip_address); - TFM_Util.banIP(ip_address, null, null, null); - String[] ip_address_parts = ip_address.split("\\."); - //server.banIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*"); - TFM_Util.banIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*", null, null, null); - } + return true; } - else if (mode.equalsIgnoreCase("unban")) + else { - TFM_Util.adminAction(sender.getName(), "Unbanning " + username + " and IPs: " + StringUtils.join(ip_addresses, ","), true); - - //server.getOfflinePlayer(username).setBanned(false); - TFM_Util.unbanUsername(username); - - for (String ip_address : ip_addresses) - { - //server.unbanIP(ip_address); - TFM_Util.unbanIP(ip_address); - String[] ip_address_parts = ip_address.split("\\."); - //server.unbanIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*"); - TFM_Util.unbanIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*"); - } + return false; } - - return true; } } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java index bdf9785e..cabe7b20 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java @@ -1,5 +1,6 @@ package me.StevenLawson.TotalFreedomMod.Commands; +import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface; import me.StevenLawson.TotalFreedomMod.TFM_Util; import org.bukkit.ChatColor; import org.bukkit.GameMode; @@ -69,12 +70,10 @@ public class Command_gtfo extends TFM_Command user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]); } TFM_Util.bcastMsg(String.format("Banning: %s, IP: %s.", p.getName(), user_ip), ChatColor.RED); - //server.banIP(user_ip); - TFM_Util.banIP(user_ip, null, null, null); + TFM_ServerInterface.banIP(user_ip, null, null, null); // ban username: - // server.getOfflinePlayer(p.getName()).setBanned(true); - TFM_Util.banUsername(p.getName(), null, null, null); + TFM_ServerInterface.banUsername(p.getName(), null, null, null); // kick Player: p.kickPlayer("GTFO"); diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_lockup.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_lockup.java index 62793b0f..5bb9bd83 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_lockup.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_lockup.java @@ -7,7 +7,7 @@ import org.bukkit.Location; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitScheduler; +import org.bukkit.scheduler.BukkitTask; @CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_host_console = true, ignore_permissions = false) public class Command_lockup extends TFM_Command @@ -92,12 +92,11 @@ public class Command_lockup extends TFM_Command private void cancelLockup(TFM_UserInfo playerdata) { - BukkitScheduler scheduler = server.getScheduler(); - int lockupScheduleID = playerdata.getLockupScheduleID(); - if (lockupScheduleID != -1) + BukkitTask lockupScheduleID = playerdata.getLockupScheduleID(); + if (lockupScheduleID != null) { - scheduler.cancelTask(lockupScheduleID); - playerdata.setLockupScheduleID(-1); + lockupScheduleID.cancel(); + playerdata.setLockupScheduleID(null); } } @@ -112,7 +111,7 @@ public class Command_lockup extends TFM_Command cancelLockup(playerdata); - playerdata.setLockupScheduleID(server.getScheduler().scheduleAsyncRepeatingTask(plugin, new Runnable() + playerdata.setLockupScheduleID(server.getScheduler().runTaskTimerAsynchronously(plugin, new Runnable() { private Random random = new Random(); diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_onlinemode.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_onlinemode.java index 6a36ba61..826268ef 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_onlinemode.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_onlinemode.java @@ -1,9 +1,8 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.TFM_Log; +import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.PropertyManager; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -38,9 +37,7 @@ public class Command_onlinemode extends TFM_Command try { - PropertyManager prop_man = MinecraftServer.getServer().getPropertyManager(); - prop_man.a("online-mode", online_mode); - prop_man.savePropertiesFile(); + TFM_ServerInterface.setOnlineMode(online_mode); if (online_mode) { diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_permban.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_permban.java index 84c25861..58121385 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_permban.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_permban.java @@ -26,7 +26,7 @@ public class Command_permban extends TFM_Command else if (args[0].equalsIgnoreCase("reload")) { TFM_Util.playerMsg(sender, "Reloading permban list...", ChatColor.RED); - plugin.loadPermbanConfig(); + TotalFreedomMod.loadPermbanConfig(); dumplist(sender); } else diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_status.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_status.java index 3a7ee7d0..27681f8c 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_status.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_status.java @@ -1,29 +1,110 @@ 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.TFM_Util; 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 = ADMIN_LEVEL.ALL, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = true) public class Command_status extends TFM_Command { - @Override - public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) - { - sender.sendMessage(ChatColor.GOLD + "Total Freedom Mod v" + TotalFreedomMod.pluginVersion + "." + TotalFreedomMod.buildNumber + ", built " + TotalFreedomMod.buildDate); - sender.sendMessage(ChatColor.GOLD + "By: Madgeek1450 and DarthSalamon"); - sender.sendMessage(ChatColor.YELLOW + "Server is currently running with 'online-mode=" + (server.getOnlineMode() ? "true" : "false") + "'."); - sender.sendMessage(ChatColor.GOLD + "Loaded worlds:"); + 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) + { + TFM_Util.playerMsg(sender, String.format("Total Freedom Mod v%s.%s, built %s.", TotalFreedomMod.pluginVersion, TotalFreedomMod.buildNumber, TotalFreedomMod.buildDate), ChatColor.GOLD); + TFM_Util.playerMsg(sender, "TotalFreedomMod was created by Madgeek1450 and DarthSalamon.", ChatColor.GOLD); + + TFM_Util.playerMsg(sender, "Server is currently running with 'online-mode=" + (server.getOnlineMode() ? "true" : "false") + "'.", ChatColor.YELLOW); + + TFM_Util.playerMsg(sender, "Loaded worlds:", ChatColor.BLUE); int i = 0; for (World world : server.getWorlds()) { - sender.sendMessage(ChatColor.GOLD + "World " + Integer.toString(i++) + ": " + world.getName() + " - " + Integer.toString(world.getPlayers().size()) + " players."); + TFM_Util.playerMsg(sender, 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))); + } + + TFM_Util.playerMsg(sender, 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_tempban.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tempban.java index e7662f4e..6a2334bc 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tempban.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tempban.java @@ -2,6 +2,7 @@ package me.StevenLawson.TotalFreedomMod.Commands; import java.text.SimpleDateFormat; import java.util.Date; +import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface; import me.StevenLawson.TotalFreedomMod.TFM_Util; import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.StringUtils; @@ -54,8 +55,8 @@ public class Command_tempban extends TFM_Command } TFM_Util.adminAction(sender.getName(), bcast_msg.toString(), true); - TFM_Util.banUsername(p.getName(), ban_reason, sender.getName(), ban_duration); - TFM_Util.banIP(p.getAddress().getAddress().getHostAddress().trim(), ban_reason, sender.getName(), ban_duration); + TFM_ServerInterface.banUsername(p.getName(), ban_reason, sender.getName(), ban_duration); + TFM_ServerInterface.banIP(p.getAddress().getAddress().getHostAddress().trim(), ban_reason, sender.getName(), ban_duration); p.kickPlayer(sender.getName() + " - " + bcast_msg.toString()); return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_terminal.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_terminal.java index 2e1a9968..fcf84b54 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_terminal.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_terminal.java @@ -29,7 +29,7 @@ public class Command_terminal extends TFM_Command } sender.sendMessage("Running system command: " + command); - server.getScheduler().scheduleAsyncDelayedTask(plugin, new TFM_RunSystemCommand(command, plugin)); + server.getScheduler().runTaskAsynchronously(plugin, new TFM_RunSystemCommand(command, plugin)); return true; } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tfbanlist.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tfbanlist.java index 2d659c77..ce171994 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tfbanlist.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tfbanlist.java @@ -1,9 +1,8 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.TFM_Log; +import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; -import net.minecraft.server.BanList; -import net.minecraft.server.MinecraftServer; import org.bukkit.ChatColor; import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; @@ -24,10 +23,7 @@ public class Command_tfbanlist extends TFM_Command { try { - BanList nameBans = MinecraftServer.getServer().getServerConfigurationManager().getNameBans(); - nameBans.getEntries().clear(); - nameBans.save(); - + TFM_ServerInterface.wipeNameBans(); sender.sendMessage(ChatColor.GRAY + "Ban list has been purged."); } catch (Exception ex) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tfipbanlist.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tfipbanlist.java index 27990d85..eda148d4 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tfipbanlist.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tfipbanlist.java @@ -4,9 +4,8 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; import me.StevenLawson.TotalFreedomMod.TFM_Log; +import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; -import net.minecraft.server.BanList; -import net.minecraft.server.MinecraftServer; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -26,10 +25,7 @@ public class Command_tfipbanlist extends TFM_Command { try { - BanList IPBans = MinecraftServer.getServer().getServerConfigurationManager().getIPBans(); - IPBans.getEntries().clear(); - IPBans.save(); - + TFM_ServerInterface.wipeIpBans(); sender.sendMessage(ChatColor.GRAY + "IP ban list has been purged."); } catch (Exception ex) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whitelist.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whitelist.java index 341d0e75..7b7dbc6d 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whitelist.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whitelist.java @@ -1,10 +1,9 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import java.util.Set; +import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; -import net.minecraft.server.MinecraftServer; import org.bukkit.ChatColor; import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; @@ -166,11 +165,8 @@ public class Command_whitelist extends TFM_Command //purge if (args[0].equalsIgnoreCase("purge")) { - @SuppressWarnings("rawtypes") - Set whitelisted = MinecraftServer.getServer().getServerConfigurationManager().getWhitelisted(); TFM_Util.adminAction(sender.getName(), "Removing all players from the whitelist.", false); - TFM_Util.playerMsg(sender, "Removed " + whitelisted.size() + " players from the whitelist."); - whitelisted.clear(); + TFM_Util.playerMsg(sender, "Removed " + TFM_ServerInterface.purgeWhitelist() + " players from the whitelist."); return true; } diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index d71e486c..ef5576a7 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -7,16 +7,11 @@ import java.util.List; import java.util.Map.Entry; import java.util.regex.Pattern; import me.StevenLawson.TotalFreedomMod.*; -import net.minecraft.server.BanEntry; -import net.minecraft.server.BanList; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.ServerConfigurationManagerAbstract; import org.apache.commons.lang.StringUtils; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.Server; import org.bukkit.block.Block; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; @@ -32,7 +27,6 @@ import org.bukkit.util.Vector; public class TFM_PlayerListener implements Listener { - private static final SimpleDateFormat date_format = new SimpleDateFormat("yyyy-MM-dd \'at\' HH:mm:ss z"); private static final List BLOCKED_MUTED_CMDS = Arrays.asList(StringUtils.split("say,me,msg,m,tell,r,reply", ",")); @EventHandler(priority = EventPriority.HIGH) @@ -608,7 +602,7 @@ public class TFM_PlayerListener implements Listener if (TotalFreedomMod.adminOnlyMode) { - TotalFreedomMod.plugin.getServer().getScheduler().scheduleAsyncDelayedTask(TotalFreedomMod.plugin, new Runnable() + TotalFreedomMod.plugin.getServer().getScheduler().runTaskLaterAsynchronously(TotalFreedomMod.plugin, new Runnable() { @Override public void run() @@ -626,180 +620,6 @@ public class TFM_PlayerListener implements Listener @EventHandler(priority = EventPriority.HIGHEST) public void onPlayerLogin(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(); - - final ServerConfigurationManagerAbstract scm = MinecraftServer.getServer().getServerConfigurationManager(); - final BanList banByIP = scm.getIPBans(); - final BanList banByName = scm.getNameBans(); - - final Player p = event.getPlayer(); - - final String player_name = p.getName(); - final String player_ip = event.getAddress().getHostAddress().trim().toLowerCase(); - - if (player_name.trim().length() <= 2) - { - 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()) - { - event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Your username contains invalid characters."); - return; - } - - // 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()) - { - is_superadmin = TFM_SuperadminList.getSuperadminNames().contains(player_name.toLowerCase()); - } - else - { - is_superadmin = TFM_SuperadminList.checkPartialSuperadminIP(player_ip); - } - - if (!is_superadmin) - { - BanEntry ban_entry = null; - - if (banByName.isBanned(player_name.toLowerCase())) - { - ban_entry = (BanEntry) banByName.getEntries().get(player_name.toLowerCase()); - - String kick_message = "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()); - } - } - - event.disallow(PlayerLoginEvent.Result.KICK_BANNED, kick_message); - return; - } - - boolean is_ip_banned = false; - - @SuppressWarnings("rawtypes") - Iterator ip_bans = banByIP.getEntries().keySet().iterator(); - while (ip_bans.hasNext()) - { - String test_ip = (String) ip_bans.next(); - - if (!test_ip.matches("^\\d{1,3}\\.\\d{1,3}\\.(\\d{1,3}|\\*)\\.(\\d{1,3}|\\*)$")) - { - continue; - } - - if (player_ip.equals(test_ip)) - { - ban_entry = (BanEntry) banByIP.getEntries().get(test_ip); - is_ip_banned = true; - break; - } - - if (TFM_Util.fuzzyIpMatch(test_ip, player_ip, 4)) - { - ban_entry = (BanEntry) banByIP.getEntries().get(test_ip); - is_ip_banned = true; - break; - } - } - - if (is_ip_banned) - { - String kick_message = "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()); - } - } - - event.disallow(PlayerLoginEvent.Result.KICK_BANNED, kick_message); - return; - } - - for (String test_player : TotalFreedomMod.permbanned_players) - { - if (test_player.equalsIgnoreCase(player_name)) - { - event.disallow(PlayerLoginEvent.Result.KICK_BANNED, ChatColor.RED + "Your username is permanently banned from this server."); - return; - } - } - - for (String test_ip : TotalFreedomMod.permbanned_ips) - { - 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."); - return; - } - } - - if (server.getOnlinePlayers().length >= server.getMaxPlayers()) - { - event.disallow(PlayerLoginEvent.Result.KICK_FULL, "Sorry, but this server is full."); - return; - } - - if (TotalFreedomMod.adminOnlyMode) - { - event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Server is temporarily open to admins only."); - return; - } - - if (scm.hasWhitelist) - { - if (!scm.getWhitelisted().contains(player_name.toLowerCase())) - { - event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "You are not whitelisted on this server."); - return; - } - } - - for (Player test_player : server.getOnlinePlayers()) - { - if (test_player.getName().equalsIgnoreCase(player_name)) - { - event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Your username is already logged into this server."); - return; - } - } - } - else - { - for (Player test_player : server.getOnlinePlayers()) - { - if (test_player.getName().equalsIgnoreCase(player_name)) - { - 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) - { - can_kick = false; - for (Player test_player : server.getOnlinePlayers()) - { - if (!TFM_SuperadminList.isUserSuperadmin(test_player)) - { - can_kick = true; - test_player.kickPlayer("You have been kicked to free up room for an admin."); - break; - } - } - } - } + TFM_ServerInterface.handlePlayerLogin(event); } } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java b/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java new file mode 100644 index 00000000..da5a00ab --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java @@ -0,0 +1,300 @@ +package me.StevenLawson.TotalFreedomMod; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Iterator; +import java.util.Set; +import java.util.regex.Pattern; +import net.minecraft.server.v1_4_5.BanEntry; +import net.minecraft.server.v1_4_5.BanList; +import net.minecraft.server.v1_4_5.MinecraftServer; +import net.minecraft.server.v1_4_5.PropertyManager; +import net.minecraft.server.v1_4_5.ServerConfigurationManagerAbstract; +import org.bukkit.ChatColor; +import org.bukkit.Server; +import org.bukkit.entity.Player; +import org.bukkit.event.player.PlayerLoginEvent; + +public class TFM_ServerInterface +{ + private static final SimpleDateFormat date_format = new SimpleDateFormat("yyyy-MM-dd \'at\' HH:mm:ss z"); + + public static void setOnlineMode(boolean mode) + { + PropertyManager propertyManager = MinecraftServer.getServer().getPropertyManager(); + propertyManager.a("online-mode", mode); + propertyManager.savePropertiesFile(); + } + + public static void wipeNameBans() + { + BanList nameBans = MinecraftServer.getServer().getServerConfigurationManager().getNameBans(); + nameBans.getEntries().clear(); + nameBans.save(); + } + + public static void wipeIpBans() + { + BanList IPBans = MinecraftServer.getServer().getServerConfigurationManager().getIPBans(); + IPBans.getEntries().clear(); + IPBans.save(); + } + + public static void unbanUsername(String name) + { + name = name.toLowerCase().trim(); + BanList nameBans = MinecraftServer.getServer().getServerConfigurationManager().getNameBans(); + nameBans.remove(name); + } + + public static void banUsername(String name, String reason, String source, Date expire_date) + { + name = name.toLowerCase().trim(); + BanEntry ban_entry = new BanEntry(name); + if (expire_date != null) + { + ban_entry.setExpires(expire_date); + } + if (reason != null) + { + ban_entry.setReason(reason); + } + if (source != null) + { + ban_entry.setSource(source); + } + BanList nameBans = MinecraftServer.getServer().getServerConfigurationManager().getNameBans(); + nameBans.add(ban_entry); + } + + public static boolean isNameBanned(String name) + { + name = name.toLowerCase().trim(); + BanList nameBans = MinecraftServer.getServer().getServerConfigurationManager().getNameBans(); + nameBans.removeExpired(); + return nameBans.getEntries().containsKey(name); + } + + public static void banIP(String ip, String reason, String source, Date expire_date) + { + ip = ip.toLowerCase().trim(); + BanEntry ban_entry = new BanEntry(ip); + if (expire_date != null) + { + ban_entry.setExpires(expire_date); + } + if (reason != null) + { + ban_entry.setReason(reason); + } + if (source != null) + { + ban_entry.setSource(source); + } + BanList ipBans = MinecraftServer.getServer().getServerConfigurationManager().getIPBans(); + ipBans.add(ban_entry); + } + + public static void unbanIP(String ip) + { + ip = ip.toLowerCase().trim(); + BanList ipBans = MinecraftServer.getServer().getServerConfigurationManager().getIPBans(); + ipBans.remove(ip); + } + + public static boolean isIPBanned(String ip) + { + ip = ip.toLowerCase().trim(); + BanList ipBans = MinecraftServer.getServer().getServerConfigurationManager().getIPBans(); + ipBans.removeExpired(); + return ipBans.getEntries().containsKey(ip); + } + + @SuppressWarnings("rawtypes") + public static int purgeWhitelist() + { + Set whitelisted = MinecraftServer.getServer().getServerConfigurationManager().getWhitelisted(); + int size = whitelisted.size(); + whitelisted.clear(); + return size; + } + + 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(); + + final ServerConfigurationManagerAbstract scm = MinecraftServer.getServer().getServerConfigurationManager(); + final BanList banByIP = scm.getIPBans(); + final BanList banByName = scm.getNameBans(); + + final Player p = event.getPlayer(); + + final String player_name = p.getName(); + final String player_ip = event.getAddress().getHostAddress().trim().toLowerCase(); + + if (player_name.trim().length() <= 2) + { + 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()) + { + event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Your username contains invalid characters."); + return; + } + + // 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()) + { + is_superadmin = TFM_SuperadminList.getSuperadminNames().contains(player_name.toLowerCase()); + } + else + { + is_superadmin = TFM_SuperadminList.checkPartialSuperadminIP(player_ip); + } + + if (!is_superadmin) + { + BanEntry ban_entry = null; + + if (banByName.isBanned(player_name.toLowerCase())) + { + ban_entry = (BanEntry) banByName.getEntries().get(player_name.toLowerCase()); + + String kick_message = "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()); + } + } + + event.disallow(PlayerLoginEvent.Result.KICK_BANNED, kick_message); + return; + } + + boolean is_ip_banned = false; + + @SuppressWarnings("rawtypes") + Iterator ip_bans = banByIP.getEntries().keySet().iterator(); + while (ip_bans.hasNext()) + { + String test_ip = (String) ip_bans.next(); + + if (!test_ip.matches("^\\d{1,3}\\.\\d{1,3}\\.(\\d{1,3}|\\*)\\.(\\d{1,3}|\\*)$")) + { + continue; + } + + if (player_ip.equals(test_ip)) + { + ban_entry = (BanEntry) banByIP.getEntries().get(test_ip); + is_ip_banned = true; + break; + } + + if (TFM_Util.fuzzyIpMatch(test_ip, player_ip, 4)) + { + ban_entry = (BanEntry) banByIP.getEntries().get(test_ip); + is_ip_banned = true; + break; + } + } + + if (is_ip_banned) + { + String kick_message = "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()); + } + } + + event.disallow(PlayerLoginEvent.Result.KICK_BANNED, kick_message); + return; + } + + for (String test_player : TotalFreedomMod.permbanned_players) + { + if (test_player.equalsIgnoreCase(player_name)) + { + event.disallow(PlayerLoginEvent.Result.KICK_BANNED, ChatColor.RED + "Your username is permanently banned from this server."); + return; + } + } + + for (String test_ip : TotalFreedomMod.permbanned_ips) + { + 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."); + return; + } + } + + if (server.getOnlinePlayers().length >= server.getMaxPlayers()) + { + event.disallow(PlayerLoginEvent.Result.KICK_FULL, "Sorry, but this server is full."); + return; + } + + if (TotalFreedomMod.adminOnlyMode) + { + event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Server is temporarily open to admins only."); + return; + } + + if (scm.hasWhitelist) + { + if (!scm.getWhitelisted().contains(player_name.toLowerCase())) + { + event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "You are not whitelisted on this server."); + return; + } + } + + for (Player test_player : server.getOnlinePlayers()) + { + if (test_player.getName().equalsIgnoreCase(player_name)) + { + event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Your username is already logged into this server."); + return; + } + } + } + else + { + for (Player test_player : server.getOnlinePlayers()) + { + if (test_player.getName().equalsIgnoreCase(player_name)) + { + 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) + { + can_kick = false; + for (Player test_player : server.getOnlinePlayers()) + { + if (!TFM_SuperadminList.isUserSuperadmin(test_player)) + { + can_kick = true; + test_player.kickPlayer("You have been kicked to free up room for an admin."); + break; + } + } + } + } + } +} diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_UserInfo.java b/src/me/StevenLawson/TotalFreedomMod/TFM_UserInfo.java index fee1b057..d47d3ee3 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_UserInfo.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_UserInfo.java @@ -13,6 +13,7 @@ import org.bukkit.entity.Arrow; import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; +import org.bukkit.scheduler.BukkitTask; public class TFM_UserInfo { @@ -39,10 +40,10 @@ public class TFM_UserInfo private EntityType mob_thrower_creature = EntityType.PIG; private double mob_thrower_speed = 4.0; private List mob_thrower_queue = new ArrayList(); - private int mp44_schedule_id = -1; + private BukkitTask mp44_schedule_id = null; private boolean mp44_armed = false; private boolean mp44_firing = false; - private int lockup_schedule_id = -1; + private BukkitTask lockup_schedule_id = null; private String last_message = ""; private boolean in_adminchat = false; private boolean all_commands_blocked = false; @@ -324,16 +325,16 @@ public class TFM_UserInfo public void startArrowShooter(TotalFreedomMod plugin) { this.stopArrowShooter(); - this.mp44_schedule_id = plugin.getServer().getScheduler().scheduleAsyncRepeatingTask(plugin, new ArrowShooter(this.player), 1L, 1L); + this.mp44_schedule_id = plugin.getServer().getScheduler().runTaskTimerAsynchronously(plugin, new ArrowShooter(this.player), 1L, 1L); mp44_firing = true; } public void stopArrowShooter() { - if (this.mp44_schedule_id != -1) + if (this.mp44_schedule_id != null) { - Bukkit.getServer().getScheduler().cancelTask(this.mp44_schedule_id); - this.mp44_schedule_id = -1; + this.mp44_schedule_id.cancel(); + this.mp44_schedule_id = null; } mp44_firing = false; } @@ -398,12 +399,12 @@ public class TFM_UserInfo this.is_halted = is_halted; } - public int getLockupScheduleID() + public BukkitTask getLockupScheduleID() { return lockup_schedule_id; } - public void setLockupScheduleID(int lockup_schedule_id) + public void setLockupScheduleID(BukkitTask lockup_schedule_id) { this.lockup_schedule_id = lockup_schedule_id; } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index 8c0b253a..e4fc6378 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -14,9 +14,6 @@ import java.util.regex.Pattern; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import java.util.zip.ZipOutputStream; -import net.minecraft.server.BanEntry; -import net.minecraft.server.BanList; -import net.minecraft.server.MinecraftServer; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.exception.ExceptionUtils; import org.bukkit.*; @@ -28,7 +25,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 STOP_COMMANDS = Arrays.asList("stop", "off", "end", "halt", "die"); static { @@ -423,7 +420,7 @@ public class TFM_Util public static boolean isStopCommand(String command) { - return stop_commands.contains(command.toLowerCase()); + return STOP_COMMANDS.contains(command.toLowerCase()); } enum EjectMethod @@ -586,84 +583,40 @@ public class TFM_Util return "a " + ChatColor.GREEN + "non-OP" + ChatColor.AQUA + "."; } + @Deprecated public static void banUsername(String name, String reason, String source, Date expire_date) { - name = name.toLowerCase().trim(); - - BanEntry ban_entry = new BanEntry(name); - - if (expire_date != null) - { - ban_entry.setExpires(expire_date); - } - if (reason != null) - { - ban_entry.setReason(reason); - } - if (source != null) - { - ban_entry.setSource(source); - } - - BanList nameBans = MinecraftServer.getServer().getServerConfigurationManager().getNameBans(); - - nameBans.add(ban_entry); + TFM_ServerInterface.banUsername(name, reason, source, expire_date); } + @Deprecated public static void unbanUsername(String name) { - name = name.toLowerCase().trim(); - - BanList nameBans = MinecraftServer.getServer().getServerConfigurationManager().getNameBans(); - - nameBans.remove(name); + TFM_ServerInterface.unbanUsername(name); } + @Deprecated public static boolean isNameBanned(String name) { - name = name.toLowerCase().trim(); - BanList nameBans = MinecraftServer.getServer().getServerConfigurationManager().getNameBans(); - nameBans.removeExpired(); - return nameBans.getEntries().containsKey(name); + return TFM_ServerInterface.isNameBanned(name); } + @Deprecated public static void banIP(String ip, String reason, String source, Date expire_date) { - ip = ip.toLowerCase().trim(); - - BanEntry ban_entry = new BanEntry(ip); - - if (expire_date != null) - { - ban_entry.setExpires(expire_date); - } - if (reason != null) - { - ban_entry.setReason(reason); - } - if (source != null) - { - ban_entry.setSource(source); - } - - BanList ipBans = MinecraftServer.getServer().getServerConfigurationManager().getIPBans(); - - ipBans.add(ban_entry); + TFM_ServerInterface.banIP(ip, reason, source, expire_date); } + @Deprecated public static void unbanIP(String ip) { - ip = ip.toLowerCase().trim(); - BanList ipBans = MinecraftServer.getServer().getServerConfigurationManager().getIPBans(); - ipBans.remove(ip); + TFM_ServerInterface.unbanIP(ip); } + @Deprecated public static boolean isIPBanned(String ip) { - ip = ip.toLowerCase().trim(); - BanList ipBans = MinecraftServer.getServer().getServerConfigurationManager().getIPBans(); - ipBans.removeExpired(); - return ipBans.getEntries().containsKey(ip); + return TFM_ServerInterface.isIPBanned(ip); } public static Date parseDateOffset(String time) diff --git a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java index d4a44ac9..c703e849 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java +++ b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java @@ -99,7 +99,7 @@ public class TotalFreedomMod extends JavaPlugin TFM_Util.deleteFolder(new File("./_deleteme")); - server.getScheduler().scheduleAsyncRepeatingTask(this, new TFM_Heartbeat(this), HEARTBEAT_RATE * 20L, HEARTBEAT_RATE * 20L); + server.getScheduler().runTaskTimerAsynchronously(this, new TFM_Heartbeat(this), HEARTBEAT_RATE * 20L, HEARTBEAT_RATE * 20L); // metrics @ http://mcstats.org/plugin/TotalFreedomMod try