Merge branch 'refs/heads/master' into release

This commit is contained in:
snowleo 2011-11-19 16:04:00 +01:00
commit f72762bcb2
162 changed files with 1967 additions and 1266 deletions

4
.gitignore vendored
View File

@ -35,6 +35,4 @@
/EssentialsUpdate/dist/ /EssentialsUpdate/dist/
/EssentialsUpdate/build/ /EssentialsUpdate/build/
/WebPush/apikey.php /WebPush/apikey.php
/WebPush/nbproject/private
/WebPush/apikey.php
/WebPush/apikey.php

View File

@ -1,2 +1,3 @@
DoNotUseThreads DoNotUseThreads
LongVariable
SignatureDeclareThrowsException SignatureDeclareThrowsException

View File

@ -29,6 +29,7 @@ auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.blank
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.blankLinesBeforeClass=2 auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.blankLinesBeforeClass=2
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.classDeclBracePlacement=NEW_LINE auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.classDeclBracePlacement=NEW_LINE
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.expand-tabs=false auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.expand-tabs=false
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.importGroupsOrder=*;static *
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.indent-shift-width=4 auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.indent-shift-width=4
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.indentCasesFromSwitch=false auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.indentCasesFromSwitch=false
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.methodDeclBracePlacement=NEW_LINE auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.methodDeclBracePlacement=NEW_LINE
@ -37,6 +38,7 @@ auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.place
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeElseOnNewLine=true auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeElseOnNewLine=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeFinallyOnNewLine=true auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeFinallyOnNewLine=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeWhileOnNewLine=true auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeWhileOnNewLine=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.separateStaticImports=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceAfterTypeCast=false auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceAfterTypeCast=false
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaces-per-tab=4 auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaces-per-tab=4
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.tab-size=4 auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.tab-size=4

View File

@ -0,0 +1,113 @@
package com.earth2me.essentials;
import java.util.*;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.PluginCommand;
import org.bukkit.command.PluginCommandYamlParser;
import org.bukkit.plugin.Plugin;
public class AlternativeCommandsHandler
{
private final transient Map<String, List<PluginCommand>> altcommands = new HashMap<String, List<PluginCommand>>();
private final transient IEssentials ess;
public AlternativeCommandsHandler(final IEssentials ess)
{
this.ess = ess;
for (Plugin plugin : ess.getServer().getPluginManager().getPlugins())
{
if (plugin.isEnabled()) {
addPlugin(plugin);
}
}
}
public final void addPlugin(final Plugin plugin)
{
if (plugin.getDescription().getMain().contains("com.earth2me.essentials"))
{
return;
}
final List<Command> commands = PluginCommandYamlParser.parse(plugin);
final String pluginName = plugin.getDescription().getName().toLowerCase();
for (Command command : commands)
{
final PluginCommand pc = (PluginCommand)command;
final List<String> labels = new ArrayList<String>(pc.getAliases());
labels.add(pc.getName());
PluginCommand reg = ess.getServer().getPluginCommand(pluginName + ":" + pc.getName().toLowerCase());
if (reg == null)
{
reg = Bukkit.getServer().getPluginCommand(pc.getName().toLowerCase());
}
for (String label : labels)
{
List<PluginCommand> plugincommands = altcommands.get(label.toLowerCase());
if (plugincommands == null)
{
plugincommands = new ArrayList<PluginCommand>();
altcommands.put(label.toLowerCase(), plugincommands);
}
boolean found = false;
for (PluginCommand pc2 : plugincommands)
{
if (pc2.getPlugin().equals(plugin))
{
found = true;
}
}
if (!found)
{
plugincommands.add(reg);
}
}
}
}
public void removePlugin(final Plugin plugin)
{
final Iterator<Map.Entry<String, List<PluginCommand>>> iterator = altcommands.entrySet().iterator();
while (iterator.hasNext())
{
final Map.Entry<String, List<PluginCommand>> entry = iterator.next();
final Iterator<PluginCommand> pcIterator = entry.getValue().iterator();
while (pcIterator.hasNext())
{
final PluginCommand pc = pcIterator.next();
if (pc.getPlugin().equals(plugin))
{
pcIterator.remove();
}
}
if (entry.getValue().isEmpty())
{
iterator.remove();
}
}
}
public PluginCommand getAlternative(final String label)
{
final List<PluginCommand> commands = altcommands.get(label);
if (commands == null || commands.isEmpty())
{
return null;
}
if (commands.size() == 1)
{
return commands.get(0);
}
// return the first command that is not an alias
for (PluginCommand command : commands) {
if (command.getName().equalsIgnoreCase(label)) {
return command;
}
}
// return the first alias
return commands.get(0);
}
}

View File

