diff --git a/Essentials/src/com/earth2me/essentials/BanWorkaround.java b/Essentials/src/com/earth2me/essentials/BanWorkaround.java new file mode 100644 index 000000000..bf9c47899 --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/BanWorkaround.java @@ -0,0 +1,157 @@ +package com.earth2me.essentials; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.util.HashSet; +import java.util.Set; +import java.util.logging.Level; +import java.util.logging.Logger; +import net.minecraft.server.ServerConfigurationManager; +import org.bukkit.craftbukkit.CraftServer; + + +public class BanWorkaround implements IConf +{ + private transient final IEssentials ess; + private transient final ServerConfigurationManager scm; + private static final Logger LOGGER = Logger.getLogger("Minecraft"); + private transient final Set bans = new HashSet(); + private transient final Set bannedIps = new HashSet(); + + public BanWorkaround(final IEssentials ess) + { + this.ess = ess; + this.scm = ((CraftServer)ess.getServer()).getHandle(); + } + + public void banByName(final String name) + { + scm.a(name); + reloadConfig(); + } + + public void unbanByName(String name) + { + scm.b(name); + reloadConfig(); + } + + public void banByIp(final String ip) + { + scm.c(ip); + reloadConfig(); + } + + public void unbanByIp(final String ip) + { + scm.d(ip); + reloadConfig(); + } + + public boolean isNameBanned(final String name) + { + return bans.contains(name.toLowerCase()); + } + + public boolean isIpBanned(final String ip) + { + return bannedIps.contains(ip.toLowerCase()); + } + + public void reloadConfig() + { + //I don't like this but it needs to be done until CB fixors + final File file = new File(ess.getDataFolder().getParentFile().getParentFile(), "banned-players.txt"); + try + { + if (!file.exists()) + { + throw new FileNotFoundException(Util.i18n("bannedPlayersFileNotFound")); + } + + final BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); + try + { + bans.clear(); + while (bufferedReader.ready()) + { + + final String line = bufferedReader.readLine().trim().toLowerCase(); + if (line.length() > 0 && line.charAt(0) == '#') + { + continue; + } + bans.add(line); + + } + } + catch (IOException io) + { + LOGGER.log(Level.SEVERE, Util.i18n("bannedPlayersFileError"), io); + } + finally + { + try + { + bufferedReader.close(); + } + catch (IOException ex) + { + LOGGER.log(Level.SEVERE, Util.i18n("bannedPlayersFileError"), ex); + } + } + } + catch (FileNotFoundException ex) + { + LOGGER.log(Level.SEVERE, Util.i18n("bannedPlayersFileError"), ex); + } + + final File ipFile = new File(ess.getDataFolder().getParentFile().getParentFile(), "banned-ips.txt"); + try + { + if (!ipFile.exists()) + { + throw new FileNotFoundException(Util.i18n("bannedIpsFileNotFound")); + } + + final BufferedReader bufferedReader = new BufferedReader(new FileReader(ipFile)); + try + { + bannedIps.clear(); + while (bufferedReader.ready()) + { + + final String line = bufferedReader.readLine().trim().toLowerCase(); + if (line.length() > 0 && line.charAt(0) == '#') + { + continue; + } + bannedIps.add(line); + + } + } + catch (IOException io) + { + LOGGER.log(Level.SEVERE, Util.i18n("bannedIpsFileError"), io); + } + finally + { + try + { + bufferedReader.close(); + } + catch (IOException ex) + { + LOGGER.log(Level.SEVERE, Util.i18n("bannedIpsFileError"), ex); + } + } + } + catch (FileNotFoundException ex) + { + LOGGER.log(Level.SEVERE, Util.i18n("bannedIpsFileError"), ex); + } + } +} diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index 89ccc900d..0117daf77 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -46,27 +46,24 @@ import org.bukkit.plugin.java.*; public class Essentials extends JavaPlugin implements IEssentials { public static final String AUTHORS = "Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans and Xeology"; - public static final int minBukkitBuildVersion = 974; - private static final Logger logger = Logger.getLogger("Minecraft"); - private Settings settings; - private TNTExplodeListener tntListener; - private EssentialsDependancyChecker essDep; + public static final int BUKKIT_VERSION = 974; + private static final Logger LOGGER = Logger.getLogger("Minecraft"); + private transient Settings settings; + private final transient TNTExplodeListener tntListener = new TNTExplodeListener(this); private static Essentials instance = null; - private Spawn spawn; - private Jail jail; - private Warps warps; - private Worth worth; - private List confList; - public ArrayList bans = new ArrayList(); - public ArrayList bannedIps = new ArrayList(); - private Backup backup; - private final Map users = new HashMap(); - private EssentialsUpdateTimer updateTimer; - private boolean registerFallback = true; - private final Methods paymentMethod = new Methods(); - private final static boolean enableErrorLogging = false; - private final EssentialsErrorHandler errorHandler = new EssentialsErrorHandler(); - private IPermissionsHandler permissionsHandler; + private transient Spawn spawn; + private transient Jail jail; + private transient Warps warps; + private transient Worth worth; + private transient List confList; + private transient Backup backup; + private transient BanWorkaround bans; + private transient final Map users = new HashMap(); + private transient EssentialsUpdateTimer updateTimer; + private transient final Methods paymentMethod = new Methods(); + private transient final static boolean enableErrorLogging = false; + private transient final EssentialsErrorHandler errorHandler = new EssentialsErrorHandler(); + private transient IPermissionsHandler permissionsHandler; public static IEssentials getStatic() { @@ -78,13 +75,19 @@ public class Essentials extends JavaPlugin implements IEssentials return settings; } - public void setupForTesting(Server server) throws IOException, InvalidDescriptionException + public void setupForTesting(final Server server) throws IOException, InvalidDescriptionException { - File dataFolder = File.createTempFile("essentialstest", ""); - dataFolder.delete(); - dataFolder.mkdir(); - logger.log(Level.INFO, Util.i18n("usingTempFolderForTesting")); - logger.log(Level.INFO, dataFolder.toString()); + final File dataFolder = File.createTempFile("essentialstest", ""); + if (!dataFolder.delete()) + { + throw new IOException(); + } + if (!dataFolder.mkdir()) + { + throw new IOException(); + } + LOGGER.log(Level.INFO, Util.i18n("usingTempFolderForTesting")); + LOGGER.log(Level.INFO, dataFolder.toString()); this.initialize(null, server, new PluginDescriptionFile(new FileReader(new File("src" + File.separator + "plugin.yml"))), dataFolder, null, null); settings = new Settings(dataFolder); permissionsHandler = new ConfigPermissionsHandler(this); @@ -101,11 +104,11 @@ public class Essentials extends JavaPlugin implements IEssentials final String[] javaversion = System.getProperty("java.version").split("\\.", 3); if (javaversion == null || javaversion.length < 2 || Integer.parseInt(javaversion[1]) < 6) { - logger.log(Level.SEVERE, "Java version not supported! Please install Java 1.6. You have " + System.getProperty("java.version")); + LOGGER.log(Level.SEVERE, "Java version not supported! Please install Java 1.6. You have " + System.getProperty("java.version")); } if (enableErrorLogging) { - logger.addHandler(errorHandler); + LOGGER.addHandler(errorHandler); } setStatic(); EssentialsUpgrade upgrade = new EssentialsUpgrade(this.getDescription().getVersion(), this); @@ -121,36 +124,35 @@ public class Essentials extends JavaPlugin implements IEssentials confList.add(warps); worth = new Worth(this.getDataFolder()); confList.add(worth); + bans = new BanWorkaround(this); + confList.add(bans); reload(); backup = new Backup(this); - essDep = new EssentialsDependancyChecker(this); final PluginManager pm = getServer().getPluginManager(); for (Plugin plugin : pm.getPlugins()) { - if (plugin.getDescription().getName().startsWith("Essentials")) + if (plugin.getDescription().getName().startsWith("Essentials") + && !plugin.getDescription().getVersion().equals(this.getDescription().getVersion())) { - if (!plugin.getDescription().getVersion().equals(this.getDescription().getVersion())) - { - logger.log(Level.WARNING, Util.format("versionMismatch", plugin.getDescription().getName())); - } + LOGGER.log(Level.WARNING, Util.format("versionMismatch", plugin.getDescription().getName())); } } - Matcher versionMatch = Pattern.compile("git-Bukkit-([0-9]+).([0-9]+).([0-9]+)-[0-9]+-[0-9a-z]+-b([0-9]+)jnks.*").matcher(getServer().getVersion()); + final Matcher versionMatch = Pattern.compile("git-Bukkit-([0-9]+).([0-9]+).([0-9]+)-[0-9]+-[0-9a-z]+-b([0-9]+)jnks.*").matcher(getServer().getVersion()); if (versionMatch.matches()) { - int versionNumber = Integer.parseInt(versionMatch.group(4)); - if (versionNumber < minBukkitBuildVersion) + final int versionNumber = Integer.parseInt(versionMatch.group(4)); + if (versionNumber < BUKKIT_VERSION) { - logger.log(Level.WARNING, Util.i18n("notRecommendedBukkit")); + LOGGER.log(Level.WARNING, Util.i18n("notRecommendedBukkit")); } } else { - logger.log(Level.INFO, Util.i18n("bukkitFormatChanged")); + LOGGER.log(Level.INFO, Util.i18n("bukkitFormatChanged")); } - Plugin permissionsPlugin = pm.getPlugin("Permissions"); + final Plugin permissionsPlugin = pm.getPlugin("Permissions"); if (permissionsPlugin != null) { @@ -224,7 +226,6 @@ public class Essentials extends JavaPlugin implements IEssentials getServer().createWorld(settings.getNetherName(), World.Environment.NETHER); } - tntListener = new TNTExplodeListener(this); pm.registerEvent(Type.ENTITY_EXPLODE, tntListener, Priority.High, this); final EssentialsTimer timer = new EssentialsTimer(this); @@ -234,20 +235,19 @@ public class Essentials extends JavaPlugin implements IEssentials updateTimer = new EssentialsUpdateTimer(this); getScheduler().scheduleAsyncRepeatingTask(this, updateTimer, 50, 50 * 60 * (this.getDescription().getVersion().startsWith("Dev") ? 60 : 360)); } - logger.info(Util.format("loadinfo", this.getDescription().getName(), this.getDescription().getVersion(), AUTHORS)); + LOGGER.info(Util.format("loadinfo", this.getDescription().getName(), this.getDescription().getVersion(), AUTHORS)); } public void onDisable() { instance = null; Trade.closeLog(); - logger.removeHandler(errorHandler); + LOGGER.removeHandler(errorHandler); } public void reload() { Trade.closeLog(); - loadBanList(); for (IConf iConf : confList) { @@ -270,7 +270,7 @@ public class Essentials extends JavaPlugin implements IEssentials } catch (Exception ex) { - logger.log(Level.WARNING, Util.i18n("itemsCsvNotLoaded"), ex); + LOGGER.log(Level.WARNING, Util.i18n("itemsCsvNotLoaded"), ex); } } @@ -302,7 +302,7 @@ public class Essentials extends JavaPlugin implements IEssentials } catch (Throwable ex2) { - logger.log(Level.WARNING, Util.format("corruptNodeInConfig", node)); + LOGGER.log(Level.WARNING, Util.format("corruptNodeInConfig", node)); return new String[0]; } } @@ -413,7 +413,7 @@ public class Essentials extends JavaPlugin implements IEssentials if (sender instanceof Player) { user = getUser(sender); - logger.log(Level.INFO, String.format("[PLAYER_COMMAND] %s: /%s %s ", ((Player)sender).getName(), commandLabel, EssentialsCommand.getFinalArg(args, 0))); + LOGGER.log(Level.INFO, String.format("[PLAYER_COMMAND] %s: /%s %s ", ((Player)sender).getName(), commandLabel, EssentialsCommand.getFinalArg(args, 0))); } // New mail notification @@ -441,14 +441,14 @@ public class Essentials extends JavaPlugin implements IEssentials catch (Exception ex) { sender.sendMessage(Util.format("commandNotLoaded", commandLabel)); - logger.log(Level.SEVERE, Util.format("commandNotLoaded", commandLabel), ex); + LOGGER.log(Level.SEVERE, Util.format("commandNotLoaded", commandLabel), ex); return true; } // Check authorization if (user != null && !user.isAuthorized(cmd, permissionPrefix)) { - logger.log(Level.WARNING, Util.format("deniedAccessCommand", user.getName())); + LOGGER.log(Level.WARNING, Util.format("deniedAccessCommand", user.getName())); user.sendMessage(Util.i18n("noAccessCommand")); return true; } @@ -480,7 +480,7 @@ public class Essentials extends JavaPlugin implements IEssentials } catch (Throwable ex) { - logger.log(Level.SEVERE, Util.format("commandFailed", commandLabel), ex); + LOGGER.log(Level.SEVERE, Util.format("commandFailed", commandLabel), ex); return true; } } @@ -492,7 +492,7 @@ public class Essentials extends JavaPlugin implements IEssentials logRecord.setThrown(exception); if (getSettings().isDebug()) { - logger.log(logRecord); + LOGGER.log(logRecord); } else { @@ -504,100 +504,6 @@ public class Essentials extends JavaPlugin implements IEssentials } } - public void loadBanList() - { - //I don't like this but it needs to be done until CB fixors - File file = new File("banned-players.txt"); - File ipFile = new File("banned-ips.txt"); - try - { - if (!file.exists()) - { - throw new FileNotFoundException(Util.i18n("bannedPlayersFileNotFound")); - } - - final BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); - try - { - bans.clear(); - while (bufferedReader.ready()) - { - - final String line = bufferedReader.readLine().trim().toLowerCase(); - if (line.length() > 0 && line.charAt(0) == '#') - { - continue; - } - bans.add(line); - - } - } - catch (IOException io) - { - logger.log(Level.SEVERE, Util.i18n("bannedPlayersFileError"), io); - } - finally - { - try - { - bufferedReader.close(); - } - catch (IOException ex) - { - logger.log(Level.SEVERE, Util.i18n("bannedPlayersFileError"), ex); - } - } - } - catch (FileNotFoundException ex) - { - logger.log(Level.SEVERE, Util.i18n("bannedPlayersFileError"), ex); - } - - try - { - if (!ipFile.exists()) - { - throw new FileNotFoundException(Util.i18n("bannedIpsFileNotFound")); - } - - final BufferedReader bufferedReader = new BufferedReader(new FileReader(ipFile)); - try - { - bannedIps.clear(); - while (bufferedReader.ready()) - { - - final String line = bufferedReader.readLine().trim().toLowerCase(); - if (line.length() > 0 && line.charAt(0) == '#') - { - continue; - } - bannedIps.add(line); - - } - } - catch (IOException io) - { - logger.log(Level.SEVERE, Util.i18n("bannedIpsFileError"), io); - } - finally - { - try - { - bufferedReader.close(); - } - catch (IOException ex) - { - logger.log(Level.SEVERE, Util.i18n("bannedIpsFileError"), ex); - } - } - } - catch (FileNotFoundException ex) - { - logger.log(Level.SEVERE, Util.i18n("bannedIpsFileError"), ex); - } - } - public CraftScheduler getScheduler() { return (CraftScheduler)this.getServer().getScheduler(); @@ -676,35 +582,20 @@ public class Essentials extends JavaPlugin implements IEssentials return null; } - public World getWorld(String name) + public World getWorld(final String name) { if (name.matches("[0-9]+")) { - int id = Integer.parseInt(name); + final int id = Integer.parseInt(name); if (id < getServer().getWorlds().size()) { return getServer().getWorlds().get(id); } } - World w = getServer().getWorld(name); - if (w != null) - { - return w; - } - return null; + return getServer().getWorld(name); } - public void setRegisterFallback(boolean registerFallback) - { - this.registerFallback = registerFallback; - } - - public boolean isRegisterFallbackEnabled() - { - return registerFallback; - } - - public void addReloadListener(IConf listener) + public void addReloadListener(final IConf listener) { confList.add(listener); } @@ -714,7 +605,7 @@ public class Essentials extends JavaPlugin implements IEssentials return paymentMethod; } - public int broadcastMessage(String name, String message) + public int broadcastMessage(final String name, final String message) { Player[] players = getServer().getOnlinePlayers(); @@ -750,33 +641,23 @@ public class Essentials extends JavaPlugin implements IEssentials return this.getScheduler().scheduleSyncDelayedTask(this, run, delay); } - public int scheduleSyncRepeatingTask(final Runnable run, long delay, long period) + public int scheduleSyncRepeatingTask(final Runnable run, final long delay, final long period) { return this.getScheduler().scheduleSyncRepeatingTask(this, run, delay, period); } - public List getBans() - { - return bans; - } - - public List getBannedIps() - { - return bannedIps; - } - public TNTExplodeListener getTNTListener() { return tntListener; } - public EssentialsDependancyChecker getDependancyChecker() - { - return essDep; - } - public IPermissionsHandler getPermissionsHandler() { return permissionsHandler; } + + public BanWorkaround getBans() + { + return bans; + } } diff --git a/Essentials/src/com/earth2me/essentials/EssentialsDependancyChecker.java b/Essentials/src/com/earth2me/essentials/EssentialsDependancyChecker.java deleted file mode 100644 index a46c7f6e7..000000000 --- a/Essentials/src/com/earth2me/essentials/EssentialsDependancyChecker.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.earth2me.essentials; - -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.logging.Level; -import java.util.logging.Logger; - - -public class EssentialsDependancyChecker -{ - private static final Logger logger = Logger.getLogger("Minecraft"); - final Essentials ess; - - public EssentialsDependancyChecker(Essentials ess) - { - this.ess = ess; - } - - public void checkProtectDependancies() - { - final String dependancyLocation = "http://mirrors.ibiblio.org/pub/mirrors/maven2/c3p0/c3p0/0.9.1.2/c3p0-0.9.1.2.jar"; - File dependancyFile = new File("lib/c3p0-0.9.1.2.jar"); - if (!dependancyFile.exists()) - { - logger.log(Level.INFO, Util.i18n("dependancyNotFound")); - try - { - URL url = new URL(dependancyLocation); - BufferedInputStream inStream = new BufferedInputStream(url.openStream()); - FileOutputStream fos = new FileOutputStream(dependancyFile); - BufferedOutputStream outStream = new BufferedOutputStream(fos, 1024); - - byte[] buffer = new byte[1024]; - int len = 0; - - while ((len = inStream.read(buffer)) > 0) - { - outStream.write(buffer, 0, len); - } - outStream.close(); - fos.close(); - inStream.close(); - logger.log(Level.INFO, Util.format("dependancyDownloaded", dependancyFile.getName())); - - } - catch (MalformedURLException ex) - { - logger.log(Level.SEVERE, Util.i18n("urlMalformed"), ex); - } - catch (FileNotFoundException ex) - { - logger.log(Level.SEVERE, Util.i18n("dependancyException"), ex); - } - catch (IOException ex) - { - logger.log(Level.SEVERE, Util.i18n("dependancyException"), ex); - } - } - } -} diff --git a/Essentials/src/com/earth2me/essentials/EssentialsTimer.java b/Essentials/src/com/earth2me/essentials/EssentialsTimer.java index db01619b5..e2d5de6fd 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsTimer.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsTimer.java @@ -43,8 +43,7 @@ public class EssentialsTimer implements Runnable, IConf for (User user: allUsers) { if (user.getBanTimeout() > 0 && user.getBanTimeout() < currentTime) { user.setBanTimeout(0); - ((CraftServer)ess.getServer()).getHandle().b(user.getName()); - ess.loadBanList(); + ess.getBans().unbanByName(user.getName()); } if (user.getMuteTimeout() > 0 && user.getMuteTimeout() < currentTime && user.isMuted()) { user.setMuteTimeout(0); diff --git a/Essentials/src/com/earth2me/essentials/IEssentials.java b/Essentials/src/com/earth2me/essentials/IEssentials.java index 34eac733e..3d4e82267 100644 --- a/Essentials/src/com/earth2me/essentials/IEssentials.java +++ b/Essentials/src/com/earth2me/essentials/IEssentials.java @@ -11,71 +11,64 @@ import org.bukkit.command.CommandSender; import org.bukkit.craftbukkit.scheduler.CraftScheduler; import org.bukkit.plugin.PluginDescriptionFile; + public interface IEssentials { void addReloadListener(IConf listener); - + void reload(); - + boolean onCommandEssentials(CommandSender sender, Command command, String commandLabel, String[] args, ClassLoader classLoader, String commandPath, String permissionPrefix); - + User getUser(Object base); - + User getOfflineUser(String name); - + World getWorld(String name); - + int broadcastMessage(String name, String message); Settings getSettings(); - + CraftScheduler getScheduler(); - + String[] getMotd(CommandSender sender, String def); - + String[] getLines(CommandSender sender, String node, String def); - + Jail getJail(); - + Warps getWarps(); - + Worth getWorth(); - + Backup getBackup(); - + Spawn getSpawn(); - - void loadBanList(); - - public boolean isRegisterFallbackEnabled(); - - public Methods getPaymentMethod(); + + Methods getPaymentMethod(); Server getServer(); - + File getDataFolder(); - + PluginDescriptionFile getDescription(); - + int scheduleAsyncDelayedTask(Runnable run); - + int scheduleSyncDelayedTask(Runnable run); - + int scheduleSyncDelayedTask(Runnable run, long delay); - + int scheduleSyncRepeatingTask(final Runnable run, long delay, long period); - List getBans(); - - List getBannedIps(); + BanWorkaround getBans(); TNTExplodeListener getTNTListener(); - - EssentialsDependancyChecker getDependancyChecker(); IPermissionsHandler getPermissionsHandler(); - + void showError(final CommandSender sender, final Throwable exception, final String commandLabel); - + Map getAllUsers(); } diff --git a/Essentials/src/com/earth2me/essentials/PlayerExtension.java b/Essentials/src/com/earth2me/essentials/PlayerExtension.java index c090dff2f..e72cf25f4 100644 --- a/Essentials/src/com/earth2me/essentials/PlayerExtension.java +++ b/Essentials/src/com/earth2me/essentials/PlayerExtension.java @@ -19,12 +19,12 @@ public class PlayerExtension extends PlayerWrapper public boolean isBanned() { - return ess.getBans().contains(getName()); + return ess.getBans().isNameBanned(this.getName()); } public boolean isIpBanned() { - return ess.getBannedIps().contains(getAddress().getAddress().toString().replace("/", "")); + return ess.getBans().isIpBanned(getAddress().getAddress().getHostAddress()); } public float getCorrectedYaw() diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index 65cbef512..bcd7f12a1 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -276,7 +276,7 @@ public class User extends UserData implements Comparable, IReplyTo, IUser @Override public double getMoney() { - if (ess.isRegisterFallbackEnabled() && ess.getPaymentMethod().hasMethod()) + if (ess.getPaymentMethod().hasMethod()) { try { @@ -298,7 +298,7 @@ public class User extends UserData implements Comparable, IReplyTo, IUser @Override public void setMoney(double value) { - if (ess.isRegisterFallbackEnabled() && ess.getPaymentMethod().hasMethod()) + if (ess.getPaymentMethod().hasMethod()) { try { diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandban.java b/Essentials/src/com/earth2me/essentials/commands/Commandban.java index 2f6141150..1cb79241d 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandban.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandban.java @@ -2,7 +2,6 @@ package com.earth2me.essentials.commands; import org.bukkit.Server; import org.bukkit.command.CommandSender; -import org.bukkit.craftbukkit.CraftServer; import com.earth2me.essentials.User; import com.earth2me.essentials.Util; @@ -15,7 +14,7 @@ public class Commandban extends EssentialsCommand } @Override - public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception + public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception { if (args.length < 1) { @@ -29,7 +28,7 @@ public class Commandban extends EssentialsCommand } if (server.matchPlayer(args[0]).isEmpty()) { - ((CraftServer)server).getHandle().a(args[0]); + ess.getBans().banByName(args[0]); server.broadcastMessage(Util.format("playerBanned", args[0], Util.i18n("defaultBanReason"))); } else @@ -45,9 +44,8 @@ public class Commandban extends EssentialsCommand banReason = Util.i18n("defaultBanReason"); } player.kickPlayer(banReason); - ((CraftServer)server).getHandle().a(player.getName()); + ess.getBans().banByName(args[0]); server.broadcastMessage(Util.format("playerBanned", player.getName(), banReason)); } - ess.loadBanList(); } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandbanip.java b/Essentials/src/com/earth2me/essentials/commands/Commandbanip.java index affa869df..77c268988 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandbanip.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandbanip.java @@ -3,7 +3,6 @@ package com.earth2me.essentials.commands; import com.earth2me.essentials.Util; import org.bukkit.Server; import org.bukkit.command.CommandSender; -import org.bukkit.craftbukkit.CraftServer; public class Commandbanip extends EssentialsCommand @@ -21,9 +20,7 @@ public class Commandbanip extends EssentialsCommand throw new NotEnoughArgumentsException(); } - ((CraftServer)server).getHandle().c(args[0]); + ess.getBans().banByIp(args[0]); sender.sendMessage(Util.i18n("banIpAddress")); - ess.loadBanList(); - } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtempban.java b/Essentials/src/com/earth2me/essentials/commands/Commandtempban.java index 12e514362..ffa63597d 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandtempban.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandtempban.java @@ -2,8 +2,6 @@ package com.earth2me.essentials.commands; import org.bukkit.Server; import org.bukkit.command.CommandSender; -import org.bukkit.craftbukkit.CraftServer; -import com.earth2me.essentials.Essentials; import com.earth2me.essentials.User; import com.earth2me.essentials.Util; @@ -16,36 +14,22 @@ public class Commandtempban extends EssentialsCommand } @Override - public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception + public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception { if (args.length < 2) { throw new NotEnoughArgumentsException(); } - User p = null; - try - { - p = getPlayer(server, args, 0); - } - catch (NoSuchFieldException ex) - { - p = ess.getOfflineUser(args[0]); - } - if (p == null) - { - sender.sendMessage(Util.format("playerNotFound")); - } + final User player = getPlayer(server, args, 0, true); + final String time = getFinalArg(args, 1); + final long banTimestamp = Util.parseDateDiff(time, true); - String time = getFinalArg(args, 1); - long banTimestamp = Util.parseDateDiff(time, true); - - String banReason = Util.format("tempBanned", Util.formatDateDiff(banTimestamp)); - p.setBanReason(banReason); - p.setBanTimeout(banTimestamp); - p.kickPlayer(banReason); - ((CraftServer)server).getHandle().a(p.getName()); - server.broadcastMessage(Util.format("playerBanned", p.getName(), banReason)); - Essentials.getStatic().loadBanList(); + final String banReason = Util.format("tempBanned", Util.formatDateDiff(banTimestamp)); + player.setBanReason(banReason); + player.setBanTimeout(banTimestamp); + player.kickPlayer(banReason); + ess.getBans().banByName(player.getName()); + server.broadcastMessage(Util.format("playerBanned", player.getName(), banReason)); } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandunban.java b/Essentials/src/com/earth2me/essentials/commands/Commandunban.java index dbad49f40..794988867 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandunban.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandunban.java @@ -3,7 +3,6 @@ package com.earth2me.essentials.commands; import com.earth2me.essentials.Util; import org.bukkit.Server; import org.bukkit.command.CommandSender; -import org.bukkit.craftbukkit.CraftServer; public class Commandunban extends EssentialsCommand @@ -14,15 +13,14 @@ public class Commandunban extends EssentialsCommand } @Override - public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception + public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception { if (args.length < 1) { throw new NotEnoughArgumentsException(); } - ((CraftServer)server).getHandle().b(args[0]); + ess.getBans().unbanByName(args[0]); sender.sendMessage(Util.i18n("unbannedPlayer")); - ess.loadBanList(); } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandunbanip.java b/Essentials/src/com/earth2me/essentials/commands/Commandunbanip.java index c7ec57985..aa6327f49 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandunbanip.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandunbanip.java @@ -3,7 +3,6 @@ package com.earth2me.essentials.commands; import com.earth2me.essentials.Util; import org.bukkit.Server; import org.bukkit.command.CommandSender; -import org.bukkit.craftbukkit.CraftServer; public class Commandunbanip extends EssentialsCommand @@ -14,15 +13,14 @@ public class Commandunbanip extends EssentialsCommand } @Override - public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception + public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception { if (args.length < 1) { throw new NotEnoughArgumentsException(); } - ((CraftServer)server).getHandle().d(args[0]); + ess.getBans().unbanByIp(args[0]); sender.sendMessage(Util.i18n("unbannedIP")); - ess.loadBanList(); } }