@ -7,7 +7,6 @@ import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.craftbukkit.CraftServer;
public class Backup implements Runnable public class Backup implements Runnable
@ -48,6 +47,7 @@ public class Backup implements Runnable
} }
} }
@Override
public void run() public void run()
{ {
if (active) if (active)
@ -68,6 +68,7 @@ public class Backup implements Runnable
ess.scheduleAsyncDelayedTask( ess.scheduleAsyncDelayedTask(
new Runnable() new Runnable()
{ {
@Override
public void run() public void run()
{ {
try try
@ -109,6 +110,7 @@ public class Backup implements Runnable
ess.scheduleSyncDelayedTask( ess.scheduleSyncDelayedTask(
new Runnable() new Runnable()
{ {
@Override
public void run() public void run()
{ {
server.dispatchCommand(cs, "save-on"); server.dispatchCommand(cs, "save-on");

View File

@ -19,11 +19,13 @@ public final class Console implements IReplyTo
return server.getConsoleSender(); return server.getConsoleSender();
} }
@Override
public void setReplyTo(CommandSender user) public void setReplyTo(CommandSender user)
{ {
replyTo = user; replyTo = user;
} }
@Override
public CommandSender getReplyTo() public CommandSender getReplyTo()
{ {
return replyTo; return replyTo;

View File

@ -1,6 +1,5 @@
package com.earth2me.essentials; package com.earth2me.essentials;
import com.earth2me.essentials.commands.Commandtime;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;

View File

@ -19,12 +19,6 @@ package com.earth2me.essentials;
import com.earth2me.essentials.api.Economy; import com.earth2me.essentials.api.Economy;
import com.earth2me.essentials.commands.EssentialsCommand; import com.earth2me.essentials.commands.EssentialsCommand;
import java.io.*;
import java.util.*;
import java.util.logging.*;
import org.bukkit.*;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import com.earth2me.essentials.commands.IEssentialsCommand; import com.earth2me.essentials.commands.IEssentialsCommand;
import com.earth2me.essentials.commands.NoChargeException; import com.earth2me.essentials.commands.NoChargeException;
import com.earth2me.essentials.commands.NotEnoughArgumentsException; import com.earth2me.essentials.commands.NotEnoughArgumentsException;
@ -33,14 +27,29 @@ import com.earth2me.essentials.register.payment.Methods;
import com.earth2me.essentials.signs.SignBlockListener; import com.earth2me.essentials.signs.SignBlockListener;
import com.earth2me.essentials.signs.SignEntityListener; import com.earth2me.essentials.signs.SignEntityListener;
import com.earth2me.essentials.signs.SignPlayerListener; import com.earth2me.essentials.signs.SignPlayerListener;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.logging.Logger;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.PluginCommand; import org.bukkit.command.PluginCommand;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.Event.Priority; import org.bukkit.event.Event.Priority;
import org.bukkit.event.Event.Type; import org.bukkit.event.Event.Type;
import org.bukkit.plugin.*; import org.bukkit.plugin.InvalidDescriptionException;
import org.bukkit.plugin.java.*; import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitScheduler; import org.bukkit.scheduler.BukkitScheduler;
@ -59,6 +68,7 @@ public class Essentials extends JavaPlugin implements IEssentials
private transient ItemDb itemDb; private transient ItemDb itemDb;
private transient final Methods paymentMethod = new Methods(); private transient final Methods paymentMethod = new Methods();
private transient PermissionsHandler permissionsHandler; private transient PermissionsHandler permissionsHandler;
private transient AlternativeCommandsHandler alternativeCommandsHandler;
private transient UserMap userMap; private transient UserMap userMap;
private transient ExecuteTimer execTimer; private transient ExecuteTimer execTimer;
@ -93,11 +103,6 @@ public class Essentials extends JavaPlugin implements IEssentials
{ {
execTimer = new ExecuteTimer(); execTimer = new ExecuteTimer();
execTimer.start(); execTimer.start();
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"));
}
final EssentialsUpgrade upgrade = new EssentialsUpgrade(this); final EssentialsUpgrade upgrade = new EssentialsUpgrade(this);
upgrade.beforeSettings(); upgrade.beforeSettings();
execTimer.mark("Upgrade"); execTimer.mark("Upgrade");
@ -148,6 +153,7 @@ public class Essentials extends JavaPlugin implements IEssentials
} }
permissionsHandler = new PermissionsHandler(this, settings.useBukkitPermissions()); permissionsHandler = new PermissionsHandler(this, settings.useBukkitPermissions());
alternativeCommandsHandler = new AlternativeCommandsHandler(this);
final EssentialsPluginListener serverListener = new EssentialsPluginListener(this); final EssentialsPluginListener serverListener = new EssentialsPluginListener(this);
pm.registerEvent(Type.PLUGIN_ENABLE, serverListener, Priority.Low, this); pm.registerEvent(Type.PLUGIN_ENABLE, serverListener, Priority.Low, this);
pm.registerEvent(Type.PLUGIN_DISABLE, serverListener, Priority.Low, this); pm.registerEvent(Type.PLUGIN_DISABLE, serverListener, Priority.Low, this);
@ -237,120 +243,6 @@ public class Essentials extends JavaPlugin implements IEssentials
} }
Util.updateLocale(settings.getLocale(), this); Util.updateLocale(settings.getLocale(), this);
// for motd
getConfiguration().load();
}
@Override
public String[] getMotd(final CommandSender sender, final String def)
{
return getLines(sender, "motd", def);
}
@Override
public String[] getLines(final CommandSender sender, final String node, final String def)
{
List<String> lines = (List<String>)getConfiguration().getProperty(node);
if (lines == null)
{
return new String[0];
}
String[] retval = new String[lines.size()];
if (lines.isEmpty() || lines.get(0) == null)
{
try
{
lines = new ArrayList<String>();
// "[]" in YaML indicates empty array, so respect that
if (!getConfiguration().getString(node, def).equals("[]"))
{
lines.add(getConfiguration().getString(node, def));
retval = new String[lines.size()];
}
}
catch (Throwable ex2)
{
LOGGER.log(Level.WARNING, Util.format("corruptNodeInConfig", node));
return new String[0];
}
}
// if still empty, call it a day
if (lines == null || lines.isEmpty() || lines.get(0) == null)
{
return new String[0];
}
for (int i = 0; i < lines.size(); i++)
{
String m = lines.get(i);
if (m == null)
{
continue;
}
m = m.replace('&', '§').replace("§§", "&");
if (sender instanceof User || sender instanceof Player)
{
User user = getUser(sender);
m = m.replace("{PLAYER}", user.getDisplayName());
m = m.replace("{IP}", user.getAddress().toString());
m = m.replace("{BALANCE}", Double.toString(user.getMoney()));
m = m.replace("{MAILS}", Integer.toString(user.getMails().size()));
m = m.replace("{WORLD}", user.getLocation().getWorld().getName());
}
int playerHidden = 0;
for (Player p : getServer().getOnlinePlayers())
{
if (getUser(p).isHidden())
{
playerHidden++;
}
}
m = m.replace("{ONLINE}", Integer.toString(getServer().getOnlinePlayers().length - playerHidden));
m = m.replace("{UNIQUE}", Integer.toString(userMap.getUniqueUsers()));
if (m.matches(".*\\{PLAYERLIST\\}.*"))
{
StringBuilder online = new StringBuilder();
for (Player p : getServer().getOnlinePlayers())
{
if (getUser(p).isHidden())
{
continue;
}
if (online.length() > 0)
{
online.append(", ");
}
online.append(p.getDisplayName());
}
m = m.replace("{PLAYERLIST}", online.toString());
}
if (sender instanceof Player)
{
try
{
Class User = getClassLoader().loadClass("bukkit.Vandolis.User");
Object vuser = User.getConstructor(User.class).newInstance((Player)sender);
m = m.replace("{RED:BALANCE}", User.getMethod("getMoney").invoke(vuser).toString());
m = m.replace("{RED:BUYS}", User.getMethod("getNumTransactionsBuy").invoke(vuser).toString());
m = m.replace("{RED:SELLS}", User.getMethod("getNumTransactionsSell").invoke(vuser).toString());
}
catch (Throwable ex)
{
m = m.replace("{RED:BALANCE}", "N/A");
m = m.replace("{RED:BUYS}", "N/A");
m = m.replace("{RED:SELLS}", "N/A");
}
}
retval[i] = m + " ";
}
return retval;
} }
@Override @Override
@ -365,31 +257,13 @@ public class Essentials extends JavaPlugin implements IEssentials
// Allow plugins to override the command via onCommand // Allow plugins to override the command via onCommand
if (!getSettings().isCommandOverridden(command.getName()) && !commandLabel.startsWith("e")) if (!getSettings().isCommandOverridden(command.getName()) && !commandLabel.startsWith("e"))
{ {
for (Plugin p : getServer().getPluginManager().getPlugins()) final PluginCommand pc = alternativeCommandsHandler.getAlternative(commandLabel);
{
if (p.getDescription().getMain().contains("com.earth2me.essentials"))
{
continue;
}
final PluginDescriptionFile desc = p.getDescription();
if (desc == null)
{
continue;
}
if (desc.getName() == null)
{
continue;
}
final PluginCommand pc = getServer().getPluginCommand(desc.getName() + ":" + commandLabel);
if (pc != null) if (pc != null)
{ {
LOGGER.info("Essentials: Alternative command " + commandLabel + " found, using " + pc.getLabel());
return pc.execute(sender, commandLabel, args); return pc.execute(sender, commandLabel, args);
} }
} }
}
try try
{ {
@ -663,6 +537,12 @@ public class Essentials extends JavaPlugin implements IEssentials
return permissionsHandler; return permissionsHandler;
} }
@Override
public AlternativeCommandsHandler getAlternativeCommandsHandler()
{
return alternativeCommandsHandler;
}
@Override @Override
public ItemDb getItemDb() public ItemDb getItemDb()
{ {

View File

@ -99,6 +99,7 @@ public class EssentialsBlockListener extends BlockListener
ess.scheduleSyncDelayedTask( ess.scheduleSyncDelayedTask(
new Runnable() new Runnable()
{ {
@Override
public void run() public void run()
{ {
user.getInventory().addItem(is); user.getInventory().addItem(is);

View File

@ -1,12 +1,6 @@
package com.earth2me.essentials; package com.earth2me.essentials;
import java.io.File; import java.io.*;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.logging.Level; import java.util.logging.Level;
@ -148,7 +142,6 @@ public class EssentialsConf extends Configuration
catch (IOException ex) catch (IOException ex)
{ {
LOGGER.log(Level.SEVERE, Util.format("failedToWriteConfig", configFile.toString()), ex); LOGGER.log(Level.SEVERE, Util.format("failedToWriteConfig", configFile.toString()), ex);
return;
} }
finally finally
{ {

View File

@ -1,19 +1,11 @@
package com.earth2me.essentials; package com.earth2me.essentials;
import java.util.List; import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityCombustEvent;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.event.entity.EntityListener;
import org.bukkit.event.entity.EntityRegainHealthEvent;
import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason; import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason;
import org.bukkit.event.entity.FoodLevelChangeEvent; import org.bukkit.event.entity.*;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;

View File

@ -1,5 +1,10 @@
package com.earth2me.essentials; package com.earth2me.essentials;
import com.earth2me.essentials.textreader.IText;
import com.earth2me.essentials.textreader.KeywordReplacer;
import com.earth2me.essentials.textreader.TextInput;
import com.earth2me.essentials.textreader.TextPager;
import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
@ -8,26 +13,10 @@ import java.util.logging.Logger;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.block.Action; import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerAnimationEvent;
import org.bukkit.event.player.PlayerAnimationType;
import org.bukkit.event.player.PlayerBedEnterEvent;
import org.bukkit.event.player.PlayerBucketEmptyEvent;
import org.bukkit.event.player.PlayerChatEvent;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.event.player.PlayerEggThrowEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerListener;
import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerLoginEvent.Result; import org.bukkit.event.player.PlayerLoginEvent.Result;
import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.*;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.event.player.PlayerTeleportEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -135,6 +124,7 @@ public class EssentialsPlayerListener extends PlayerListener
} }
final Thread thread = new Thread(new Runnable() final Thread thread = new Thread(new Runnable()
{ {
@Override
public void run() public void run()
{ {
try try
@ -150,7 +140,6 @@ public class EssentialsPlayerListener extends PlayerListener
} }
catch (InterruptedException ex) catch (InterruptedException ex)
{ {
return;
} }
} }
}); });
@ -177,13 +166,16 @@ public class EssentialsPlayerListener extends PlayerListener
if (!ess.getSettings().isCommandDisabled("motd") && user.isAuthorized("essentials.motd")) if (!ess.getSettings().isCommandDisabled("motd") && user.isAuthorized("essentials.motd"))
{ {
for (String m : ess.getMotd(user, null)) try
{ {
if (m == null) final IText input = new TextInput(user, "motd", true, ess);
{ final IText output = new KeywordReplacer(input, user, ess);
continue; final TextPager pager = new TextPager(output, false);
pager.showPage("1", null, user);
} }
user.sendMessage(m); catch (IOException ex)
{
LOGGER.log(Level.WARNING, ex.getMessage(), ex);
} }
} }
@ -308,6 +300,7 @@ public class EssentialsPlayerListener extends PlayerListener
event.getItemStack().setType(event.getBucket()); event.getItemStack().setType(event.getBucket());
ess.scheduleSyncDelayedTask(new Runnable() ess.scheduleSyncDelayedTask(new Runnable()
{ {
@Override
public void run() public void run()
{ {
user.updateInventory(); user.updateInventory();

View File

@ -21,6 +21,7 @@ public class EssentialsPluginListener extends ServerListener implements IConf
public void onPluginEnable(final PluginEnableEvent event) public void onPluginEnable(final PluginEnableEvent event)
{ {
ess.getPermissionsHandler().checkPermissions(); ess.getPermissionsHandler().checkPermissions();
ess.getAlternativeCommandsHandler().addPlugin(event.getPlugin());
if (!ess.getPaymentMethod().hasMethod() && ess.getPaymentMethod().setMethod(ess.getServer().getPluginManager())) if (!ess.getPaymentMethod().hasMethod() && ess.getPaymentMethod().setMethod(ess.getServer().getPluginManager()))
{ {
LOGGER.log(Level.INFO, "[Essentials] Payment method found (" + ess.getPaymentMethod().getMethod().getName() + " version: " + ess.getPaymentMethod().getMethod().getVersion() + ")"); LOGGER.log(Level.INFO, "[Essentials] Payment method found (" + ess.getPaymentMethod().getMethod().getName() + " version: " + ess.getPaymentMethod().getMethod().getVersion() + ")");
@ -31,6 +32,7 @@ public class EssentialsPluginListener extends ServerListener implements IConf
public void onPluginDisable(final PluginDisableEvent event) public void onPluginDisable(final PluginDisableEvent event)
{ {
ess.getPermissionsHandler().checkPermissions(); ess.getPermissionsHandler().checkPermissions();
ess.getAlternativeCommandsHandler().removePlugin(event.getPlugin());
// Check to see if the plugin thats being disabled is the one we are using // Check to see if the plugin thats being disabled is the one we are using
if (ess.getPaymentMethod() != null && ess.getPaymentMethod().hasMethod() && ess.getPaymentMethod().checkDisabled(event.getPlugin())) if (ess.getPaymentMethod() != null && ess.getPaymentMethod().hasMethod() && ess.getPaymentMethod().checkDisabled(event.getPlugin()))
{ {

View File

@ -1,21 +1,10 @@
package com.earth2me.essentials; package com.earth2me.essentials;
import java.io.BufferedInputStream; import java.io.*;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.math.BigInteger; import java.math.BigInteger;
import java.security.DigestInputStream; import java.security.DigestInputStream;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.util.ArrayList; import java.util.*;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -82,6 +71,50 @@ public class EssentialsUpgrade
} }
} }
private void moveMotdRulesToFile(String name)
{
if (doneFile.getBoolean("move"+name+"ToFile", false))
{
return;
}
try
{
final File file = new File(ess.getDataFolder(), name+".txt");
if (file.exists())
{
return;
}
final File configFile = new File(ess.getDataFolder(), "config.yml");
if (!configFile.exists())
{
return;
}
final EssentialsConf conf = new EssentialsConf(configFile);
conf.load();
List<String> lines = conf.getStringList(name, null);
if (lines != null && !lines.isEmpty())
{
if (!file.createNewFile())
{
throw new IOException("Failed to create file " + file);
}
PrintWriter writer = new PrintWriter(file);
for (String line : lines)
{
writer.println(line);
}
writer.close();
}
doneFile.setProperty("move"+name+"ToFile", true);
doneFile.save();
}
catch (Throwable e)
{
LOGGER.log(Level.SEVERE, Util.i18n("upgradingFilesError"), e);
}
}
private void removeLinesFromConfig(File file, String regex, String info) throws Exception private void removeLinesFromConfig(File file, String regex, String info) throws Exception
{ {
boolean needUpdate = false; boolean needUpdate = false;
@ -654,6 +687,8 @@ public class EssentialsUpgrade
ess.getDataFolder().mkdirs(); ess.getDataFolder().mkdirs();
} }
moveWorthValuesToWorthYml(); moveWorthValuesToWorthYml();
moveMotdRulesToFile("motd");
moveMotdRulesToFile("rules");
} }
public void afterSettings() public void afterSettings()

View File

@ -1,12 +1,17 @@
package com.earth2me.essentials; package com.earth2me.essentials;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Locale;
public class ExecuteTimer public class ExecuteTimer
{ {
private final List<ExecuteRecord> times; private final transient List<ExecuteRecord> times;
private final transient DecimalFormat decimalFormat = new DecimalFormat("#0.000", DecimalFormatSymbols.getInstance(Locale.US));
public ExecuteTimer() public ExecuteTimer()
{ {
@ -24,7 +29,7 @@ public class ExecuteTimer
{ {
if (!times.isEmpty() || "start".equals(label)) if (!times.isEmpty() || "start".equals(label))
{ {
times.add(new ExecuteRecord(label, System.currentTimeMillis())); times.add(new ExecuteRecord(label, System.nanoTime()));
} }
} }
@ -36,7 +41,7 @@ public class ExecuteTimer
long time0 = 0; long time0 = 0;
long time1 = 0; long time1 = 0;
long time2 = 0; long time2 = 0;
long duration; double duration;
for (ExecuteRecord pair : times) for (ExecuteRecord pair : times)
{ {
@ -44,8 +49,8 @@ public class ExecuteTimer
time2 = (Long)pair.getTime(); time2 = (Long)pair.getTime();
if (time1 > 0) if (time1 > 0)
{ {
duration = time2 - time1; duration = (time2 - time1)/1000000.0;
output.append(mark).append(": ").append(duration).append("ms - "); output.append(mark).append(": ").append(decimalFormat.format(duration)).append("ms - ");
} }
else else
{ {
@ -53,8 +58,8 @@ public class ExecuteTimer
} }
time1 = time2; time1 = time2;
} }
duration = time1 - time0; duration = (time1 - time0)/1000000.0;
output.append("Total: ").append(duration).append("ms"); output.append("Total: ").append(decimalFormat.format(duration)).append("ms");
times.clear(); times.clear();
return output.toString(); return output.toString();
} }

View File

@ -2,23 +2,10 @@ package com.earth2me.essentials;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import org.bukkit.BlockChangeDelegate; import org.bukkit.*;
import org.bukkit.Chunk;
import org.bukkit.ChunkSnapshot;
import org.bukkit.Difficulty;
import org.bukkit.Effect;
import org.bukkit.Location;
import org.bukkit.TreeType;
import org.bukkit.World;
import org.bukkit.block.Biome; import org.bukkit.block.Biome;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.Arrow; import org.bukkit.entity.*;
import org.bukkit.entity.CreatureType;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Item;
import org.bukkit.entity.LightningStrike;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.generator.BlockPopulator; import org.bukkit.generator.BlockPopulator;
import org.bukkit.generator.ChunkGenerator; import org.bukkit.generator.ChunkGenerator;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -36,367 +23,440 @@ public class FakeWorld implements World
this.env = environment; this.env = environment;
} }
@Override
public Block getBlockAt(int i, int i1, int i2) public Block getBlockAt(int i, int i1, int i2)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public Block getBlockAt(Location lctn) public Block getBlockAt(Location lctn)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public int getBlockTypeIdAt(int i, int i1, int i2) public int getBlockTypeIdAt(int i, int i1, int i2)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public int getBlockTypeIdAt(Location lctn) public int getBlockTypeIdAt(Location lctn)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public int getHighestBlockYAt(int i, int i1) public int getHighestBlockYAt(int i, int i1)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public int getHighestBlockYAt(Location lctn) public int getHighestBlockYAt(Location lctn)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public Chunk getChunkAt(int i, int i1) public Chunk getChunkAt(int i, int i1)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public Chunk getChunkAt(Location lctn) public Chunk getChunkAt(Location lctn)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public Chunk getChunkAt(Block block) public Chunk getChunkAt(Block block)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean isChunkLoaded(Chunk chunk) public boolean isChunkLoaded(Chunk chunk)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public Chunk[] getLoadedChunks() public Chunk[] getLoadedChunks()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public void loadChunk(Chunk chunk) public void loadChunk(Chunk chunk)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean isChunkLoaded(int i, int i1) public boolean isChunkLoaded(int i, int i1)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public void loadChunk(int i, int i1) public void loadChunk(int i, int i1)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean loadChunk(int i, int i1, boolean bln) public boolean loadChunk(int i, int i1, boolean bln)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean unloadChunk(int i, int i1) public boolean unloadChunk(int i, int i1)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean unloadChunk(int i, int i1, boolean bln) public boolean unloadChunk(int i, int i1, boolean bln)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean unloadChunk(int i, int i1, boolean bln, boolean bln1) public boolean unloadChunk(int i, int i1, boolean bln, boolean bln1)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean unloadChunkRequest(int i, int i1) public boolean unloadChunkRequest(int i, int i1)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean unloadChunkRequest(int i, int i1, boolean bln) public boolean unloadChunkRequest(int i, int i1, boolean bln)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean regenerateChunk(int i, int i1) public boolean regenerateChunk(int i, int i1)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean refreshChunk(int i, int i1) public boolean refreshChunk(int i, int i1)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public Item dropItem(Location lctn, ItemStack is) public Item dropItem(Location lctn, ItemStack is)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public Item dropItemNaturally(Location lctn, ItemStack is) public Item dropItemNaturally(Location lctn, ItemStack is)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public Arrow spawnArrow(Location lctn, Vector vector, float f, float f1) public Arrow spawnArrow(Location lctn, Vector vector, float f, float f1)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean generateTree(Location lctn, TreeType tt) public boolean generateTree(Location lctn, TreeType tt)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean generateTree(Location lctn, TreeType tt, BlockChangeDelegate bcd) public boolean generateTree(Location lctn, TreeType tt, BlockChangeDelegate bcd)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public LivingEntity spawnCreature(Location lctn, CreatureType ct) public LivingEntity spawnCreature(Location lctn, CreatureType ct)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public LightningStrike strikeLightning(Location lctn) public LightningStrike strikeLightning(Location lctn)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public LightningStrike strikeLightningEffect(Location lctn) public LightningStrike strikeLightningEffect(Location lctn)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public List<Entity> getEntities() public List<Entity> getEntities()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public List<LivingEntity> getLivingEntities() public List<LivingEntity> getLivingEntities()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public List<Player> getPlayers() public List<Player> getPlayers()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public String getName() public String getName()
{ {
return name; return name;
} }
@Override
public long getId() public long getId()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public Location getSpawnLocation() public Location getSpawnLocation()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean setSpawnLocation(int i, int i1, int i2) public boolean setSpawnLocation(int i, int i1, int i2)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public long getTime() public long getTime()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public void setTime(long l) public void setTime(long l)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public long getFullTime() public long getFullTime()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public void setFullTime(long l) public void setFullTime(long l)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean hasStorm() public boolean hasStorm()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public void setStorm(boolean bln) public void setStorm(boolean bln)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public int getWeatherDuration() public int getWeatherDuration()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public void setWeatherDuration(int i) public void setWeatherDuration(int i)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean isThundering() public boolean isThundering()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public void setThundering(boolean bln) public void setThundering(boolean bln)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public int getThunderDuration() public int getThunderDuration()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public void setThunderDuration(int i) public void setThunderDuration(int i)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public Environment getEnvironment() public Environment getEnvironment()
{ {
return env; return env;
} }
@Override
public long getSeed() public long getSeed()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean getPVP() public boolean getPVP()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public void setPVP(boolean bln) public void setPVP(boolean bln)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public void save() public void save()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean createExplosion(double d, double d1, double d2, float f) public boolean createExplosion(double d, double d1, double d2, float f)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean createExplosion(Location lctn, float f) public boolean createExplosion(Location lctn, float f)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public ChunkGenerator getGenerator() public ChunkGenerator getGenerator()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public List<BlockPopulator> getPopulators() public List<BlockPopulator> getPopulators()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public void playEffect(Location lctn, Effect effect, int i) public void playEffect(Location lctn, Effect effect, int i)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public void playEffect(Location lctn, Effect effect, int i, int i1) public void playEffect(Location lctn, Effect effect, int i, int i1)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean createExplosion(double d, double d1, double d2, float f, boolean bln) public boolean createExplosion(double d, double d1, double d2, float f, boolean bln)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean createExplosion(Location lctn, float f, boolean bln) public boolean createExplosion(Location lctn, float f, boolean bln)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public <T extends Entity> T spawn(Location lctn, Class<T> type) throws IllegalArgumentException public <T extends Entity> T spawn(Location lctn, Class<T> type) throws IllegalArgumentException
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public ChunkSnapshot getEmptyChunkSnapshot(int i, int i1, boolean bln, boolean bln1) public ChunkSnapshot getEmptyChunkSnapshot(int i, int i1, boolean bln, boolean bln1)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public void setSpawnFlags(boolean bln, boolean bln1) public void setSpawnFlags(boolean bln, boolean bln1)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean getAllowAnimals() public boolean getAllowAnimals()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean getAllowMonsters() public boolean getAllowMonsters()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public UUID getUID() public UUID getUID()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public Block getHighestBlockAt(int i, int i1) public Block getHighestBlockAt(int i, int i1)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public Block getHighestBlockAt(Location lctn) public Block getHighestBlockAt(Location lctn)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public Biome getBiome(int i, int i1) public Biome getBiome(int i, int i1)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public double getTemperature(int i, int i1) public double getTemperature(int i, int i1)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public double getHumidity(int i, int i1) public double getHumidity(int i, int i1)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");

View File

@ -0,0 +1,162 @@
package com.earth2me.essentials;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.MessageFormat;
import java.util.*;
import java.util.logging.Level;
import org.bukkit.Bukkit;
public class I18n
{
private static I18n instance;
private static final String MESSAGES = "messages";
private final transient Locale defaultLocale = Locale.getDefault();
private transient Locale currentLocale = defaultLocale;
private transient ResourceBundle customBundle = ResourceBundle.getBundle(MESSAGES, defaultLocale);
private transient ResourceBundle localeBundle = ResourceBundle.getBundle(MESSAGES, defaultLocale);
private final transient ResourceBundle defaultBundle = ResourceBundle.getBundle(MESSAGES, Locale.ENGLISH);
private final transient Map<String, MessageFormat> messageFormatCache = new HashMap<String, MessageFormat>();
public I18n()
{
instance = this;
}
public Locale getCurrentLocale()
{
return currentLocale;
}
public String translate(final String string)
{
try
{
try
{
return customBundle.getString(string);
}
catch (MissingResourceException ex)
{
return localeBundle.getString(string);
}
}
catch (MissingResourceException ex)
{
Bukkit.getLogger().log(Level.WARNING, String.format("Missing translation key \"%s\" in translation file %s", ex.getKey(), localeBundle.getLocale().toString()), ex);
return defaultBundle.getString(string);
}
}
public static String _(final String string, final Object... objects)
{
if (objects.length == 0)
{
return instance.translate(string);
}
else
{
return instance.format(string, objects);
}
}
public String format(final String string, final Object... objects)
{
final String format = translate(string);
MessageFormat messageFormat = messageFormatCache.get(format);
if (messageFormat == null)
{
messageFormat = new MessageFormat(format);
messageFormatCache.put(format, messageFormat);
}
return messageFormat.format(objects);
}
public void updateLocale(final String loc, final IEssentials ess)
{
if (loc == null || loc.isEmpty())
{
return;
}
final String[] parts = loc.split("[_\\.]");
if (parts.length == 1)
{
currentLocale = new Locale(parts[0]);
}
if (parts.length == 2)
{
currentLocale = new Locale(parts[0], parts[1]);
}
if (parts.length == 3)
{
currentLocale = new Locale(parts[0], parts[1], parts[2]);
}
Bukkit.getLogger().log(Level.INFO, String.format("Using locale %s", currentLocale.toString()));
customBundle = ResourceBundle.getBundle(MESSAGES, currentLocale, new FileResClassLoader(I18n.class.getClassLoader(), ess));
localeBundle = ResourceBundle.getBundle(MESSAGES, currentLocale);
}
public static String lowerCase(final String input)
{
return input == null ? null : input.toLowerCase(Locale.ENGLISH);
}
public static String capitalCase(final String input)
{
return input == null || input.length() == 0
? input
: input.toUpperCase(Locale.ENGLISH).charAt(0)
+ input.toLowerCase(Locale.ENGLISH).substring(1);
}
private static class FileResClassLoader extends ClassLoader
{
private final transient File dataFolder;
public FileResClassLoader(final ClassLoader classLoader, final IEssentials ess)
{
super(classLoader);
this.dataFolder = ess.getDataFolder();
}
@Override
public URL getResource(final String string)
{
final File file = new File(dataFolder, string);
if (file.exists())
{
try
{
return file.toURI().toURL();
}
catch (MalformedURLException ex)
{
}
}
return super.getResource(string);
}
@Override
public InputStream getResourceAsStream(final String string)
{
final File file = new File(dataFolder, string);
if (file.exists())
{
try
{
return new FileInputStream(file);
}
catch (FileNotFoundException ex)
{
}
}
return super.getResourceAsStream(string);
}
}
}

View File

@ -29,10 +29,6 @@ public interface IEssentials extends Plugin
BukkitScheduler getScheduler(); BukkitScheduler getScheduler();
String[] getMotd(CommandSender sender, String def);
String[] getLines(CommandSender sender, String node, String def);
Jail getJail(); Jail getJail();
Warps getWarps(); Warps getWarps();
@ -57,6 +53,8 @@ public interface IEssentials extends Plugin
PermissionsHandler getPermissionsHandler(); PermissionsHandler getPermissionsHandler();
AlternativeCommandsHandler getAlternativeCommandsHandler();
void showError(final CommandSender sender, final Throwable exception, final String commandLabel); void showError(final CommandSender sender, final Throwable exception, final String commandLabel);
ItemDb getItemDb(); ItemDb getItemDb();

View File

@ -60,6 +60,7 @@ public class Jail extends BlockListener implements IConf
return config.getKeys(null); return config.getKeys(null);
} }
@Override
public void reloadConfig() public void reloadConfig()
{ {
config.load(); config.load();

View File

@ -2,11 +2,7 @@ package com.earth2me.essentials;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.*;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerListener;
import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.event.player.PlayerTeleportEvent;
public class JailPlayerListener extends PlayerListener public class JailPlayerListener extends PlayerListener

View File

@ -1,15 +1,6 @@
package com.earth2me.essentials; package com.earth2me.essentials;
import java.io.BufferedInputStream; import java.io.*;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.math.BigInteger; import java.math.BigInteger;
import java.security.DigestInputStream; import java.security.DigestInputStream;
import java.security.DigestOutputStream; import java.security.DigestOutputStream;
@ -138,12 +129,12 @@ public class ManagedFile
try try
{ {
String hash = reader.readLine(); String hash = reader.readLine();
if (hash.matches("#[a-f0-9]{32}")) if (hash != null && hash.matches("#[a-f0-9]{32}"))
{ {
hash = hash.substring(1); hash = hash.substring(1);
bais.reset(); bais.reset();
final String versionline = reader.readLine(); final String versionline = reader.readLine();
if (versionline.matches("#version: .+")) if (versionline != null && versionline.matches("#version: .+"))
{ {
final String versioncheck = versionline.substring(10); final String versioncheck = versionline.substring(10);
if (!versioncheck.equalsIgnoreCase(version)) if (!versioncheck.equalsIgnoreCase(version))

View File

@ -6,23 +6,9 @@ import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
import lombok.Delegate; import lombok.Delegate;
import org.bukkit.Achievement; import org.bukkit.*;
import org.bukkit.Effect;
import org.bukkit.GameMode;
import org.bukkit.Instrument;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Note;
import org.bukkit.Server;
import org.bukkit.Statistic;
import org.bukkit.World;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.Arrow; import org.bukkit.entity.*;
import org.bukkit.entity.Egg;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Snowball;
import org.bukkit.entity.Vehicle;
import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory; import org.bukkit.inventory.PlayerInventory;
@ -66,77 +52,93 @@ public class OfflinePlayer implements Player
{ {
} }
@Override
public void setCompassTarget(Location lctn) public void setCompassTarget(Location lctn)
{ {
} }
@Override
public InetSocketAddress getAddress() public InetSocketAddress getAddress()
{ {
return null; return null;
} }
@Override
public void kickPlayer(String string) public void kickPlayer(String string)
{ {
} }
@Override
public PlayerInventory getInventory() public PlayerInventory getInventory()
{ {
return null; return null;
} }
@Override
public ItemStack getItemInHand() public ItemStack getItemInHand()
{ {
return null; return null;
} }
@Override
public void setItemInHand(ItemStack is) public void setItemInHand(ItemStack is)
{ {
} }
@Override
public int getHealth() public int getHealth()
{ {
return 0; return 0;
} }
@Override
public void setHealth(int i) public void setHealth(int i)
{ {
} }
@Override
public Egg throwEgg() public Egg throwEgg()
{ {
return null; return null;
} }
@Override
public Snowball throwSnowball() public Snowball throwSnowball()
{ {
return null; return null;
} }
@Override
public Arrow shootArrow() public Arrow shootArrow()
{ {
return null; return null;
} }
@Override
public boolean isInsideVehicle() public boolean isInsideVehicle()
{ {
return false; return false;
} }
@Override
public boolean leaveVehicle() public boolean leaveVehicle()
{ {
return false; return false;
} }
@Override
public Vehicle getVehicle() public Vehicle getVehicle()
{ {
return null; return null;
} }
@Override
public Location getLocation() public Location getLocation()
{ {
return location; return location;
} }
@Override
public World getWorld() public World getWorld()
{ {
return world; return world;
@ -156,11 +158,13 @@ public class OfflinePlayer implements Player
{ {
} }
@Override
public int getEntityId() public int getEntityId()
{ {
return -1; return -1;
} }
@Override
public boolean performCommand(String string) public boolean performCommand(String string)
{ {
return false; return false;
@ -171,91 +175,109 @@ public class OfflinePlayer implements Player
return false; return false;
} }
@Override
public int getRemainingAir() public int getRemainingAir()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void setRemainingAir(int i) public void setRemainingAir(int i)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public int getMaximumAir() public int getMaximumAir()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void setMaximumAir(int i) public void setMaximumAir(int i)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public boolean isSneaking() public boolean isSneaking()
{ {
return false; return false;
} }
@Override
public void setSneaking(boolean bln) public void setSneaking(boolean bln)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void updateInventory() public void updateInventory()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void chat(String string) public void chat(String string)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public double getEyeHeight() public double getEyeHeight()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public double getEyeHeight(boolean bln) public double getEyeHeight(boolean bln)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public List<Block> getLineOfSight(HashSet<Byte> hs, int i) public List<Block> getLineOfSight(HashSet<Byte> hs, int i)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public Block getTargetBlock(HashSet<Byte> hs, int i) public Block getTargetBlock(HashSet<Byte> hs, int i)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public List<Block> getLastTwoTargetBlocks(HashSet<Byte> hs, int i) public List<Block> getLastTwoTargetBlocks(HashSet<Byte> hs, int i)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public int getFireTicks() public int getFireTicks()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public int getMaxFireTicks() public int getMaxFireTicks()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void setFireTicks(int i) public void setFireTicks(int i)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void remove() public void remove()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public Server getServer() public Server getServer()
{ {
return ess == null ? null : ess.getServer(); return ess == null ? null : ess.getServer();
@ -271,295 +293,354 @@ public class OfflinePlayer implements Player
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void setVelocity(Vector vector) public void setVelocity(Vector vector)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public Vector getVelocity() public Vector getVelocity()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void damage(int i) public void damage(int i)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void damage(int i, Entity entity) public void damage(int i, Entity entity)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public Location getEyeLocation() public Location getEyeLocation()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void sendRawMessage(String string) public void sendRawMessage(String string)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public Location getCompassTarget() public Location getCompassTarget()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public int getMaximumNoDamageTicks() public int getMaximumNoDamageTicks()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void setMaximumNoDamageTicks(int i) public void setMaximumNoDamageTicks(int i)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public int getLastDamage() public int getLastDamage()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void setLastDamage(int i) public void setLastDamage(int i)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public int getNoDamageTicks() public int getNoDamageTicks()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void setNoDamageTicks(int i) public void setNoDamageTicks(int i)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public boolean teleport(Location lctn) public boolean teleport(Location lctn)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public boolean teleport(Entity entity) public boolean teleport(Entity entity)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public Entity getPassenger() public Entity getPassenger()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public boolean setPassenger(Entity entity) public boolean setPassenger(Entity entity)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public boolean isEmpty() public boolean isEmpty()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public boolean eject() public boolean eject()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void saveData() public void saveData()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void loadData() public void loadData()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public boolean isSleeping() public boolean isSleeping()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public int getSleepTicks() public int getSleepTicks()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public List<Entity> getNearbyEntities(double d, double d1, double d2) public List<Entity> getNearbyEntities(double d, double d1, double d2)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public boolean isDead() public boolean isDead()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public float getFallDistance() public float getFallDistance()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void setFallDistance(float f) public void setFallDistance(float f)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void setSleepingIgnored(boolean bln) public void setSleepingIgnored(boolean bln)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public boolean isSleepingIgnored() public boolean isSleepingIgnored()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void awardAchievement(Achievement a) public void awardAchievement(Achievement a)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void incrementStatistic(Statistic ststc) public void incrementStatistic(Statistic ststc)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void incrementStatistic(Statistic ststc, int i) public void incrementStatistic(Statistic ststc, int i)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void incrementStatistic(Statistic ststc, Material mtrl) public void incrementStatistic(Statistic ststc, Material mtrl)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void incrementStatistic(Statistic ststc, Material mtrl, int i) public void incrementStatistic(Statistic ststc, Material mtrl, int i)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void playNote(Location lctn, byte b, byte b1) public void playNote(Location lctn, byte b, byte b1)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void sendBlockChange(Location lctn, Material mtrl, byte b) public void sendBlockChange(Location lctn, Material mtrl, byte b)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void sendBlockChange(Location lctn, int i, byte b) public void sendBlockChange(Location lctn, int i, byte b)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void setLastDamageCause(EntityDamageEvent ede) public void setLastDamageCause(EntityDamageEvent ede)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public EntityDamageEvent getLastDamageCause() public EntityDamageEvent getLastDamageCause()
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public void playEffect(Location lctn, Effect effect, int i) public void playEffect(Location lctn, Effect effect, int i)
{ {
throw new UnsupportedOperationException(Util.i18n("notSupportedYet")); throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
} }
@Override
public boolean sendChunkChange(Location lctn, int i, int i1, int i2, byte[] bytes) public boolean sendChunkChange(Location lctn, int i, int i1, int i2, byte[] bytes)
{ {
return true; return true;
} }
@Override
public UUID getUniqueId() public UUID getUniqueId()
{ {
return uniqueId; return uniqueId;
} }
@Override
public void playNote(Location lctn, Instrument i, Note note) public void playNote(Location lctn, Instrument i, Note note)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public void setPlayerTime(long l, boolean bln) public void setPlayerTime(long l, boolean bln)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public long getPlayerTime() public long getPlayerTime()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public long getPlayerTimeOffset() public long getPlayerTimeOffset()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean isPlayerTimeRelative() public boolean isPlayerTimeRelative()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public void resetPlayerTime() public void resetPlayerTime()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public boolean isPermissionSet(String string) public boolean isPermissionSet(String string)
{ {
return false; return false;
} }
@Override
public boolean isPermissionSet(Permission prmsn) public boolean isPermissionSet(Permission prmsn)
{ {
return false; return false;
} }
@Override
public boolean hasPermission(String string) public boolean hasPermission(String string)
{ {
return false; return false;
} }
@Override
public boolean hasPermission(Permission prmsn) public boolean hasPermission(Permission prmsn)
{ {
return false; return false;
} }
@Override
public PermissionAttachment addAttachment(Plugin plugin, String string, boolean bln) public PermissionAttachment addAttachment(Plugin plugin, String string, boolean bln)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public PermissionAttachment addAttachment(Plugin plugin) public PermissionAttachment addAttachment(Plugin plugin)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public PermissionAttachment addAttachment(Plugin plugin, String string, boolean bln, int i) public PermissionAttachment addAttachment(Plugin plugin, String string, boolean bln, int i)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public PermissionAttachment addAttachment(Plugin plugin, int i) public PermissionAttachment addAttachment(Plugin plugin, int i)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public void removeAttachment(PermissionAttachment pa) public void removeAttachment(PermissionAttachment pa)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override
public void recalculatePermissions() public void recalculatePermissions()
{ {
} }
@Override
public Set<PermissionAttachmentInfo> getEffectivePermissions() public Set<PermissionAttachmentInfo> getEffectivePermissions()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");

View File

@ -1,11 +1,11 @@
package com.earth2me.essentials; package com.earth2me.essentials;
import lombok.Delegate; import lombok.Delegate;
import org.bukkit.craftbukkit.entity.CraftPlayer;
import net.minecraft.server.EntityPlayer; import net.minecraft.server.EntityPlayer;
import net.minecraft.server.IInventory; import net.minecraft.server.IInventory;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.configuration.serialization.ConfigurationSerializable; import org.bukkit.configuration.serialization.ConfigurationSerializable;
import org.bukkit.craftbukkit.entity.CraftPlayer;
import org.bukkit.craftbukkit.inventory.CraftInventoryPlayer; import org.bukkit.craftbukkit.inventory.CraftInventoryPlayer;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.HumanEntity; import org.bukkit.entity.HumanEntity;

View File

@ -1,13 +1,13 @@
package com.earth2me.essentials; package com.earth2me.essentials;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.ChatColor;
import com.earth2me.essentials.commands.IEssentialsCommand; import com.earth2me.essentials.commands.IEssentialsCommand;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.ChatColor;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -466,6 +466,7 @@ public class Settings implements ISettings
} }
private final static double MAXMONEY = 10000000000000.0; private final static double MAXMONEY = 10000000000000.0;
@Override
public double getMaxMoney() public double getMaxMoney()
{ {
double max = config.getDouble("max-money", MAXMONEY); double max = config.getDouble("max-money", MAXMONEY);
@ -476,36 +477,43 @@ public class Settings implements ISettings
return max; return max;
} }
@Override
public boolean isEcoLogEnabled() public boolean isEcoLogEnabled()
{ {
return config.getBoolean("economy-log-enabled", false); return config.getBoolean("economy-log-enabled", false);
} }
@Override
public boolean removeGodOnDisconnect() public boolean removeGodOnDisconnect()
{ {
return config.getBoolean("remove-god-on-disconnect", false); return config.getBoolean("remove-god-on-disconnect", false);
} }
@Override
public boolean changeDisplayName() public boolean changeDisplayName()
{ {
return config.getBoolean("change-displayname", true); return config.getBoolean("change-displayname", true);
} }
@Override
public boolean useBukkitPermissions() public boolean useBukkitPermissions()
{ {
return config.getBoolean("use-bukkit-permissions", false); return config.getBoolean("use-bukkit-permissions", false);
} }
@Override
public boolean addPrefixSuffix() public boolean addPrefixSuffix()
{ {
return config.getBoolean("add-prefix-suffix", ess.getServer().getPluginManager().isPluginEnabled("EssentialsChat")); return config.getBoolean("add-prefix-suffix", ess.getServer().getPluginManager().isPluginEnabled("EssentialsChat"));
} }
@Override
public boolean disablePrefix() public boolean disablePrefix()
{ {
return config.getBoolean("disablePrefix", false); return config.getBoolean("disablePrefix", false);
} }
@Override
public boolean disableSuffix() public boolean disableSuffix()
{ {
return config.getBoolean("disableSuffix", false); return config.getBoolean("disableSuffix", false);

View File

@ -95,6 +95,7 @@ public class Spawn implements IConf
return retval; return retval;
} }
@Override
public void reloadConfig() public void reloadConfig()
{ {
config.load(); config.load();

View File

@ -85,6 +85,7 @@ public class TNTExplodeListener extends EntityListener implements Runnable
event.setCancelled(true); event.setCancelled(true);
} }
@Override
public void run() public void run()
{ {
enabled = false; enabled = false;

View File

@ -1,9 +1,9 @@
package com.earth2me.essentials; package com.earth2me.essentials;
import java.util.List; import java.util.List;
import org.bukkit.block.Block;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;

View File

@ -67,6 +67,7 @@ public class Teleport implements Runnable
this.chargeFor = chargeFor; this.chargeFor = chargeFor;
} }
@Override
public void run() public void run()
{ {
@ -106,7 +107,6 @@ public class Teleport implements Runnable
{ {
ess.showError(user.getBase(), ex, "teleport"); ess.showError(user.getBase(), ex, "teleport");
} }
return;
} }
catch (Exception ex) catch (Exception ex)
{ {

View File

@ -4,6 +4,8 @@ import com.earth2me.essentials.commands.IEssentialsCommand;
import com.earth2me.essentials.register.payment.Method; import com.earth2me.essentials.register.payment.Method;
import java.util.Calendar; import java.util.Calendar;
import java.util.GregorianCalendar; import java.util.GregorianCalendar;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -20,6 +22,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
private transient long lastActivity = System.currentTimeMillis(); private transient long lastActivity = System.currentTimeMillis();
private boolean hidden = false; private boolean hidden = false;
private transient Location afkPosition; private transient Location afkPosition;
private static final Logger logger = Logger.getLogger("Minecraft");
User(final Player base, final IEssentials ess) User(final Player base, final IEssentials ess)
{ {
@ -284,7 +287,18 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
public void setDisplayNick(String name) public void setDisplayNick(String name)
{ {
setDisplayName(name); setDisplayName(name);
setPlayerListName(name.length() > 16 ? name.substring(0, 16) : name); if (name.length() > 16)
{
name = name.substring(0, name.charAt(15) == '§' ? 15 : 16);
}
try
{
setPlayerListName(name);
}
catch (IllegalArgumentException e)
{
logger.log(Level.INFO, "Playerlist for " + name + " was not updated. Use a shorter displayname prefix.");
}
} }
@Override @Override
@ -375,6 +389,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
return now; return now;
} }
@Override
public boolean isHidden() public boolean isHidden()
{ {
return hidden; return hidden;

View File

@ -1,6 +1,5 @@
package com.earth2me.essentials; package com.earth2me.essentials;
import com.earth2me.essentials.commands.NotEnoughArgumentsException;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
@ -30,6 +29,7 @@ public abstract class UserData extends PlayerExtension implements IConf
reloadConfig(); reloadConfig();
} }
@Override
public final void reloadConfig() public final void reloadConfig()
{ {
config.load(); config.load();
@ -278,7 +278,7 @@ public abstract class UserData extends PlayerExtension implements IConf
public boolean hasPowerTools() public boolean hasPowerTools()
{ {
return powertools.size() > 0; return !powertools.isEmpty();
} }
private Location lastLocation; private Location lastLocation;

View File

@ -1,24 +1,27 @@
package com.earth2me.essentials; package com.earth2me.essentials;
import com.google.common.base.Function; import com.google.common.cache.Cache;
import com.google.common.collect.ComputationException; import com.google.common.cache.CacheBuilder;
import com.google.common.collect.MapMaker; import com.google.common.cache.CacheLoader;
import com.google.common.collect.ConcurrentHashMultiset;
import java.io.File; import java.io.File;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ExecutionException;
import java.util.logging.Level; import java.util.logging.Level;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
public class UserMap implements Function<String, User>, IConf public class UserMap extends CacheLoader<String, User> implements IConf
{ {
private final transient IEssentials ess; private final transient IEssentials ess;
private final transient ConcurrentMap<String, User> users = new MapMaker().softValues().makeComputingMap(this); private final transient Cache<String, User> users = CacheBuilder.newBuilder().softValues().build(this);
private final transient ConcurrentHashMultiset<String> keys = ConcurrentHashMultiset.create();
public UserMap(final IEssentials ess) public UserMap(final IEssentials ess)
{ {
super();
this.ess = ess; this.ess = ess;
loadAllUsersAsync(ess); loadAllUsersAsync(ess);
} }
@ -35,6 +38,8 @@ public class UserMap implements Function<String, User>, IConf
{ {
return; return;
} }
keys.clear();
users.invalidateAll();
for (String string : userdir.list()) for (String string : userdir.list())
{ {
if (!string.endsWith(".yml")) if (!string.endsWith(".yml"))
@ -42,18 +47,7 @@ public class UserMap implements Function<String, User>, IConf
continue; continue;
} }
final String name = string.substring(0, string.length() - 4); final String name = string.substring(0, string.length() - 4);
try keys.add(name.toLowerCase());
{
users.get(name.toLowerCase());
}
catch (NullPointerException ex)
{
// Ignore these
}
catch (ComputationException ex)
{
Bukkit.getLogger().log(Level.INFO, "Failed to preload user " + name, ex);
}
} }
} }
}); });
@ -61,21 +55,29 @@ public class UserMap implements Function<String, User>, IConf
public boolean userExists(final String name) public boolean userExists(final String name)
{ {
return users.containsKey(name.toLowerCase()); return keys.contains(name.toLowerCase());
} }
public User getUser(final String name) throws NullPointerException public User getUser(final String name) throws NullPointerException
{
try
{ {
return users.get(name.toLowerCase()); return users.get(name.toLowerCase());
} }
catch (ExecutionException ex)
{
throw new NullPointerException();
}
}
@Override @Override
public User apply(final String name) public User load(final String name) throws Exception
{ {
for (Player player : ess.getServer().getOnlinePlayers()) for (Player player : ess.getServer().getOnlinePlayers())
{ {
if (player.getName().equalsIgnoreCase(name)) if (player.getName().equalsIgnoreCase(name))
{ {
keys.add(name.toLowerCase());
return new User(player, ess); return new User(player, ess);
} }
} }
@ -83,37 +85,43 @@ public class UserMap implements Function<String, User>, IConf
final File userFile = new File(userFolder, Util.sanitizeFileName(name) + ".yml"); final File userFile = new File(userFolder, Util.sanitizeFileName(name) + ".yml");
if (userFile.exists()) if (userFile.exists())
{ {
keys.add(name.toLowerCase());
return new User(new OfflinePlayer(name, ess), ess); return new User(new OfflinePlayer(name, ess), ess);
} }
return null; throw new Exception("User not found!");
} }
@Override @Override
public void reloadConfig() public void reloadConfig()
{ {
for (User user : users.values()) loadAllUsersAsync(ess);
{
user.reloadConfig();
}
} }
public void removeUser(final String name) public void removeUser(final String name)
{ {
users.remove(name.toLowerCase()); keys.remove(name.toLowerCase());
users.invalidate(name.toLowerCase());
} }
public Set<User> getAllUsers() public Set<User> getAllUsers()
{ {
final Set<User> userSet = new HashSet<User>(); final Set<User> userSet = new HashSet<User>();
for (String name : users.keySet()) for (String name : keys)
{
try
{ {
userSet.add(users.get(name)); userSet.add(users.get(name));
} }
catch (ExecutionException ex)
{
Bukkit.getLogger().log(Level.INFO, "Failed to load user " + name, ex);
}
}
return userSet; return userSet;
} }
public int getUniqueUsers() public int getUniqueUsers()
{ {
return users.size(); return keys.size();
} }
} }

View File

@ -1,25 +1,12 @@
package com.earth2me.essentials; package com.earth2me.essentials;
import java.io.BufferedReader; import java.io.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols; import java.text.DecimalFormatSymbols;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.util.Calendar; import java.util.*;
import java.util.Enumeration;
import java.util.GregorianCalendar;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import java.util.Set;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import java.util.regex.Matcher; import java.util.regex.Matcher;
@ -29,7 +16,6 @@ import org.bukkit.Material;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
public class Util public class Util

View File

@ -1,12 +1,7 @@
package com.earth2me.essentials; package com.earth2me.essentials;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.*;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.bukkit.Location; import org.bukkit.Location;
@ -90,6 +85,7 @@ public class Warps implements IConf
warpPoints.remove(new StringIgnoreCase(name)); warpPoints.remove(new StringIgnoreCase(name));
} }
@Override
public final void reloadConfig() public final void reloadConfig()
{ {
warpPoints.clear(); warpPoints.clear();

View File

@ -52,6 +52,7 @@ public class Worth implements IConf
config.save(); config.save();
} }
@Override
public void reloadConfig() public void reloadConfig()
{ {
config.load(); config.load();

View File

@ -1,8 +1,8 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Server;
public class Commandafk extends EssentialsCommand public class Commandafk extends EssentialsCommand
@ -29,7 +29,7 @@ public class Commandafk extends EssentialsCommand
} }
} }
private final void toggleAfk(User user) private void toggleAfk(User user)
{ {
if (!user.toggleAfk()) if (!user.toggleAfk())
{ {

View File

@ -1,9 +1,9 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Server; import org.bukkit.Server;
import com.earth2me.essentials.User;
import com.earth2me.essentials.TargetBlock;
import org.bukkit.entity.TNTPrimed; import org.bukkit.entity.TNTPrimed;
@ -20,7 +20,7 @@ public class Commandantioch extends EssentialsCommand
ess.broadcastMessage(user, "...lobbest thou thy Holy Hand Grenade of Antioch towards thy foe,"); ess.broadcastMessage(user, "...lobbest thou thy Holy Hand Grenade of Antioch towards thy foe,");
ess.broadcastMessage(user, "who being naughty in My sight, shall snuff it."); ess.broadcastMessage(user, "who being naughty in My sight, shall snuff it.");
final Location loc = new TargetBlock(user).getTargetBlock().getLocation(); final Location loc = Util.getTarget(user);
loc.getWorld().spawn(loc, TNTPrimed.class); loc.getWorld().spawn(loc, TNTPrimed.class);
} }
} }

View File

@ -14,9 +14,9 @@ public class Commandback extends EssentialsCommand
} }
@Override @Override
protected void run(Server server, User user, String commandLabel, String[] args) throws Exception protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
Trade charge = new Trade(this.getName(), ess); final Trade charge = new Trade(this.getName(), ess);
charge.isAffordableFor(user); charge.isAffordableFor(user);
user.sendMessage(Util.i18n("backUsageMsg")); user.sendMessage(Util.i18n("backUsageMsg"));
user.getTeleport().back(charge); user.getTeleport().back(charge);

View File

@ -14,9 +14,9 @@ public class Commandbackup extends EssentialsCommand
} }
@Override @Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception protected void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{ {
Backup backup = ess.getBackup(); final Backup backup = ess.getBackup();
if (backup == null) if (backup == null)
{ {
throw new Exception(); throw new Exception();

View File

@ -1,8 +1,8 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Server;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -14,7 +14,7 @@ public class Commandbalance extends EssentialsCommand
} }
@Override @Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception protected void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{ {
if (args.length < 1) if (args.length < 1)
{ {
@ -24,9 +24,9 @@ public class Commandbalance extends EssentialsCommand
} }
@Override @Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
double bal = (args.length < 1 final double bal = (args.length < 1
|| !(user.isAuthorized("essentials.balance.others") || !(user.isAuthorized("essentials.balance.others")
|| user.isAuthorized("essentials.balance.other")) || user.isAuthorized("essentials.balance.other"))
? user ? user

View File

@ -1,15 +1,10 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import java.util.Map.Entry;
import org.bukkit.Server;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import java.util.ArrayList; import java.util.*;
import java.util.Collections; import java.util.Map.Entry;
import java.util.Comparator; import org.bukkit.Server;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -21,7 +16,7 @@ public class Commandbalancetop extends EssentialsCommand
} }
@Override @Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception protected void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{ {
int max = 10; int max = 10;
if (args.length > 0) if (args.length > 0)
@ -47,6 +42,7 @@ public class Commandbalancetop extends EssentialsCommand
final List<Map.Entry<User, Double>> sortedEntries = new ArrayList<Map.Entry<User, Double>>(balances.entrySet()); final List<Map.Entry<User, Double>> sortedEntries = new ArrayList<Map.Entry<User, Double>>(balances.entrySet());
Collections.sort(sortedEntries, new Comparator<Map.Entry<User, Double>>() Collections.sort(sortedEntries, new Comparator<Map.Entry<User, Double>>()
{ {
@Override
public int compare(final Entry<User, Double> entry1, final Entry<User, Double> entry2) public int compare(final Entry<User, Double> entry1, final Entry<User, Double> entry2)
{ {
return -entry1.getValue().compareTo(entry2.getValue()); return -entry1.getValue().compareTo(entry2.getValue());

View File

@ -2,10 +2,10 @@ package com.earth2me.essentials.commands;
import com.earth2me.essentials.Console; import com.earth2me.essentials.Console;
import com.earth2me.essentials.OfflinePlayer; import com.earth2me.essentials.OfflinePlayer;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -23,8 +23,8 @@ public class Commandban extends EssentialsCommand
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
final User player = getPlayer(server, args, 0, true); final User user = getPlayer(server, args, 0, true);
if (player.getBase() instanceof OfflinePlayer) if (user.getBase() instanceof OfflinePlayer)
{ {
if (sender instanceof Player if (sender instanceof Player
&& !ess.getUser(sender).isAuthorized("essentials.ban.offline")) && !ess.getUser(sender).isAuthorized("essentials.ban.offline"))
@ -35,7 +35,7 @@ public class Commandban extends EssentialsCommand
} }
else else
{ {
if (player.isAuthorized("essentials.ban.exempt")) if (user.isAuthorized("essentials.ban.exempt"))
{ {
sender.sendMessage(Util.i18n("banExempt")); sender.sendMessage(Util.i18n("banExempt"));
return; return;
@ -46,22 +46,22 @@ public class Commandban extends EssentialsCommand
if (args.length > 1) if (args.length > 1)
{ {
banReason = getFinalArg(args, 1); banReason = getFinalArg(args, 1);
player.setBanReason(banReason); user.setBanReason(banReason);
} }
else else
{ {
banReason = Util.i18n("defaultBanReason"); banReason = Util.i18n("defaultBanReason");
} }
player.setBanned(true); user.setBanned(true);
player.kickPlayer(banReason); user.kickPlayer(banReason);
String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME; final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
for(Player p : server.getOnlinePlayers()) for (Player onlinePlayer : server.getOnlinePlayers())
{ {
User u = ess.getUser(p); final User player = ess.getUser(onlinePlayer);
if(u.isAuthorized("essentials.ban.notify")) if (player.isAuthorized("essentials.ban.notify"))
{ {
p.sendMessage(Util.format("playerBanned", senderName, player.getName(), banReason)); onlinePlayer.sendMessage(Util.format("playerBanned", senderName, user.getName(), banReason));
} }
} }
} }

View File

@ -21,21 +21,21 @@ public class Commandbanip extends EssentialsCommand
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
final User u = ess.getUser(args[0]); final User player = ess.getUser(args[0]);
if (u == null) if (player == null)
{ {
ess.getServer().banIP(args[0]); ess.getServer().banIP(args[0]);
sender.sendMessage(Util.i18n("banIpAddress")); sender.sendMessage(Util.i18n("banIpAddress"));
} }
else else
{ {
final String ipAddress = u.getLastLoginAddress(); final String ipAddress = player.getLastLoginAddress();
if (ipAddress.length() == 0) if (ipAddress.length() == 0)
{ {
throw new Exception(Util.i18n("playerNotFound")); throw new Exception(Util.i18n("playerNotFound"));
} }
ess.getServer().banIP(u.getLastLoginAddress()); ess.getServer().banIP(player.getLastLoginAddress());
sender.sendMessage(Util.i18n("banIpAddress")); sender.sendMessage(Util.i18n("banIpAddress"));
} }
} }

View File

@ -1,10 +1,10 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import org.bukkit.TreeType;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Server;
import org.bukkit.TreeType;
public class Commandbigtree extends EssentialsCommand public class Commandbigtree extends EssentialsCommand
@ -15,7 +15,7 @@ public class Commandbigtree extends EssentialsCommand
} }
@Override @Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
TreeType tree; TreeType tree;
if (args.length > 0 && args[0].equalsIgnoreCase("redwood")) if (args.length > 0 && args[0].equalsIgnoreCase("redwood"))

View File

@ -3,7 +3,6 @@ package com.earth2me.essentials.commands;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandbroadcast extends EssentialsCommand public class Commandbroadcast extends EssentialsCommand
@ -21,7 +20,6 @@ public class Commandbroadcast extends EssentialsCommand
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
ess.broadcastMessage(null, ess.broadcastMessage(null, Util.format("broadcast", getFinalArg(args, 0)));
Util.format("broadcast", getFinalArg(args, 0)));
} }
} }

View File

@ -14,7 +14,7 @@ public class Commandburn extends EssentialsCommand
} }
@Override @Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception protected void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{ {
if (args.length < 2) if (args.length < 2)
{ {

View File

@ -1,11 +1,11 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import java.util.List; import java.util.List;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandclearinventory extends EssentialsCommand public class Commandclearinventory extends EssentialsCommand
@ -15,6 +15,7 @@ public class Commandclearinventory extends EssentialsCommand
super("clearinventory"); super("clearinventory");
} }
//TODO: Cleanup
@Override @Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception public void run(Server server, User user, String commandLabel, String[] args) throws Exception
{ {

View File

@ -1,8 +1,8 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Server;
public class Commandcompass extends EssentialsCommand public class Commandcompass extends EssentialsCommand
@ -13,39 +13,39 @@ public class Commandcompass extends EssentialsCommand
} }
@Override @Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
int r = (int)(user.getLocation().getYaw() + 180 + 360) % 360; final int bearing = (int)(user.getLocation().getYaw() + 180 + 360) % 360;
String dir; String dir;
if (r < 23) if (bearing < 23)
{ {
dir = "N"; dir = "N";
} }
else if (r < 68) else if (bearing < 68)
{ {
dir = "NE"; dir = "NE";
} }
else if (r < 113) else if (bearing < 113)
{ {
dir = "E"; dir = "E";
} }
else if (r < 158) else if (bearing < 158)
{ {
dir = "SE"; dir = "SE";
} }
else if (r < 203) else if (bearing < 203)
{ {
dir = "S"; dir = "S";
} }
else if (r < 248) else if (bearing < 248)
{ {
dir = "SW"; dir = "SW";
} }
else if (r < 293) else if (bearing < 293)
{ {
dir = "W"; dir = "W";
} }
else if (r < 338) else if (bearing < 338)
{ {
dir = "NW"; dir = "NW";
} }
@ -53,6 +53,6 @@ public class Commandcompass extends EssentialsCommand
{ {
dir = "N"; dir = "N";
} }
user.sendMessage(Util.format("compassBearing", dir, r)); user.sendMessage(Util.format("compassBearing", dir, bearing));
} }
} }

View File

@ -1,9 +1,9 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import com.earth2me.essentials.Util;
public class Commanddelhome extends EssentialsCommand public class Commanddelhome extends EssentialsCommand
@ -14,25 +14,21 @@ public class Commanddelhome extends EssentialsCommand
} }
@Override @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
{ {
//Allowing both formats /delhome khobbits house | /delhome khobbits:house //Allowing both formats /delhome khobbits house | /delhome khobbits:house
final String[] nameParts = args[0].split(":"); final String[] expandedArgs = args[0].split(":");
if (nameParts[0].length() != args[0].length())
{
args = nameParts;
}
User user = ess.getUser(sender); User user = ess.getUser(sender);
String name; String name;
if (args.length < 1) if (expandedArgs.length < 1)
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
else if (args.length > 1 && (user == null || user.isAuthorized("essentials.delhome.others"))) else if (expandedArgs.length > 1 && (user == null || user.isAuthorized("essentials.delhome.others")))
{ {
user = getPlayer(server, args, 0, true); user = getPlayer(server, expandedArgs, 0, true);
name = args[1]; name = expandedArgs[1];
} }
else else
{ {
@ -40,7 +36,7 @@ public class Commanddelhome extends EssentialsCommand
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
name = args[0]; name = expandedArgs[0];
} }
user.delHome(name.toLowerCase()); user.delHome(name.toLowerCase());
sender.sendMessage(Util.format("deleteHome", name)); sender.sendMessage(Util.format("deleteHome", name));

View File

@ -4,14 +4,17 @@ import com.earth2me.essentials.Util;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
public class Commanddeljail extends EssentialsCommand {
public Commanddeljail() { public class Commanddeljail extends EssentialsCommand
{
public Commanddeljail()
{
super("deljail"); super("deljail");
} }
@Override @Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception { protected void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
if (args.length < 1) if (args.length < 1)
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();

View File

@ -1,8 +1,8 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import com.earth2me.essentials.Util;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import com.earth2me.essentials.Util;
public class Commanddelwarp extends EssentialsCommand public class Commanddelwarp extends EssentialsCommand
@ -13,7 +13,7 @@ public class Commanddelwarp extends EssentialsCommand
} }
@Override @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) if (args.length < 1)
{ {

View File

@ -1,8 +1,8 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Server;
public class Commanddepth extends EssentialsCommand public class Commanddepth extends EssentialsCommand
@ -13,16 +13,16 @@ public class Commanddepth extends EssentialsCommand
} }
@Override @Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
int y = user.getLocation().getBlockY() - 63; final int depth = user.getLocation().getBlockY() - 63;
if (y > 0) if (depth > 0)
{ {
user.sendMessage(Util.format("depthAboveSea", y)); user.sendMessage(Util.format("depthAboveSea", depth));
} }
else if (y < 0) else if (depth < 0)
{ {
user.sendMessage(Util.format("depthBelowSea", (-y))); user.sendMessage(Util.format("depthBelowSea", (-depth)));
} }
else else
{ {

View File

@ -1,9 +1,9 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import com.earth2me.essentials.User;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.earth2me.essentials.User;
public class Commandeco extends EssentialsCommand public class Commandeco extends EssentialsCommand
@ -14,7 +14,7 @@ public class Commandeco extends EssentialsCommand
} }
@Override @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) if (args.length < 2)
{ {
@ -34,45 +34,46 @@ public class Commandeco extends EssentialsCommand
if (args[1].contentEquals("*")) if (args[1].contentEquals("*"))
{ {
for (Player p : server.getOnlinePlayers()) for (Player onlinePlayer : server.getOnlinePlayers())
{ {
User u = ess.getUser(p); final User player = ess.getUser(onlinePlayer);
switch (cmd) switch (cmd)
{ {
case GIVE: case GIVE:
u.giveMoney(amount); player.giveMoney(amount);
break; break;
case TAKE: case TAKE:
u.takeMoney(amount); player.takeMoney(amount);
break; break;
case RESET: case RESET:
u.setMoney(amount == 0 ? ess.getSettings().getStartingBalance() : amount); player.setMoney(amount == 0 ? ess.getSettings().getStartingBalance() : amount);
break; break;
} }
} }
} }
else else
{ {
User u = getPlayer(server, args, 1, true); final User player = getPlayer(server, args, 1, true);
switch (cmd) switch (cmd)
{ {
case GIVE: case GIVE:
u.giveMoney(amount, sender); player.giveMoney(amount, sender);
break; break;
case TAKE: case TAKE:
u.takeMoney(amount, sender); player.takeMoney(amount, sender);
break; break;
case RESET: case RESET:
u.setMoney(amount == 0 ? ess.getSettings().getStartingBalance() : amount); player.setMoney(amount == 0 ? ess.getSettings().getStartingBalance() : amount);
break; break;
} }
} }
} }
private enum EcoCommands private enum EcoCommands
{ {
GIVE, TAKE, RESET GIVE, TAKE, RESET

View File

@ -80,6 +80,7 @@ public class Commandessentials extends EssentialsCommand
{ {
int i = 0; int i = 0;
@Override
public void run() public void run()
{ {
final String note = tune[i]; final String note = tune[i];
@ -93,14 +94,14 @@ public class Commandessentials extends EssentialsCommand
return; return;
} }
Map<Player, Block> noteBlocks = Commandessentials.this.noteBlocks; Map<Player, Block> noteBlocks = Commandessentials.this.noteBlocks;
for (Player player : server.getOnlinePlayers()) for (Player onlinePlayer : server.getOnlinePlayers())
{ {
Block block = noteBlocks.get(player); final Block block = noteBlocks.get(onlinePlayer);
if (block == null || block.getType() != Material.NOTE_BLOCK) if (block == null || block.getType() != Material.NOTE_BLOCK)
{ {
continue; continue;
} }
player.playNote(block.getLocation(), (byte)0, noteMap.get(note)); onlinePlayer.playNote(block.getLocation(), (byte)0, noteMap.get(note));
} }
} }
}, 20, 2); }, 20, 2);

View File

@ -1,8 +1,8 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Server;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -15,7 +15,7 @@ public class Commandext extends EssentialsCommand
} }
@Override @Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception protected void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{ {
if (args.length < 1) if (args.length < 1)
{ {
@ -26,7 +26,7 @@ public class Commandext extends EssentialsCommand
} }
@Override @Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
if (args.length < 1) if (args.length < 1)
{ {
@ -38,12 +38,12 @@ public class Commandext extends EssentialsCommand
extinguishPlayers(server, user, commandLabel); extinguishPlayers(server, user, commandLabel);
} }
private void extinguishPlayers(Server server, CommandSender sender, String name) throws Exception private void extinguishPlayers(final Server server, final CommandSender sender, final String name) throws Exception
{ {
for (Player p : server.matchPlayer(name)) for (Player matchPlayer : server.matchPlayer(name))
{ {
p.setFireTicks(0); matchPlayer.setFireTicks(0);
sender.sendMessage(Util.format("extinguishOthers", p.getDisplayName())); sender.sendMessage(Util.format("extinguishOthers", matchPlayer.getDisplayName()));
} }
} }
} }

View File

@ -8,7 +8,6 @@ import org.bukkit.util.Vector;
public class Commandfireball extends EssentialsCommand public class Commandfireball extends EssentialsCommand
{ {
public Commandfireball() public Commandfireball()
{ {
super("fireball"); super("fireball");

View File

@ -16,28 +16,43 @@ public class Commandgamemode extends EssentialsCommand
} }
@Override @Override
public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception protected void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{ {
Player player; if (args.length < 1)
if (args.length == 0)
{
if (sender instanceof Player)
{
player = ess.getUser(sender); }
else
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
gamemodeOtherPlayers(server, sender, args[0]);
} }
else
@Override
protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
player = server.getPlayer(args[0]); if (args.length > 0 && user.isAuthorized("essentials.gamemode.others"))
if (player == null)
{ {
throw new Exception(Util.i18n("playerNotFound")); gamemodeOtherPlayers(server, user, args[0]);
return;
} }
user.setGameMode(user.getGameMode() == GameMode.SURVIVAL ? GameMode.CREATIVE : GameMode.SURVIVAL);
user.sendMessage(Util.format("gameMode", Util.i18n(user.getGameMode().toString().toLowerCase()), user.getDisplayName()));
} }
private void gamemodeOtherPlayers(final Server server, final CommandSender sender, final String name)
{
for (Player matchPlayer : server.matchPlayer(name))
{
final User player = ess.getUser(matchPlayer);
if (player.isHidden())
{
continue;
}
player.setGameMode(player.getGameMode() == GameMode.SURVIVAL ? GameMode.CREATIVE : GameMode.SURVIVAL); player.setGameMode(player.getGameMode() == GameMode.SURVIVAL ? GameMode.CREATIVE : GameMode.SURVIVAL);
sender.sendMessage(Util.format("gameMode", Util.i18n(player.getGameMode().toString().toLowerCase()), player.getDisplayName())); sender.sendMessage(Util.format("gameMode", Util.i18n(player.getGameMode().toString().toLowerCase()), player.getDisplayName()));
} }
}
} }

View File

@ -14,11 +14,12 @@ public class Commandgc extends EssentialsCommand
} }
@Override @Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception protected void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{ {
sender.sendMessage(Util.format("gcmax", (Runtime.getRuntime().maxMemory() / 1024 / 1024))); sender.sendMessage(Util.format("gcmax", (Runtime.getRuntime().maxMemory() / 1024 / 1024)));
sender.sendMessage(Util.format("gcfree", (Runtime.getRuntime().freeMemory() / 1024 / 1024)));
sender.sendMessage(Util.format("gctotal", (Runtime.getRuntime().totalMemory() / 1024 / 1024))); sender.sendMessage(Util.format("gctotal", (Runtime.getRuntime().totalMemory() / 1024 / 1024)));
sender.sendMessage(Util.format("gcfree", (Runtime.getRuntime().freeMemory() / 1024 / 1024)));
for (World w : server.getWorlds()) for (World w : server.getWorlds())
{ {
sender.sendMessage( sender.sendMessage(

View File

@ -1,8 +1,8 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import com.earth2me.essentials.User;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Server; import org.bukkit.Server;
import com.earth2me.essentials.User;
public class Commandgetpos extends EssentialsCommand public class Commandgetpos extends EssentialsCommand
@ -13,9 +13,9 @@ public class Commandgetpos extends EssentialsCommand
} }
@Override @Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
Location coords = user.getLocation(); final Location coords = user.getLocation();
user.sendMessage("§7X: " + coords.getBlockX() + " (+East <-> -West)"); user.sendMessage("§7X: " + coords.getBlockX() + " (+East <-> -West)");
user.sendMessage("§7Y: " + coords.getBlockY() + " (+Up <-> -Down)"); user.sendMessage("§7Y: " + coords.getBlockY() + " (+Up <-> -Down)");
user.sendMessage("§7Z: " + coords.getBlockZ() + " (+South <-> -North)"); user.sendMessage("§7Z: " + coords.getBlockZ() + " (+South <-> -North)");

View File

@ -1,10 +1,10 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -18,16 +18,16 @@ public class Commandgive extends EssentialsCommand
//TODO: move these messages to message file //TODO: move these messages to message file
@Override @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) if (args.length < 2)
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
ItemStack stack = ess.getItemDb().get(args[1]); final ItemStack stack = ess.getItemDb().get(args[1]);
String itemname = stack.getType().toString().toLowerCase().replace("_", ""); final String itemname = stack.getType().toString().toLowerCase().replace("_", "");
if (sender instanceof Player if (sender instanceof Player
&& (ess.getSettings().permissionBasedItemSpawn() && (ess.getSettings().permissionBasedItemSpawn()
? (!ess.getUser(sender).isAuthorized("essentials.give.item-all") ? (!ess.getUser(sender).isAuthorized("essentials.give.item-all")
@ -48,8 +48,8 @@ public class Commandgive extends EssentialsCommand
throw new Exception(ChatColor.RED + "You can't give air."); throw new Exception(ChatColor.RED + "You can't give air.");
} }
User giveTo = getPlayer(server, args, 0); final User giveTo = getPlayer(server, args, 0);
String itemName = stack.getType().toString().toLowerCase().replace('_', ' '); final String itemName = stack.getType().toString().toLowerCase().replace('_', ' ');
sender.sendMessage(ChatColor.BLUE + "Giving " + stack.getAmount() + " of " + itemName + " to " + giveTo.getDisplayName() + "."); sender.sendMessage(ChatColor.BLUE + "Giving " + stack.getAmount() + " of " + itemName + " to " + giveTo.getDisplayName() + ".");
giveTo.getInventory().addItem(stack); giveTo.getInventory().addItem(stack);
giveTo.updateInventory(); giveTo.updateInventory();

View File

@ -15,7 +15,7 @@ public class Commandgod extends EssentialsCommand
} }
@Override @Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception protected void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{ {
if (args.length < 1) if (args.length < 1)
{ {
@ -26,7 +26,7 @@ public class Commandgod extends EssentialsCommand
} }
@Override @Override
protected void run(Server server, User user, String commandLabel, String[] args) throws Exception protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
if (args.length > 0 && user.isAuthorized("essentials.god.others")) if (args.length > 0 && user.isAuthorized("essentials.god.others"))
{ {
@ -37,18 +37,18 @@ public class Commandgod extends EssentialsCommand
user.sendMessage(Util.format("godMode", (user.toggleGodModeEnabled()? Util.i18n("enabled") : Util.i18n("disabled")))); user.sendMessage(Util.format("godMode", (user.toggleGodModeEnabled()? Util.i18n("enabled") : Util.i18n("disabled"))));
} }
private void godOtherPlayers(Server server, CommandSender sender, String name) private void godOtherPlayers(final Server server, final CommandSender sender, final String name)
{ {
for (Player p : server.matchPlayer(name)) for (Player matchPlayer : server.matchPlayer(name))
{ {
User u = ess.getUser(p); final User player = ess.getUser(matchPlayer);
if (u.isHidden()) if (player.isHidden())
{ {
continue; continue;
} }
boolean enabled = u.toggleGodModeEnabled(); final boolean enabled = player.toggleGodModeEnabled();
u.sendMessage(Util.format("godMode", (enabled ? Util.i18n("enabled") : Util.i18n("disabled")))); player.sendMessage(Util.format("godMode", (enabled ? Util.i18n("enabled") : Util.i18n("disabled"))));
sender.sendMessage(Util.format("godMode",Util.format(enabled ? "godEnabledFor": "godDisabledFor", p.getDisplayName()))); sender.sendMessage(Util.format("godMode",Util.format(enabled ? "godEnabledFor": "godDisabledFor", matchPlayer.getDisplayName())));
} }
} }
} }

View File

@ -1,11 +1,11 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import java.util.List; import java.util.List;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandheal extends EssentialsCommand public class Commandheal extends EssentialsCommand
@ -16,7 +16,7 @@ public class Commandheal extends EssentialsCommand
} }
@Override @Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
if (args.length > 0 && user.isAuthorized("essentials.heal.others")) if (args.length > 0 && user.isAuthorized("essentials.heal.others"))
@ -39,7 +39,7 @@ public class Commandheal extends EssentialsCommand
} }
@Override @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) if (args.length < 1)
{ {
@ -49,9 +49,9 @@ public class Commandheal extends EssentialsCommand
healOtherPlayers(server, sender, args[0]); healOtherPlayers(server, sender, args[0]);
} }
private void healOtherPlayers(Server server, CommandSender sender, String name) private void healOtherPlayers(final Server server, final CommandSender sender, final String name)
{ {
List<Player> players = server.matchPlayer(name); final List<Player> players = server.matchPlayer(name);
if (players.isEmpty()) if (players.isEmpty())
{ {
sender.sendMessage(Util.i18n("playerNotFound")); sender.sendMessage(Util.i18n("playerNotFound"));

View File

@ -1,21 +1,21 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.FileReader; import java.io.FileReader;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map.Entry;
import java.util.logging.Level;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.PluginDescriptionFile;
import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.SafeConstructor; import org.yaml.snakeyaml.constructor.SafeConstructor;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import java.util.Map.Entry;
import java.util.logging.Level;
public class Commandhelp extends EssentialsCommand public class Commandhelp extends EssentialsCommand
@ -30,6 +30,7 @@ public class Commandhelp extends EssentialsCommand
super("help"); super("help");
} }
//TODO: Update to use new text file and command parser classes
@Override @Override
protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
@ -100,6 +101,9 @@ public class Commandhelp extends EssentialsCommand
while (bufferedReader.ready()) while (bufferedReader.ready())
{ {
final String line = bufferedReader.readLine(); final String line = bufferedReader.readLine();
if (line == null) {
break;
}
retval.add(line.replace('&', '§')); retval.add(line.replace('&', '§'));
} }
} }

View File

@ -1,10 +1,10 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import org.bukkit.entity.Player;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import java.util.logging.Level; import java.util.logging.Level;
import org.bukkit.Server;
import org.bukkit.entity.Player;
public class Commandhelpop extends EssentialsCommand public class Commandhelpop extends EssentialsCommand
@ -15,7 +15,7 @@ public class Commandhelpop extends EssentialsCommand
} }
@Override @Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
if (args.length < 1) if (args.length < 1)
{ {
@ -24,14 +24,14 @@ public class Commandhelpop extends EssentialsCommand
final String message = Util.format("helpOp", user.getDisplayName(), getFinalArg(args, 0)); final String message = Util.format("helpOp", user.getDisplayName(), getFinalArg(args, 0));
logger.log(Level.INFO, message); logger.log(Level.INFO, message);
for (Player p : server.getOnlinePlayers()) for (Player onlinePlayer : server.getOnlinePlayers())
{ {
User u = ess.getUser(p); final User player = ess.getUser(onlinePlayer);
if (!u.isAuthorized("essentials.helpop.receive")) if (!player.isAuthorized("essentials.helpop.receive"))
{ {
continue; continue;
} }
u.sendMessage(message); player.sendMessage(message);
} }
} }
} }

View File

@ -1,10 +1,10 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import com.earth2me.essentials.Trade; import com.earth2me.essentials.Trade;
import org.bukkit.Server;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import java.util.List; import java.util.List;
import org.bukkit.Server;
public class Commandhome extends EssentialsCommand public class Commandhome extends EssentialsCommand
@ -15,11 +15,11 @@ public class Commandhome extends EssentialsCommand
} }
@Override @Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
Trade charge = new Trade(this.getName(), ess); final Trade charge = new Trade(this.getName(), ess);
charge.isAffordableFor(user); charge.isAffordableFor(user);
User u = user; User player = user;
String homeName = ""; String homeName = "";
String[] nameParts; String[] nameParts;
if (args.length > 0) if (args.length > 0)
@ -31,7 +31,7 @@ public class Commandhome extends EssentialsCommand
} }
else else
{ {
u = getPlayer(server, nameParts[0].split(" "), 0, true); player = getPlayer(server, nameParts[0].split(" "), 0, true);
if (nameParts.length > 1) if (nameParts.length > 1)
{ {
homeName = nameParts[1]; homeName = nameParts[1];
@ -40,22 +40,22 @@ public class Commandhome extends EssentialsCommand
} }
try try
{ {
user.getTeleport().home(u, homeName.toLowerCase(), charge); user.getTeleport().home(player, homeName.toLowerCase(), charge);
} }
catch (NotEnoughArgumentsException e) catch (NotEnoughArgumentsException e)
{ {
List<String> homes = u.getHomes(); final List<String> homes = player.getHomes();
if (homes.isEmpty() && u.equals(user) && ess.getSettings().spawnIfNoHome()) if (homes.isEmpty() && player.equals(user) && ess.getSettings().spawnIfNoHome())
{ {
user.getTeleport().respawn(ess.getSpawn(), charge); user.getTeleport().respawn(ess.getSpawn(), charge);
} }
else if (homes.isEmpty()) else if (homes.isEmpty())
{ {
throw new Exception(u == user ? Util.i18n("noHomeSet") : Util.i18n("noHomeSetPlayer")); throw new Exception(player == user ? Util.i18n("noHomeSet") : Util.i18n("noHomeSetPlayer"));
} }
else if (homes.size() == 1 && u.equals(user)) else if (homes.size() == 1 && player.equals(user))
{ {
user.getTeleport().home(u, homes.get(0), charge); user.getTeleport().home(player, homes.get(0), charge);
} }
else else
{ {

View File

@ -14,34 +14,34 @@ public class Commandignore extends EssentialsCommand
} }
@Override @Override
protected void run(Server server, User user, String commandLabel, String[] args) throws Exception protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
if (args.length < 1) if (args.length < 1)
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
User u; User player;
try try
{ {
u = getPlayer(server, args, 0); player = getPlayer(server, args, 0);
} }
catch(NoSuchFieldException ex) catch(NoSuchFieldException ex)
{ {
u = ess.getOfflineUser(args[0]); player = ess.getOfflineUser(args[0]);
} }
if (u == null) if (player == null)
{ {
throw new Exception(Util.i18n("playerNotFound")); throw new Exception(Util.i18n("playerNotFound"));
} }
String name = u.getName(); final String name = player.getName();
if (user.isIgnoredPlayer(name)) { if (user.isIgnoredPlayer(name)) {
user.setIgnoredPlayer(name, false); user.setIgnoredPlayer(name, false);
user.sendMessage(Util.format("unignorePlayer", u.getName())); user.sendMessage(Util.format("unignorePlayer", player.getName()));
} }
else else
{ {
user.setIgnoredPlayer(name, true); user.setIgnoredPlayer(name, true);
user.sendMessage(Util.format("ignorePlayer", u.getName())); user.sendMessage(Util.format("ignorePlayer", player.getName()));
} }
} }

View File

@ -1,17 +1,11 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import com.earth2me.essentials.User; import com.earth2me.essentials.textreader.IText;
import com.earth2me.essentials.Util; import com.earth2me.essentials.textreader.KeywordReplacer;
import java.io.BufferedReader; import com.earth2me.essentials.textreader.TextInput;
import java.io.File; import com.earth2me.essentials.textreader.TextPager;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandinfo extends EssentialsCommand public class Commandinfo extends EssentialsCommand
@ -22,167 +16,11 @@ public class Commandinfo extends EssentialsCommand
} }
@Override @Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception protected void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{ {
String pageStr = args.length > 0 ? args[0].trim() : null; final IText input = new TextInput(sender, "info", true, ess);
final IText output = new KeywordReplacer(input, sender, ess);
List<String> lines = new ArrayList<String>(); final TextPager pager = new TextPager(output);
List<String> chapters = new ArrayList<String>(); pager.showPage(args.length > 0 ? args[0] : null, args.length > 1 ? args[1] : null, sender);
Map<String, Integer> bookmarks = new HashMap<String, Integer>();
File file = null;
if (sender instanceof Player)
{
User user = ess.getUser(sender);
file = new File(ess.getDataFolder(), "info_"+Util.sanitizeFileName(user.getName()) +".txt");
if (!file.exists())
{
file = new File(ess.getDataFolder(), "info_"+Util.sanitizeFileName(user.getGroup()) +".txt");
}
}
if (file == null || !file.exists())
{
file = new File(ess.getDataFolder(), "info.txt");
}
if (file.exists())
{
final BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
try
{
int lineNumber = 0;
while (bufferedReader.ready())
{
final String line = bufferedReader.readLine();
if (line.length() > 0 && line.charAt(0) == '#')
{
bookmarks.put(line.substring(1).toLowerCase().replaceAll("&[0-9a-f]", ""), lineNumber);
chapters.add(line.substring(1).replace('&', '§'));
}
lines.add(line.replace('&', '§'));
lineNumber++;
}
}
finally
{
bufferedReader.close();
}
}
else
{
file.createNewFile();
throw new Exception(Util.i18n("infoFileDoesNotExist"));
}
if (bookmarks.isEmpty())
{
int page = 1;
try
{
page = Integer.parseInt(pageStr);
}
catch (Exception ex)
{
page = 1;
}
int start = (page - 1) * 9;
int pages = lines.size() / 9 + (lines.size() % 9 > 0 ? 1 : 0);
sender.sendMessage(Util.format("infoPages", page, pages ));
for (int i = start; i < lines.size() && i < start + 9; i++)
{
sender.sendMessage(lines.get(i));
}
return;
}
if (pageStr == null || pageStr.isEmpty() || pageStr.matches("[0-9]+"))
{
if (lines.get(0).startsWith("#"))
{
sender.sendMessage(Util.i18n("infoChapter"));
StringBuilder sb = new StringBuilder();
boolean first = true;
for (String string : chapters)
{
if (!first)
{
sb.append(", ");
}
first = false;
sb.append(string);
}
sender.sendMessage(sb.toString());
return;
}
else
{
int page = 1;
try
{
page = Integer.parseInt(pageStr);
}
catch (Exception ex)
{
page = 1;
}
int start = (page - 1) * 9;
int end;
for (end = 0; end < lines.size(); end++)
{
String line = lines.get(end);
if (line.startsWith("#"))
{
break;
}
}
int pages = end / 9 + (end % 9 > 0 ? 1 : 0);
sender.sendMessage(Util.format("infoPages", page, pages ));
for (int i = start; i < end && i < start + 9; i++)
{
sender.sendMessage(lines.get(i));
}
return;
}
}
int chapterpage = 0;
if (args.length >= 2)
{
try
{
chapterpage = Integer.parseInt(args[1]) - 1;
}
catch (Exception ex)
{
chapterpage = 0;
}
}
if (!bookmarks.containsKey(pageStr.toLowerCase()))
{
sender.sendMessage(Util.i18n("infoUnknownChapter"));
return;
}
int chapterstart = bookmarks.get(pageStr.toLowerCase()) + 1;
int chapterend;
for (chapterend = chapterstart; chapterend < lines.size(); chapterend++)
{
String line = lines.get(chapterend);
if (line.startsWith("#"))
{
break;
}
}
int start = chapterstart + chapterpage * 9;
int page = chapterpage + 1;
int pages = (chapterend - chapterstart) / 9 + ((chapterend - chapterstart) % 9 > 0 ? 1 : 0);
sender.sendMessage(Util.format("infoChapterPages", pageStr, page , pages));
for (int i = start; i < chapterend && i < start + 9; i++)
{
sender.sendMessage(lines.get(i));
}
} }
} }

View File

@ -15,7 +15,7 @@ public class Commandinvsee extends EssentialsCommand
} }
@Override @Override
protected void run(Server server, User user, String commandLabel, String[] args) throws Exception protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
if (args.length < 1 && user.getSavedInventory() == null) if (args.length < 1 && user.getSavedInventory() == null)
@ -40,7 +40,7 @@ public class Commandinvsee extends EssentialsCommand
user.setSavedInventory(user.getInventory().getContents()); user.setSavedInventory(user.getInventory().getContents());
} }
ItemStack[] invUserStack = invUser.getInventory().getContents(); ItemStack[] invUserStack = invUser.getInventory().getContents();
int userStackLength = user.getInventory().getContents().length; final int userStackLength = user.getInventory().getContents().length;
if (invUserStack.length < userStackLength) { if (invUserStack.length < userStackLength) {
invUserStack = Arrays.copyOf(invUserStack, userStackLength); invUserStack = Arrays.copyOf(invUserStack, userStackLength);
} }

View File

@ -1,9 +1,9 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Server;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -15,15 +15,15 @@ public class Commanditem extends EssentialsCommand
} }
@Override @Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
if (args.length < 1) if (args.length < 1)
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
ItemStack stack = ess.getItemDb().get(args[0]); final ItemStack stack = ess.getItemDb().get(args[0]);
String itemname = stack.getType().toString().toLowerCase().replace("_", ""); final String itemname = stack.getType().toString().toLowerCase().replace("_", "");
if (ess.getSettings().permissionBasedItemSpawn() if (ess.getSettings().permissionBasedItemSpawn()
? (!user.isAuthorized("essentials.itemspawn.item-all") ? (!user.isAuthorized("essentials.itemspawn.item-all")
&& !user.isAuthorized("essentials.itemspawn.item-" + itemname) && !user.isAuthorized("essentials.itemspawn.item-" + itemname)
@ -44,8 +44,8 @@ public class Commanditem extends EssentialsCommand
throw new Exception(Util.format("cantSpawnItem", "Air")); throw new Exception(Util.format("cantSpawnItem", "Air"));
} }
String itemName = stack.getType().toString().toLowerCase().replace('_', ' '); final String displayName = stack.getType().toString().toLowerCase().replace('_', ' ');
user.sendMessage(Util.format("itemSpawn", stack.getAmount(), itemName)); user.sendMessage(Util.format("itemSpawn", stack.getAmount(), displayName));
user.getInventory().addItem(stack); user.getInventory().addItem(stack);
user.updateInventory(); user.updateInventory();
} }

View File

@ -13,7 +13,7 @@ public class Commandjails extends EssentialsCommand
} }
@Override @Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception protected void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{ {
sender.sendMessage("§7" + Util.joinList(" ", ess.getJail().getJails())); sender.sendMessage("§7" + Util.joinList(" ", ess.getJail().getJails()));
} }

View File

@ -1,11 +1,11 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import com.earth2me.essentials.Trade;
import org.bukkit.Location;
import org.bukkit.Server;
import com.earth2me.essentials.TargetBlock; import com.earth2me.essentials.TargetBlock;
import com.earth2me.essentials.Trade;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Location;
import org.bukkit.Server;
public class Commandjump extends EssentialsCommand public class Commandjump extends EssentialsCommand
@ -15,11 +15,12 @@ public class Commandjump extends EssentialsCommand
super("jump"); super("jump");
} }
//TODO: Update to use new target methods
@Override @Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
Location loc; Location loc;
Location cloc = user.getLocation(); final Location cloc = user.getLocation();
try try
{ {
@ -36,7 +37,7 @@ public class Commandjump extends EssentialsCommand
throw new Exception(Util.i18n("jumpError"), ex); throw new Exception(Util.i18n("jumpError"), ex);
} }
Trade charge = new Trade(this.getName(), ess); final Trade charge = new Trade(this.getName(), ess);
charge.isAffordableFor(user); charge.isAffordableFor(user);
user.getTeleport().teleport(loc, charge); user.getTeleport().teleport(loc, charge);
} }

View File

@ -1,10 +1,10 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import com.earth2me.essentials.Console; import com.earth2me.essentials.Console;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -16,28 +16,28 @@ public class Commandkick extends EssentialsCommand
} }
@Override @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) if (args.length < 1)
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
User player = getPlayer(server, args, 0); final User user = getPlayer(server, args, 0);
if (player.isAuthorized("essentials.kick.exempt")) if (user.isAuthorized("essentials.kick.exempt"))
{ {
throw new Exception(Util.i18n("kickExempt")); throw new Exception(Util.i18n("kickExempt"));
} }
final String kickReason = args.length > 1 ? getFinalArg(args, 1) : Util.i18n("kickDefault"); final String kickReason = args.length > 1 ? getFinalArg(args, 1) : Util.i18n("kickDefault");
player.kickPlayer(kickReason); user.kickPlayer(kickReason);
String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME; final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
for(Player p : server.getOnlinePlayers()) for(Player onlinePlayer : server.getOnlinePlayers())
{ {
User u = ess.getUser(p); User player = ess.getUser(onlinePlayer);
if(u.isAuthorized("essentials.kick.notify")) if(player.isAuthorized("essentials.kick.notify"))
{ {
p.sendMessage(Util.format("playerKicked", senderName, player.getName(), kickReason)); onlinePlayer.sendMessage(Util.format("playerKicked", senderName, user.getName(), kickReason));
} }
} }
} }

View File

@ -14,17 +14,17 @@ public class Commandkickall extends EssentialsCommand
} }
@Override @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
{ {
for (Player p : server.getOnlinePlayers()) for (Player onlinePlayer : server.getOnlinePlayers())
{ {
if (sender instanceof Player && p.getName().equalsIgnoreCase(((Player)sender).getName())) if (sender instanceof Player && onlinePlayer.getName().equalsIgnoreCase(((Player)sender).getName()))
{ {
continue; continue;
} }
else else
{ {
p.kickPlayer(args.length > 0 ? getFinalArg(args, 0) : Util.i18n("kickDefault")); onlinePlayer.kickPlayer(args.length > 0 ? getFinalArg(args, 0) : Util.i18n("kickDefault"));
} }
} }
} }

View File

@ -15,24 +15,24 @@ public class Commandkill extends EssentialsCommand
} }
@Override @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) if (args.length < 1)
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
for (Player p : server.matchPlayer(args[0])) for (Player matchPlayer : server.matchPlayer(args[0]))
{ {
final EntityDamageEvent ede = new EntityDamageEvent(p, sender instanceof Player && ((Player)sender).getName().equals(p.getName()) ? EntityDamageEvent.DamageCause.SUICIDE : EntityDamageEvent.DamageCause.CUSTOM, 1000); final EntityDamageEvent ede = new EntityDamageEvent(matchPlayer, sender instanceof Player && ((Player)sender).getName().equals(matchPlayer.getName()) ? EntityDamageEvent.DamageCause.SUICIDE : EntityDamageEvent.DamageCause.CUSTOM, 1000);
server.getPluginManager().callEvent(ede); server.getPluginManager().callEvent(ede);
if (ede.isCancelled() && !sender.hasPermission("essentials.kill.force")) if (ede.isCancelled() && !sender.hasPermission("essentials.kill.force"))
{ {
continue; continue;
} }
p.setHealth(0); matchPlayer.setHealth(0);
sender.sendMessage(Util.format("kill", p.getDisplayName())); sender.sendMessage(Util.format("kill", matchPlayer.getDisplayName()));
} }
} }
} }

View File

@ -1,15 +1,11 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import com.earth2me.essentials.Trade; import com.earth2me.essentials.Trade;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.bukkit.Server;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import java.util.GregorianCalendar; import java.util.*;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Server;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -29,11 +25,11 @@ public class Commandkit extends EssentialsCommand
{ {
final Map<String, Object> kits = ess.getSettings().getKits(); final Map<String, Object> kits = ess.getSettings().getKits();
final StringBuilder list = new StringBuilder(); final StringBuilder list = new StringBuilder();
for (String k : kits.keySet()) for (String kiteItem : kits.keySet())
{ {
if (user.isAuthorized("essentials.kit." + k.toLowerCase())) if (user.isAuthorized("essentials.kit." + kiteItem.toLowerCase()))
{ {
list.append(" ").append(k); list.append(" ").append(kiteItem);
} }
} }
if (list.length() > 0) if (list.length() > 0)

View File

@ -15,7 +15,7 @@ public class Commandlightning extends EssentialsCommand
} }
@Override @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
{ {
User user = null; User user = null;
@ -34,16 +34,16 @@ public class Commandlightning extends EssentialsCommand
throw new Exception(Util.i18n("playerNotFound")); throw new Exception(Util.i18n("playerNotFound"));
} }
for (Player p : server.matchPlayer(args[0])) for (Player matchPlayer : server.matchPlayer(args[0]))
{ {
sender.sendMessage(Util.format("lightningUse", p.getDisplayName())); sender.sendMessage(Util.format("lightningUse", matchPlayer.getDisplayName()));
p.getWorld().strikeLightning(p.getLocation()); matchPlayer.getWorld().strikeLightning(matchPlayer.getLocation());
if (!ess.getUser(p).isGodModeEnabled()) { if (!ess.getUser(matchPlayer).isGodModeEnabled()) {
p.setHealth(p.getHealth() < 5 ? 0 : p.getHealth() - 5); matchPlayer.setHealth(matchPlayer.getHealth() < 5 ? 0 : matchPlayer.getHealth() - 5);
} }
if (ess.getSettings().warnOnSmite()) if (ess.getSettings().warnOnSmite())
{ {
p.sendMessage(Util.i18n("lightningSmited")); matchPlayer.sendMessage(Util.i18n("lightningSmited"));
} }
} }
} }

View File

@ -1,17 +1,12 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import java.util.*;
import org.bukkit.ChatColor;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.bukkit.ChatColor;
public class Commandlist extends EssentialsCommand public class Commandlist extends EssentialsCommand
@ -22,7 +17,7 @@ public class Commandlist extends EssentialsCommand
} }
@Override @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
{ {
boolean showhidden = false; boolean showhidden = false;
if (sender instanceof Player) if (sender instanceof Player)
@ -37,15 +32,15 @@ public class Commandlist extends EssentialsCommand
showhidden = true; showhidden = true;
} }
int playerHidden = 0; int playerHidden = 0;
for (Player p : server.getOnlinePlayers()) for (Player onlinePlayer : server.getOnlinePlayers())
{ {
if (ess.getUser(p).isHidden()) if (ess.getUser(onlinePlayer).isHidden())
{ {
playerHidden++; playerHidden++;
} }
} }
//TODO: move these to messages file //TODO: move these to messages file
StringBuilder online = new StringBuilder(); final StringBuilder online = new StringBuilder();
online.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().length - playerHidden); online.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().length - playerHidden);
if (showhidden && playerHidden > 0) if (showhidden && playerHidden > 0)
{ {
@ -58,29 +53,29 @@ public class Commandlist extends EssentialsCommand
if (ess.getSettings().getSortListByGroups()) if (ess.getSettings().getSortListByGroups())
{ {
Map<String, List<User>> sort = new HashMap<String, List<User>>(); Map<String, List<User>> sort = new HashMap<String, List<User>>();
for (Player p : server.getOnlinePlayers()) for (Player OnlinePlayer : server.getOnlinePlayers())
{ {
User u = ess.getUser(p); final User player = ess.getUser(OnlinePlayer);
if (u.isHidden() && !showhidden) if (player.isHidden() && !showhidden)
{ {
continue; continue;
} }
String group = u.getGroup(); final String group = player.getGroup();
List<User> list = sort.get(group); List<User> list = sort.get(group);
if (list == null) if (list == null)
{ {
list = new ArrayList<User>(); list = new ArrayList<User>();
sort.put(group, list); sort.put(group, list);
} }
list.add(u); list.add(player);
} }
String[] groups = sort.keySet().toArray(new String[0]); final String[] groups = sort.keySet().toArray(new String[0]);
Arrays.sort(groups, String.CASE_INSENSITIVE_ORDER); Arrays.sort(groups, String.CASE_INSENSITIVE_ORDER);
for (String group : groups) for (String group : groups)
{ {
StringBuilder groupString = new StringBuilder(); final StringBuilder groupString = new StringBuilder();
groupString.append(group).append(": "); groupString.append(group).append(": ");
List<User> users = sort.get(group); final List<User> users = sort.get(group);
Collections.sort(users); Collections.sort(users);
boolean first = true; boolean first = true;
for (User user : users) for (User user : users)
@ -109,19 +104,19 @@ public class Commandlist extends EssentialsCommand
} }
else else
{ {
List<User> users = new ArrayList<User>(); final List<User> users = new ArrayList<User>();
for (Player p : server.getOnlinePlayers()) for (Player OnlinePlayer : server.getOnlinePlayers())
{ {
final User u = ess.getUser(p); final User player = ess.getUser(OnlinePlayer);
if (u.isHidden() && !showhidden) if (player.isHidden() && !showhidden)
{ {
continue; continue;
} }
users.add(u); users.add(player);
} }
Collections.sort(users); Collections.sort(users);
StringBuilder onlineUsers = new StringBuilder(); final StringBuilder onlineUsers = new StringBuilder();
onlineUsers.append(Util.i18n("connectedPlayers")); onlineUsers.append(Util.i18n("connectedPlayers"));
boolean first = true; boolean first = true;
for (User user : users) for (User user : users)

View File

@ -1,10 +1,10 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import java.util.List;
import org.bukkit.Server;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import java.util.List;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Server;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -16,20 +16,21 @@ public class Commandmail extends EssentialsCommand
super("mail"); super("mail");
} }
//TODO: Tidy this up
@Override @Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
if (args.length >= 1 && "read".equalsIgnoreCase(args[0])) if (args.length >= 1 && "read".equalsIgnoreCase(args[0]))
{ {
List<String> mail = user.getMails(); final List<String> mail = user.getMails();
if (mail.isEmpty()) if (mail.isEmpty())
{ {
user.sendMessage(Util.i18n("noMail")); user.sendMessage(Util.i18n("noMail"));
throw new NoChargeException(); throw new NoChargeException();
} }
for (String s : mail) for (String messages : mail)
{ {
user.sendMessage(s); user.sendMessage(messages);
} }
user.sendMessage(Util.i18n("mailClear")); user.sendMessage(Util.i18n("mailClear"));
return; return;

View File

@ -1,8 +1,8 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Server;
public class Commandme extends EssentialsCommand public class Commandme extends EssentialsCommand

View File

@ -1,6 +1,9 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import com.earth2me.essentials.Util; import com.earth2me.essentials.textreader.IText;
import com.earth2me.essentials.textreader.KeywordReplacer;
import com.earth2me.essentials.textreader.TextInput;
import com.earth2me.essentials.textreader.TextPager;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -13,11 +16,11 @@ public class Commandmotd extends EssentialsCommand
} }
@Override @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
{ {
for (String m : ess.getMotd(sender, Util.i18n("noMotd"))) final IText input = new TextInput(sender, "motd", true, ess);
{ final IText output = new KeywordReplacer(input, sender, ess);
sender.sendMessage(m); final TextPager pager = new TextPager(output);
} pager.showPage(args.length > 0 ? args[0] : null, args.length > 1 ? args[1] : null, sender);
} }
} }

View File

@ -1,13 +1,13 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import java.util.List;
import org.bukkit.Server;
import org.bukkit.entity.Player;
import com.earth2me.essentials.Console; import com.earth2me.essentials.Console;
import com.earth2me.essentials.IReplyTo; import com.earth2me.essentials.IReplyTo;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import java.util.List;
import org.bukkit.Server;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandmsg extends EssentialsCommand public class Commandmsg extends EssentialsCommand

View File

@ -1,9 +1,9 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
public class Commandmute extends EssentialsCommand public class Commandmute extends EssentialsCommand
@ -14,15 +14,15 @@ public class Commandmute extends EssentialsCommand
} }
@Override @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) if (args.length < 1)
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
User p = getPlayer(server, args, 0, true); final User player = getPlayer(server, args, 0, true);
if (!p.isMuted() && p.isAuthorized("essentials.mute.exempt")) if (!player.isMuted() && player.isAuthorized("essentials.mute.exempt"))
{ {
throw new Exception(Util.i18n("muteExempt")); throw new Exception(Util.i18n("muteExempt"));
} }
@ -32,15 +32,15 @@ public class Commandmute extends EssentialsCommand
String time = getFinalArg(args, 1); String time = getFinalArg(args, 1);
muteTimestamp = Util.parseDateDiff(time, true); muteTimestamp = Util.parseDateDiff(time, true);
} }
p.setMuteTimeout(muteTimestamp); player.setMuteTimeout(muteTimestamp);
boolean muted = p.toggleMuted(); final boolean muted = player.toggleMuted();
sender.sendMessage( sender.sendMessage(
muted muted
? (muteTimestamp > 0 ? (muteTimestamp > 0
? Util.format("mutedPlayerFor", p.getDisplayName(), Util.formatDateDiff(muteTimestamp)) ? Util.format("mutedPlayerFor", player.getDisplayName(), Util.formatDateDiff(muteTimestamp))
: Util.format("mutedPlayer", p.getDisplayName())) : Util.format("mutedPlayer", player.getDisplayName()))
: Util.format("unmutedPlayer", p.getDisplayName())); : Util.format("unmutedPlayer", player.getDisplayName()));
p.sendMessage( player.sendMessage(
muted muted
? (muteTimestamp > 0 ? (muteTimestamp > 0
? Util.format("playerMutedFor", Util.formatDateDiff(muteTimestamp)) ? Util.format("playerMutedFor", Util.formatDateDiff(muteTimestamp))

View File

@ -1,10 +1,10 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
public class Commandnick extends EssentialsCommand public class Commandnick extends EssentialsCommand

View File

@ -1,9 +1,9 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import org.bukkit.entity.Player;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Server;
import org.bukkit.entity.Player;
public class Commandpay extends EssentialsCommand public class Commandpay extends EssentialsCommand

View File

@ -1,8 +1,8 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Server;
public class Commandping extends EssentialsCommand public class Commandping extends EssentialsCommand

View File

@ -1,17 +1,12 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import com.earth2me.essentials.DescParseTickFormat; import com.earth2me.essentials.DescParseTickFormat;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import java.util.Collection; import java.util.*;
import java.util.Comparator; import org.bukkit.Server;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -120,8 +115,6 @@ public class Commandptime extends EssentialsCommand
} }
} }
} }
return;
} }
/** /**
@ -242,6 +235,7 @@ public class Commandptime extends EssentialsCommand
class UserNameComparator implements Comparator<User> class UserNameComparator implements Comparator<User>
{ {
@Override
public int compare(User a, User b) public int compare(User a, User b)
{ {
return a.getName().compareTo(b.getName()); return a.getName().compareTo(b.getName());

View File

@ -4,7 +4,7 @@ import com.earth2me.essentials.Console;
import com.earth2me.essentials.IReplyTo; import com.earth2me.essentials.IReplyTo;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.*; import org.bukkit.Server;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;

View File

@ -1,11 +1,11 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandrealname extends EssentialsCommand public class Commandrealname extends EssentialsCommand

View File

@ -1,10 +1,6 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import com.earth2me.essentials.ChargeException; import com.earth2me.essentials.*;
import com.earth2me.essentials.IUser;
import com.earth2me.essentials.Trade;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.bukkit.Material; import org.bukkit.Material;

View File

@ -1,6 +1,9 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import com.earth2me.essentials.Util; import com.earth2me.essentials.textreader.IText;
import com.earth2me.essentials.textreader.KeywordReplacer;
import com.earth2me.essentials.textreader.TextInput;
import com.earth2me.essentials.textreader.TextPager;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -13,11 +16,11 @@ public class Commandrules extends EssentialsCommand
} }
@Override @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, String[] args) throws Exception
{ {
for (String m : ess.getLines(sender, "rules", Util.i18n("noRules"))) final IText input = new TextInput(sender, "rules", true, ess);
{ final IText output = new KeywordReplacer(input, sender, ess);
sender.sendMessage(m); final TextPager pager = new TextPager(output);
} pager.showPage(args.length > 0 ? args[0] : null, args.length > 1 ? args[1] : null, sender);
} }
} }

View File

@ -1,12 +1,12 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import com.earth2me.essentials.InventoryWorkaround; import com.earth2me.essentials.InventoryWorkaround;
import com.earth2me.essentials.Trade; import com.earth2me.essentials.Trade;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import java.util.logging.Level; import java.util.logging.Level;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Server;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;

View File

@ -1,8 +1,8 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Server;
public class Commandsethome extends EssentialsCommand public class Commandsethome extends EssentialsCommand

View File

@ -1,8 +1,8 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Server;
public class Commandsetjail extends EssentialsCommand public class Commandsetjail extends EssentialsCommand

View File

@ -1,9 +1,9 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Location;
import org.bukkit.Server;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Location;
import org.bukkit.Server;
public class Commandsetwarp extends EssentialsCommand public class Commandsetwarp extends EssentialsCommand

View File

@ -1,8 +1,8 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Server;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;

View File

@ -1,20 +1,15 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Location;
import org.bukkit.Server;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Mob; import com.earth2me.essentials.Mob;
import com.earth2me.essentials.Mob.MobException; import com.earth2me.essentials.Mob.MobException;
import com.earth2me.essentials.TargetBlock; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import java.util.Random; import java.util.Random;
import org.bukkit.DyeColor; import org.bukkit.DyeColor;
import org.bukkit.Location;
import org.bukkit.Server;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.Creeper; import org.bukkit.entity.*;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Sheep;
import org.bukkit.entity.Slime;
import org.bukkit.entity.Wolf;
public class Commandspawnmob extends EssentialsCommand public class Commandspawnmob extends EssentialsCommand
@ -73,11 +68,7 @@ public class Commandspawnmob extends EssentialsCommand
throw new Exception(Util.i18n("unableToSpawnMob")); throw new Exception(Util.i18n("unableToSpawnMob"));
} }
int[] ignore = final Block block = Util.getTarget(user).getBlock();
{
8, 9
};
Block block = (new TargetBlock(user, 300, 0.2, ignore)).getTargetBlock();
if (block == null) if (block == null)
{ {
throw new Exception(Util.i18n("unableToSpawnMob")); throw new Exception(Util.i18n("unableToSpawnMob"));
@ -215,7 +206,7 @@ public class Commandspawnmob extends EssentialsCommand
} }
if ("Wolf".equalsIgnoreCase(type) && data.equalsIgnoreCase("tamed")) if ("Wolf".equalsIgnoreCase(type) && data.equalsIgnoreCase("tamed"))
{ {
Wolf wolf = ((Wolf)spawned); final Wolf wolf = ((Wolf)spawned);
wolf.setTamed(true); wolf.setTamed(true);
wolf.setOwner(user); wolf.setOwner(user);
wolf.setSitting(true); wolf.setSitting(true);

View File

@ -31,10 +31,10 @@ public class Commandsudo extends EssentialsCommand
//TODO: Translate this. //TODO: Translate this.
sender.sendMessage("Running the command as " + user.getDisplayName()); sender.sendMessage("Running the command as " + user.getDisplayName());
final PluginCommand pc = ess.getServer().getPluginCommand(command); final PluginCommand execCommand = ess.getServer().getPluginCommand(command);
if (pc != null) if (execCommand != null)
{ {
pc.execute(user.getBase(), command, arguments); execCommand.execute(user.getBase(), command, arguments);
} }
} }

View File

@ -1,8 +1,8 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import org.bukkit.Server;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Server;
public class Commandsuicide extends EssentialsCommand public class Commandsuicide extends EssentialsCommand
@ -13,7 +13,7 @@ public class Commandsuicide extends EssentialsCommand
} }
@Override @Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
user.setHealth(0); user.setHealth(0);
user.sendMessage(Util.i18n("suicideMessage")); user.sendMessage(Util.i18n("suicideMessage"));

View File

@ -2,10 +2,10 @@ package com.earth2me.essentials.commands;
import com.earth2me.essentials.Console; import com.earth2me.essentials.Console;
import com.earth2me.essentials.OfflinePlayer; import com.earth2me.essentials.OfflinePlayer;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -23,8 +23,8 @@ public class Commandtempban extends EssentialsCommand
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
final User player = getPlayer(server, args, 0, true); final User user = getPlayer(server, args, 0, true);
if (player.getBase() instanceof OfflinePlayer) if (user.getBase() instanceof OfflinePlayer)
{ {
if (sender instanceof Player if (sender instanceof Player
&& !ess.getUser(sender).isAuthorized("essentials.tempban.offline")) && !ess.getUser(sender).isAuthorized("essentials.tempban.offline"))
@ -35,7 +35,7 @@ public class Commandtempban extends EssentialsCommand
} }
else else
{ {
if (player.isAuthorized("essentials.tempban.exempt")) if (user.isAuthorized("essentials.tempban.exempt"))
{ {
sender.sendMessage(Util.i18n("tempbanExempt")); sender.sendMessage(Util.i18n("tempbanExempt"));
return; return;
@ -45,18 +45,18 @@ public class Commandtempban extends EssentialsCommand
final long banTimestamp = Util.parseDateDiff(time, true); final long banTimestamp = Util.parseDateDiff(time, true);
final String banReason = Util.format("tempBanned", Util.formatDateDiff(banTimestamp)); final String banReason = Util.format("tempBanned", Util.formatDateDiff(banTimestamp));
player.setBanReason(banReason); user.setBanReason(banReason);
player.setBanTimeout(banTimestamp); user.setBanTimeout(banTimestamp);
player.setBanned(true); user.setBanned(true);
player.kickPlayer(banReason); user.kickPlayer(banReason);
String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME; final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
for(Player p : server.getOnlinePlayers()) for(Player onlinePlayer : server.getOnlinePlayers())
{ {
User u = ess.getUser(p); final User player = ess.getUser(onlinePlayer);
if(u.isAuthorized("essentials.ban.notify")) if(player.isAuthorized("essentials.ban.notify"))
{ {
p.sendMessage(Util.format("playerBanned", senderName, player.getName(), banReason)); onlinePlayer.sendMessage(Util.format("playerBanned", senderName, user.getName(), banReason));
} }
} }
} }

View File

@ -14,15 +14,15 @@ public class Commandthunder extends EssentialsCommand
} }
@Override @Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
if (args.length < 1) if (args.length < 1)
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
World world = user.getWorld(); final World world = user.getWorld();
boolean setThunder = args[0].equalsIgnoreCase("true"); final boolean setThunder = args[0].equalsIgnoreCase("true");
if (args.length > 1) if (args.length > 1)
{ {

View File

@ -1,12 +1,12 @@
package com.earth2me.essentials.commands; package com.earth2me.essentials.commands;
import com.earth2me.essentials.DescParseTickFormat; import com.earth2me.essentials.DescParseTickFormat;
import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.command.CommandSender;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import java.util.*; import java.util.*;
import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.command.CommandSender;
public class Commandtime extends EssentialsCommand public class Commandtime extends EssentialsCommand
@ -58,11 +58,11 @@ public class Commandtime extends EssentialsCommand
/** /**
* Used to get the time and inform * Used to get the time and inform
*/ */
private void getWorldsTime(CommandSender sender, Collection<World> worlds) private void getWorldsTime(final CommandSender sender, final Collection<World> worlds)
{ {
if (worlds.size() == 1) if (worlds.size() == 1)
{ {
Iterator<World> iter = worlds.iterator(); final Iterator<World> iter = worlds.iterator();
sender.sendMessage(DescParseTickFormat.format(iter.next().getTime())); sender.sendMessage(DescParseTickFormat.format(iter.next().getTime()));
return; return;
} }
@ -71,13 +71,12 @@ public class Commandtime extends EssentialsCommand
{ {
sender.sendMessage(Util.format("timeCurrentWorld", world.getName(), DescParseTickFormat.format(world.getTime()))); sender.sendMessage(Util.format("timeCurrentWorld", world.getName(), DescParseTickFormat.format(world.getTime())));
} }
return;
} }
/** /**
* Used to set the time and inform of the change * Used to set the time and inform of the change
*/ */
private void setWorldsTime(CommandSender sender, Collection<World> worlds, long ticks) private void setWorldsTime(final CommandSender sender, final Collection<World> worlds, final long ticks)
{ {
// Update the time // Update the time
for (World world : worlds) for (World world : worlds)
@ -87,35 +86,31 @@ public class Commandtime extends EssentialsCommand
world.setTime(time + 24000 + ticks); world.setTime(time + 24000 + ticks);
} }
// Inform the sender of the change final StringBuilder output = new StringBuilder();
//sender.sendMessage("");
StringBuilder msg = new StringBuilder();
boolean first = true;
for (World world : worlds) for (World world : worlds)
{ {
if (msg.length() > 0) if (output.length() > 0)
{ {
msg.append(", "); output.append(", ");
} }
msg.append(world.getName()); output.append(world.getName());
} }
sender.sendMessage(Util.format("timeWorldSet", DescParseTickFormat.format(ticks), msg.toString())); sender.sendMessage(Util.format("timeWorldSet", DescParseTickFormat.format(ticks), output.toString()));
} }
/** /**
* Used to parse an argument of the type "world(s) selector" * Used to parse an argument of the type "world(s) selector"
*/ */
private Set<World> getWorlds(Server server, CommandSender sender, String selector) throws Exception private Set<World> getWorlds(final Server server, final CommandSender sender, final String selector) throws Exception
{ {
Set<World> worlds = new TreeSet<World>(new WorldNameComparator()); final Set<World> worlds = new TreeSet<World>(new WorldNameComparator());
// If there is no selector we want the world the user is currently in. Or all worlds if it isn't a user. // If there is no selector we want the world the user is currently in. Or all worlds if it isn't a user.
if (selector == null) if (selector == null)
{ {
User user = ess.getUser(sender); final User user = ess.getUser(sender);
if (user == null) if (user == null)
{ {
worlds.addAll(server.getWorlds()); worlds.addAll(server.getWorlds());
@ -128,7 +123,7 @@ public class Commandtime extends EssentialsCommand
} }
// Try to find the world with name = selector // Try to find the world with name = selector
World world = server.getWorld(selector); final World world = server.getWorld(selector);
if (world != null) if (world != null)
{ {
worlds.add(world); worlds.add(world);
@ -151,7 +146,8 @@ public class Commandtime extends EssentialsCommand
class WorldNameComparator implements Comparator<World> class WorldNameComparator implements Comparator<World>
{ {
public int compare(World a, World b) @Override
public int compare(final World a, final World b)
{ {
return a.getName().compareTo(b.getName()); return a.getName().compareTo(b.getName());
} }

Some files were not shown because too many files have changed in this diff Show More