1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-09-29 23:59:06 +02:00

Updates, fixes, speedups and more

This commit is contained in:
gravypod
2012-12-30 20:29:37 -05:00
parent 67a6971e5b
commit a6b83ca260
108 changed files with 1067 additions and 586 deletions

22
.gitattributes vendored Normal file
View File

@@ -0,0 +1,22 @@
# Auto detect text files and perform LF normalization
* text=auto
# Custom for Visual Studio
*.cs diff=csharp
*.sln merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union
# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain

View File

@@ -108,9 +108,9 @@ public class Jails extends AsyncStorageObjectHolder<net.ess3.settings.Jails> imp
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
private class JailBlockListener implements Listener private class JailBlockListener implements Listener
{ {
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onBlockBreak(final BlockBreakEvent event) public void onBlockBreak(final BlockBreakEvent event)
{ {

View File

@@ -1,7 +1,6 @@
package net.ess3; package net.ess3;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.util.*; import java.util.*;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IEssentials; import net.ess3.api.IEssentials;

View File

@@ -16,6 +16,7 @@ import java.util.regex.Pattern;
import org.bukkit.DyeColor; import org.bukkit.DyeColor;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.*; import org.bukkit.entity.*;
@@ -148,12 +149,14 @@ public class SpawnMob
private static void spawnMob(final IEssentials ess, final Server server, final CommandSender sender, final IUser target, final Location sloc, EntityType mob, String mobData, EntityType mobMount, String mountData) throws Exception private static void spawnMob(final IEssentials ess, final Server server, final CommandSender sender, final IUser target, final Location sloc, EntityType mob, String mobData, EntityType mobMount, String mountData) throws Exception
{ {
Entity spawnedMob = sloc.getWorld().spawn(sloc, (Class<? extends LivingEntity>)mob.getEntityClass());
final World spawningWorld = sloc.getWorld();
final Entity spawnedMob = spawningWorld.spawn(sloc, (Class<? extends LivingEntity>)mob.getEntityClass());
Entity spawnedMount = null; Entity spawnedMount = null;
if (mobMount != null) if (mobMount != null)
{ {
spawnedMount = sloc.getWorld().spawn(sloc, (Class<? extends LivingEntity>)mobMount.getEntityClass()); spawnedMount = spawningWorld.spawn(sloc, (Class<? extends LivingEntity>)mobMount.getEntityClass());
spawnedMob.setPassenger(spawnedMount); spawnedMob.setPassenger(spawnedMount);
} }
if (mobData != null) if (mobData != null)

View File

@@ -2,7 +2,6 @@ package net.ess3;
import java.util.Calendar; import java.util.Calendar;
import java.util.GregorianCalendar; import java.util.GregorianCalendar;
import java.util.logging.Logger;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IEssentials; import net.ess3.api.IEssentials;
import net.ess3.api.ITeleport; import net.ess3.api.ITeleport;
@@ -38,7 +37,6 @@ public class Teleport implements Runnable, ITeleport
private Target teleportTarget; private Target teleportTarget;
private Trade chargeFor; private Trade chargeFor;
private final IEssentials ess; private final IEssentials ess;
private static final Logger logger = Logger.getLogger("Minecraft");
private TeleportCause cause; private TeleportCause cause;
private void initTimer(long delay, Target target, Trade chargeFor, TeleportCause cause) private void initTimer(long delay, Target target, Trade chargeFor, TeleportCause cause)
@@ -88,7 +86,7 @@ public class Teleport implements Runnable, ITeleport
health = teleportUser.getPlayer().getHealth(); // in case user healed, then later gets injured health = teleportUser.getPlayer().getHealth(); // in case user healed, then later gets injured
long now = System.currentTimeMillis(); final long now = System.currentTimeMillis();
if (now > started + tpDelay) if (now > started + tpDelay)
{ {
try try
@@ -185,7 +183,7 @@ public class Teleport implements Runnable, ITeleport
private void teleport(Target target, Trade chargeFor, TeleportCause cause) throws Exception private void teleport(Target target, Trade chargeFor, TeleportCause cause) throws Exception
{ {
double delay = ess.getRanks().getTeleportDelay(user); final double delay = ess.getRanks().getTeleportDelay(user);
if (chargeFor != null) if (chargeFor != null)
{ {
@@ -258,7 +256,7 @@ public class Teleport implements Runnable, ITeleport
//The teleportToMe function is a wrapper used to handle teleporting players to them, like /tphere //The teleportToMe function is a wrapper used to handle teleporting players to them, like /tphere
public void teleportToMe(IUser otherUser, Trade chargeFor, TeleportCause cause) throws Exception public void teleportToMe(IUser otherUser, Trade chargeFor, TeleportCause cause) throws Exception
{ {
Target target = new Target(user.getPlayer()); final Target target = new Target(user.getPlayer());
double delay = ess.getRanks().getTeleportDelay(user); double delay = ess.getRanks().getTeleportDelay(user);
@@ -286,7 +284,7 @@ public class Teleport implements Runnable, ITeleport
private void warnUser(final IUser user, final double delay) private void warnUser(final IUser user, final double delay)
{ {
Calendar c = new GregorianCalendar(); final Calendar c = new GregorianCalendar();
c.add(Calendar.SECOND, (int)delay); c.add(Calendar.SECOND, (int)delay);
c.add(Calendar.MILLISECOND, (int)((delay * 1000.0) % 1000.0)); c.add(Calendar.MILLISECOND, (int)((delay * 1000.0) % 1000.0));
user.sendMessage(_("dontMoveMessage", DateUtil.formatDateDiff(c.getTimeInMillis()))); user.sendMessage(_("dontMoveMessage", DateUtil.formatDateDiff(c.getTimeInMillis())));

View File

@@ -32,7 +32,7 @@ public class Warps extends StorageObjectMap<IWarp> implements IWarps
final List<String> names = new ArrayList<String>(); final List<String> names = new ArrayList<String>();
for (String key : getAllKeys()) for (String key : getAllKeys())
{ {
IWarp warp = getObject(key); final IWarp warp = getObject(key);
if (warp == null) if (warp == null)
{ {
continue; continue;
@@ -46,7 +46,7 @@ public class Warps extends StorageObjectMap<IWarp> implements IWarps
@Override @Override
public Location getWarp(final String name) throws Exception public Location getWarp(final String name) throws Exception
{ {
IWarp warp = getObject(name); final IWarp warp = getObject(name);
if (warp == null) if (warp == null)
{ {
throw new WarpNotFoundException(_("warpNotExist")); throw new WarpNotFoundException(_("warpNotExist"));
@@ -92,7 +92,7 @@ public class Warps extends StorageObjectMap<IWarp> implements IWarps
} }
private static class StringIgnoreCase private static class StringIgnoreCase // TODO: USed?
{ {
private final String string; private final String string;

View File

@@ -3,6 +3,11 @@ package net.ess3.api;
public class ChargeException extends Exception public class ChargeException extends Exception
{ {
/**
* Allow for serialization of the ChargeException class
*/
private static final long serialVersionUID = 200058474023860487L;
public ChargeException(final String message) public ChargeException(final String message)
{ {
super(message); super(message);

View File

@@ -66,4 +66,5 @@ public interface IEssentials extends IComponent
SpawnsHolder getSpawns(); SpawnsHolder getSpawns();
StorageQueue getStorageQueue(); StorageQueue getStorageQueue();
} }

View File

@@ -8,6 +8,11 @@ public interface IPermission
{ {
String getPermissionName(); String getPermissionName();
/**
* Checks to see if a user can use this permission
* @param sender - CommandSender to check on
* @return - True if they have that permission
*/
boolean isAuthorized(CommandSender sender); boolean isAuthorized(CommandSender sender);
String getParentPermission(); String getParentPermission();

View File

@@ -4,37 +4,124 @@ import java.io.File;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import org.bukkit.scheduler.BukkitTask;
public interface IPlugin extends Plugin { public interface IPlugin extends Plugin {
/**
* Get an instance of essentials
* @return
*/
IEssentials getEssentials(); IEssentials getEssentials();
int scheduleAsyncDelayedTask(final Runnable run); /**
* Schedule an a-sync task
* @param run - Code to call later
* @return - BukkitTask for the task created
*/
BukkitTask scheduleAsyncDelayedTask(final Runnable run);
/**
* Schedule a sync task (ran in main thread) to be run
* @param run - Code to be run later
* @return - Integer for the task id
*/
int scheduleSyncDelayedTask(final Runnable run); int scheduleSyncDelayedTask(final Runnable run);
int scheduleAsyncDelayedTask(final Runnable run, final long delay); /**
* Call an a-sync task to be run with a given delay
* @param run - Code to be run
* @param delay - Long that represents how long to wait
* @return - BukkitTask for the task created
*/
BukkitTask scheduleAsyncDelayedTask(final Runnable run, final long delay);
/**
* Schedule a sync (ran in main thread) delayed task
* @param run - Code to run
* @param delay - Long that represents how long to wait
* @return - Integer of the task ID
*/
int scheduleSyncDelayedTask(final Runnable run, final long delay); int scheduleSyncDelayedTask(final Runnable run, final long delay);
/**
* Schedule a sync (in the main thread) repeating task
*
* @param run - Code to run
* @param delay - Delay for the first run
* @param period - Time to wait between every run after the first
* @return - int of the task ID
*/
int scheduleSyncRepeatingTask(final Runnable run, final long delay, final long period); int scheduleSyncRepeatingTask(final Runnable run, final long delay, final long period);
int scheduleAsyncRepeatingTask(final Runnable run, final long delay, final long period); /**
* Schedule an a-sync repeating task
* @param run - Code to run
* @param delay - Delay for the first run
* @param period - Time to wait between every run after the first
* @return - int of the task ID
*/
BukkitTask scheduleAsyncRepeatingTask(final Runnable run, final long delay, final long period);
File getRootFolder(); File getRootFolder();
/**
*
* Stop a running task from a task id
*
* @param taskId
*/
void cancelTask(final int taskId); void cancelTask(final int taskId);
/**
* Stop a running task from a bukkit task
* @param taskId
*/
void cancelTask(final BukkitTask taskId);
/**
* Get the essentials version
* @return
*/
String getVersion(); String getVersion();
Class getClassByName(final String name); /**
* Load a class, currently needs updating
* @param name - class name
* @return - loaded class
*/
Class<?> getClassByName(final String name);
/**
* Call a re-spawn event on a player
* @param player - Player to re-spawn
* @param loc - Location to send
* @param bedSpawn - do you use bed?
* @return - Location after event called
*/
Location callRespawnEvent(Player player, Location loc, boolean bedSpawn); Location callRespawnEvent(Player player, Location loc, boolean bedSpawn);
/**
* Call a suicide event on a player
* @param player - Player to kill
*/
void callSuicideEvent(Player player); void callSuicideEvent(Player player);
/**
* Finds if an essentials module is loaded
* @param name
* @return
*/
public boolean isModuleEnabled(String name); public boolean isModuleEnabled(String name);
public void onPluginEnable(Plugin plugin); public void onPluginEnable(Plugin plugin);
public void onPluginDisable(Plugin plugin); public void onPluginDisable(Plugin plugin);
/**
* Register a module with Essentils
* @param module - Your plugin instance
*/
void registerModule(Plugin module);
} }

View File

@@ -9,6 +9,13 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
public interface ITeleport public interface ITeleport
{ {
/**
* Teleport to a location now
* @param loc - location to send to
* @param cooldown - To check cooldown
* @param cause - Why was the send caused? Use a {@link TeleportCause}
* @throws Exception
*/
void now(Location loc, boolean cooldown, TeleportCause cause) throws Exception; void now(Location loc, boolean cooldown, TeleportCause cause) throws Exception;
void now(Entity entity, boolean cooldown, TeleportCause cause) throws Exception; void now(Entity entity, boolean cooldown, TeleportCause cause) throws Exception;

View File

@@ -14,8 +14,16 @@ import org.bukkit.inventory.ItemStack;
public interface IUser extends OfflinePlayer, CommandSender, IStorageObjectHolder<UserData>, IReload, IReplyTo, Comparable<IUser> public interface IUser extends OfflinePlayer, CommandSender, IStorageObjectHolder<UserData>, IReload, IReplyTo, Comparable<IUser>
{ {
/**
* Get the ammount of money in a users account
* @return
*/
double getMoney(); double getMoney();
/**
* Remove money from the account
* @param value
*/
void takeMoney(double value); void takeMoney(double value);
void takeMoney(double value, CommandSender initiator); void takeMoney(double value, CommandSender initiator);

View File

@@ -4,7 +4,6 @@ import java.io.File;
import java.util.Set; import java.util.Set;
import net.ess3.user.PlayerNotFoundException; import net.ess3.user.PlayerNotFoundException;
import net.ess3.user.TooManyMatchesException; import net.ess3.user.TooManyMatchesException;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;

View File

@@ -3,7 +3,9 @@ package net.ess3.api;
import net.ess3.settings.Warp; import net.ess3.settings.Warp;
import net.ess3.storage.IStorageObjectHolder; import net.ess3.storage.IStorageObjectHolder;
/**
* Warp interface
*/
public interface IWarp extends IStorageObjectHolder<Warp> public interface IWarp extends IStorageObjectHolder<Warp>
{ {
} }

View File

@@ -7,15 +7,47 @@ import org.bukkit.Location;
public interface IWarps extends IReload public interface IWarps extends IReload
{ {
/**
* Get a warp by name
* @param warp - Warp name
* @return - Location the warp is set to
* @throws Exception
*/
Location getWarp(String warp) throws Exception; Location getWarp(String warp) throws Exception;
/**
* Gets a list of warps
* @return - A {@link Collection} of warps
*/
Collection<String> getList(); Collection<String> getList();
/**
* Delete a warp from the warp DB
* @param name - Name of warp
* @throws Exception
*/
void removeWarp(String name) throws Exception; void removeWarp(String name) throws Exception;
/**
* Set a warp
* @param name - Name of warp
* @param loc - Location of warp
* @throws Exception
*/
void setWarp(String name, Location loc) throws Exception; void setWarp(String name, Location loc) throws Exception;
/**
* Check to see if the file is empty
*
* @return
*/
public boolean isEmpty(); public boolean isEmpty();
/**
* Get a warp file
* @param name - name of file
* @return - an instance of the file
* @throws InvalidNameException - When the file is not found
*/
public File getWarpFile(String name) throws InvalidNameException; public File getWarpFile(String name) throws InvalidNameException;
} }

View File

@@ -5,7 +5,17 @@ import org.bukkit.inventory.ItemStack;
public interface IWorth extends IReload public interface IWorth extends IReload
{ {
/**
* Get the price of an ItemStack
* @param itemStack - ItemStack to check
* @return - double marking price
*/
double getPrice(ItemStack itemStack); double getPrice(ItemStack itemStack);
/**
* Set the price of an ItemStack
* @param itemStack - ItemStack to set price for
* @param price - Price to set on item
*/
void setPrice(ItemStack itemStack, double price); void setPrice(ItemStack itemStack, double price);
} }

View File

@@ -3,6 +3,11 @@ package net.ess3.api;
public class InvalidNameException extends Exception public class InvalidNameException extends Exception
{ {
/**
* Allow serialization of the InvalidNameException exception
*/
private static final long serialVersionUID = 1485321420293663139L;
public InvalidNameException(Throwable thrwbl) public InvalidNameException(Throwable thrwbl)
{ {
super(thrwbl); super(thrwbl);

View File

@@ -5,6 +5,11 @@ import static net.ess3.I18n._;
public class NoLoanPermittedException extends Exception public class NoLoanPermittedException extends Exception
{ {
/**
* Allow serialization of the NoLoanPermittedException exception
*/
private static final long serialVersionUID = 1897047051293914036L;
public NoLoanPermittedException() public NoLoanPermittedException()
{ {
super(_("negativeBalanceError")); super(_("negativeBalanceError"));

View File

@@ -5,6 +5,11 @@ import static net.ess3.I18n._;
public class UserDoesNotExistException extends Exception public class UserDoesNotExistException extends Exception
{ {
/**
* Allow serialization of the UserDefinedFileAttributeView exception
*/
private static final long serialVersionUID = -6540804196206916310L;
public UserDoesNotExistException(String name) public UserDoesNotExistException(String name)
{ {
super(_("userDoesNotExist", name)); super(_("userDoesNotExist", name));

View File

@@ -54,18 +54,29 @@ public class Backup implements Runnable, IBackup
{ {
return; return;
} }
final ISettings settings = ess.getSettings();
final String command = settings.getData().getGeneral().getBackup().getCommand();
if (command == null || command.isEmpty())
{
return;
}
ess.getLogger().log(Level.INFO, _("backupStarted"));
final CommandSender consoleSender = server.getConsoleSender();
server.dispatchCommand(consoleSender, "save-all");
server.dispatchCommand(consoleSender, "save-off");
ess.getPlugin().scheduleAsyncDelayedTask(new BackupRunner(command)); final ISettings settings = ess.getSettings();
final net.ess3.settings.Backup backupSettings = settings.getData().getGeneral().getBackup();
String backupCommand = backupSettings.getCommand() == null || backupSettings.getCommand().isEmpty()
? ("NORUN") : backupSettings.getCommand();
/*if (backupCommand.equals("NORUN")) { TODO: Un-comment if you do not want commands to be run if there is no backup command
return;
}*/
ess.getLogger().log(Level.INFO, _("backupStarted"));
if (!backupSettings.getCommandsBeforeBackup().isEmpty())
{
final CommandSender consoleSender = server.getConsoleSender();
for (String command : backupSettings.getCommandsBeforeBackup()) {
server.dispatchCommand(consoleSender, command);
}
}
ess.getPlugin().scheduleAsyncDelayedTask(new BackupRunner(backupCommand));
} }
@@ -82,6 +93,8 @@ public class Backup implements Runnable, IBackup
public void run() public void run()
{ {
try try
{
if (!command.equalsIgnoreCase("NORUN"))
{ {
final ProcessBuilder childBuilder = new ProcessBuilder(command); final ProcessBuilder childBuilder = new ProcessBuilder(command);
childBuilder.redirectErrorStream(true); childBuilder.redirectErrorStream(true);
@@ -107,6 +120,7 @@ public class Backup implements Runnable, IBackup
reader.close(); reader.close();
} }
} }
}
catch (InterruptedException ex) catch (InterruptedException ex)
{ {
ess.getLogger().log(Level.SEVERE, null, ex); ess.getLogger().log(Level.SEVERE, null, ex);

View File

@@ -30,6 +30,7 @@ import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.plugin.java.JavaPluginLoader; import org.bukkit.plugin.java.JavaPluginLoader;
import org.bukkit.scheduler.BukkitTask;
public class BukkitPlugin extends JavaPlugin implements IPlugin public class BukkitPlugin extends JavaPlugin implements IPlugin
@@ -100,7 +101,7 @@ public class BukkitPlugin extends JavaPlugin implements IPlugin
final MetricsStarter metricsStarter = new MetricsStarter(ess); final MetricsStarter metricsStarter = new MetricsStarter(ess);
if (metricsStarter.getStart() != null && metricsStarter.getStart() == true) if (metricsStarter.getStart() != null && metricsStarter.getStart() == true)
{ {
getServer().getScheduler().scheduleAsyncDelayedTask(this, metricsStarter, 1); getServer().getScheduler().runTaskLaterAsynchronously(this, metricsStarter, 1);
} }
else if (metricsStarter.getStart() != null && metricsStarter.getStart() == false) else if (metricsStarter.getStart() != null && metricsStarter.getStart() == false)
{ {
@@ -131,9 +132,9 @@ public class BukkitPlugin extends JavaPlugin implements IPlugin
} }
@Override @Override
public int scheduleAsyncDelayedTask(final Runnable run) public BukkitTask scheduleAsyncDelayedTask(final Runnable run)
{ {
return getServer().getScheduler().scheduleAsyncDelayedTask(this, run); return getServer().getScheduler().runTaskAsynchronously(this, run);
} }
@Override @Override
@@ -143,9 +144,9 @@ public class BukkitPlugin extends JavaPlugin implements IPlugin
} }
@Override @Override
public int scheduleAsyncDelayedTask(final Runnable run, final long delay) public BukkitTask scheduleAsyncDelayedTask(final Runnable run, final long delay)
{ {
return getServer().getScheduler().scheduleAsyncDelayedTask(this, run, delay); return getServer().getScheduler().runTaskLaterAsynchronously(this, run, delay);
} }
@Override @Override
@@ -161,9 +162,9 @@ public class BukkitPlugin extends JavaPlugin implements IPlugin
} }
@Override @Override
public int scheduleAsyncRepeatingTask(final Runnable run, final long delay, final long period) public BukkitTask scheduleAsyncRepeatingTask(final Runnable run, final long delay, final long period)
{ {
return getServer().getScheduler().scheduleAsyncRepeatingTask(this, run, delay, period); return getServer().getScheduler().runTaskTimer(this, run, delay, period);
} }
@Override @Override
@@ -178,6 +179,12 @@ public class BukkitPlugin extends JavaPlugin implements IPlugin
getServer().getScheduler().cancelTask(taskId); getServer().getScheduler().cancelTask(taskId);
} }
@Override
public void cancelTask(BukkitTask taskId)
{
getServer().getScheduler().cancelTask(taskId.getTaskId());
}
@Override @Override
public String getVersion() public String getVersion()
{ {
@@ -185,7 +192,7 @@ public class BukkitPlugin extends JavaPlugin implements IPlugin
} }
@Override @Override
public Class getClassByName(final String name) public Class<?> getClassByName(final String name)
{ {
final JavaPluginLoader jpl = (JavaPluginLoader)this.getPluginLoader(); final JavaPluginLoader jpl = (JavaPluginLoader)this.getPluginLoader();
return jpl.getClassByName(name); return jpl.getClassByName(name);
@@ -230,6 +237,12 @@ public class BukkitPlugin extends JavaPlugin implements IPlugin
modules.put(plugin.getName().substring(10), plugin); modules.put(plugin.getName().substring(10), plugin);
} }
@Override
public void registerModule(Plugin module)
{ // TODO: Use, solution for L231
modules.put(module.getName().substring(10), module);
}
@Override @Override
public void onPluginDisable(final Plugin plugin) public void onPluginDisable(final Plugin plugin)
{ {

View File

@@ -1,6 +1,7 @@
package net.ess3.bukkit; package net.ess3.bukkit;
import java.util.logging.Level; import java.util.logging.Level;
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 static net.ess3.I18n._; import static net.ess3.I18n._;
@@ -16,6 +17,7 @@ public class VersionCheck
{ {
final PluginManager pm = plugin.getServer().getPluginManager(); final PluginManager pm = plugin.getServer().getPluginManager();
final String pluginVersion = plugin.getDescription().getVersion(); final String pluginVersion = plugin.getDescription().getVersion();
final Logger log = plugin.getLogger();
for (org.bukkit.plugin.Plugin p : pm.getPlugins()) for (org.bukkit.plugin.Plugin p : pm.getPlugins())
{ {
if (p.getDescription().getName().startsWith("Essentials") if (p.getDescription().getName().startsWith("Essentials")
@@ -30,16 +32,16 @@ public class VersionCheck
final int versionNumber = Integer.parseInt(versionMatch.group(1)); final int versionNumber = Integer.parseInt(versionMatch.group(1));
if (versionNumber < BUKKIT_VERSION && versionNumber > 100) if (versionNumber < BUKKIT_VERSION && versionNumber > 100)
{ {
plugin.getLogger().log(Level.SEVERE, _("notRecommendedBukkit")); log.log(Level.SEVERE, _("notRecommendedBukkit"));
plugin.getLogger().log(Level.SEVERE, _("requiredBukkit", Integer.toString(BUKKIT_VERSION))); log.log(Level.SEVERE, _("requiredBukkit", Integer.toString(BUKKIT_VERSION)));
return false; return false;
} }
} }
else else
{ {
plugin.getLogger().log(Level.INFO, _("bukkitFormatChanged")); log.log(Level.INFO, _("bukkitFormatChanged"));
plugin.getLogger().log(Level.INFO, plugin.getServer().getVersion()); log.log(Level.INFO, plugin.getServer().getVersion());
plugin.getLogger().log(Level.INFO, plugin.getServer().getBukkitVersion()); log.log(Level.INFO, plugin.getServer().getBukkitVersion());
} }
return true; return true;
} }

View File

@@ -12,7 +12,7 @@ public class Commandafk extends EssentialsCommand
{ {
if (args.length > 0 && Permissions.AFK_OTHERS.isAuthorized(user)) if (args.length > 0 && Permissions.AFK_OTHERS.isAuthorized(user))
{ {
IUser afkUser = ess.getUserMap().matchUserExcludingHidden(args[0], user.getPlayer()); final IUser afkUser = ess.getUserMap().matchUserExcludingHidden(args[0], user.getPlayer());
if (afkUser != null) if (afkUser != null)
{ {
toggleAfk(afkUser); toggleAfk(afkUser);

View File

@@ -7,6 +7,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import net.ess3.user.UserData;
import net.ess3.utils.FormatUtil; import net.ess3.utils.FormatUtil;
import net.ess3.utils.textreader.ArrayListInput; import net.ess3.utils.textreader.ArrayListInput;
import net.ess3.utils.textreader.TextPager; import net.ess3.utils.textreader.TextPager;
@@ -38,7 +39,7 @@ public class Commandbalancetop extends EssentialsCommand
{ {
if (args.length == 1 && isUser(sender) && Permissions.BALANCETOP_HIDE.isAuthorized(sender)) if (args.length == 1 && isUser(sender) && Permissions.BALANCETOP_HIDE.isAuthorized(sender))
{ {
IUser user = getUser(sender); final IUser user = getUser(sender);
user.getData().setBalancetopHide(!user.getData().isBalancetopHide()); user.getData().setBalancetopHide(!user.getData().isBalancetopHide());
user.queueSave(); user.queueSave();
sender.sendMessage( sender.sendMessage(
@@ -48,11 +49,12 @@ public class Commandbalancetop extends EssentialsCommand
} }
else if (args.length == 2 && Permissions.BALANCETOP_HIDE_OTHERS.isAuthorized(sender)) else if (args.length == 2 && Permissions.BALANCETOP_HIDE_OTHERS.isAuthorized(sender))
{ {
IUser user = ess.getUserMap().matchUser(args[1], true); final IUser user = ess.getUserMap().matchUser(args[1], true);
user.getData().setBalancetopHide(!user.getData().isBalancetopHide()); final UserData userData = user.getData();
userData.setBalancetopHide(!userData.isBalancetopHide());
user.queueSave(); user.queueSave();
sender.sendMessage( sender.sendMessage(
user.getData().isBalancetopHide() userData.isBalancetopHide()
? user.getName() + _("userBaltopHidden") ? user.getName() + _("userBaltopHidden")
: user.getName() + _("userBaltopShown")); : user.getName() + _("userBaltopShown"));
} }
@@ -141,7 +143,7 @@ public class Commandbalancetop extends EssentialsCommand
if (!user.getData().isBalancetopHide()) if (!user.getData().isBalancetopHide())
{ {
totalMoney += userMoney; totalMoney += userMoney;
balances.put(user.getName(), userMoney); balances.put(user.getName() /* TODO: Can use 'u' var? */, userMoney);
} }
} }
} }

View File

@@ -5,6 +5,8 @@ import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import net.ess3.user.Ban; import net.ess3.user.Ban;
import net.ess3.user.UserData;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -37,18 +39,19 @@ public class Commandban extends EssentialsCommand
} }
final String senderName = isUser(sender) ? getPlayer(sender).getDisplayName() : Console.NAME; final String senderName = isUser(sender) ? getPlayer(sender).getDisplayName() : Console.NAME;
String banReason; final String banReason;
user.getData().setBan(new Ban()); final UserData userData = user.getData();
userData.setBan(new Ban());
if (args.length > 1) if (args.length > 1)
{ {
banReason = _("banFormat", getFinalArg(args, 1), senderName); banReason = _("banFormat", getFinalArg(args, 1), senderName);
user.getData().getBan().setReason(banReason); userData.getBan().setReason(banReason);
} }
else else
{ {
banReason = _("banFormat", _("defaultBanReason"), senderName); banReason = _("banFormat", _("defaultBanReason"), senderName);
user.getData().getBan().setReason(""); userData.getBan().setReason("");
} }
user.setBanned(true); user.setBanned(true);

View File

@@ -29,7 +29,7 @@ public class Commandbanip extends EssentialsCommand
{ {
throw new Exception(_("playerNotFound")); throw new Exception(_("playerNotFound"));
} }
ess.getServer().banIP(player.getData().getIpAddress()); ess.getServer().banIP(ipAddress /*TODO: This shouldnt be needed, test player.getData().getIpAddress()*/);
sender.sendMessage(_("banIpAddress")); sender.sendMessage(_("banIpAddress"));
} }
} }

View File

@@ -12,7 +12,7 @@ public class Commandbigtree extends EssentialsCommand
@Override @Override
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
{ {
TreeType tree; final TreeType tree;
if (args.length > 0 && args[0].equalsIgnoreCase("redwood")) if (args.length > 0 && args[0].equalsIgnoreCase("redwood"))
{ {
tree = TreeType.TALL_REDWOOD; tree = TreeType.TALL_REDWOOD;

View File

@@ -7,7 +7,6 @@ import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockBreakEvent;
public class Commandbreak extends EssentialsCommand public class Commandbreak extends EssentialsCommand
{ {
//TODO: Switch to use util class //TODO: Switch to use util class

View File

@@ -3,6 +3,7 @@ package net.ess3.commands;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandburn extends EssentialsCommand public class Commandburn extends EssentialsCommand
@@ -17,8 +18,9 @@ public class Commandburn extends EssentialsCommand
for (IUser p : ess.getUserMap().matchUsersExcludingHidden(args[0], getPlayerOrNull(sender))) for (IUser p : ess.getUserMap().matchUsersExcludingHidden(args[0], getPlayerOrNull(sender)))
{ {
p.getPlayer().setFireTicks(Integer.parseInt(args[1]) * 20); final Player player = p.getPlayer();
sender.sendMessage(_("burnMsg", p.getPlayer().getDisplayName(), Integer.parseInt(args[1]))); player.setFireTicks(Integer.parseInt(args[1]) * 20);
sender.sendMessage(_("burnMsg", player.getDisplayName(), Integer.parseInt(args[1])));
} }
} }
} }

View File

@@ -18,8 +18,9 @@ public class Commandclearinventory extends EssentialsCommand
IUser p = ess.getUserMap().matchUserExcludingHidden(args[0], getPlayerOrNull(user)); IUser p = ess.getUserMap().matchUserExcludingHidden(args[0], getPlayerOrNull(user));
if (p != null) if (p != null)
{ {
p.getPlayer().getInventory().clear(); final Player player = p.getPlayer();
user.sendMessage(_("inventoryClearedOthers", p.getPlayer().getDisplayName())); player.getInventory().clear();
user.sendMessage(_("inventoryClearedOthers", player.getDisplayName()));
} }
else else
{ {
@@ -58,7 +59,7 @@ public class Commandclearinventory extends EssentialsCommand
} }
else else
{ {
Player u = server.getPlayer(args[0]); final Player u = server.getPlayer(args[0]);
if (u != null) if (u != null)
{ {
u.getInventory().clear(); u.getInventory().clear();

View File

@@ -10,7 +10,7 @@ public class Commandcompass extends EssentialsCommand
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
{ {
final int bearing = (int)(user.getPlayer().getLocation().getYaw() + 180 + 360) % 360; final int bearing = (int)(user.getPlayer().getLocation().getYaw() + 180 + 360) % 360;
String dir; final String dir;
if (bearing < 23) if (bearing < 23)
{ {
dir = "N"; dir = "N";

View File

@@ -17,8 +17,8 @@ public class Commandeco extends EssentialsCommand
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
EcoCommands cmd; final EcoCommands cmd;
double amount; final double amount;
try try
{ {
cmd = EcoCommands.valueOf(args[0].toUpperCase(Locale.ENGLISH)); cmd = EcoCommands.valueOf(args[0].toUpperCase(Locale.ENGLISH));
@@ -65,7 +65,7 @@ public class Commandeco extends EssentialsCommand
else if (args[1].contentEquals("*")) else if (args[1].contentEquals("*"))
{ {
boolean ecoResetAllOnline = false; boolean ecoResetAllOnline = false;
ISettings settings = ess.getSettings(); final ISettings settings = ess.getSettings();
for (Player onlinePlayer : server.getOnlinePlayers()) for (Player onlinePlayer : server.getOnlinePlayers())
{ {
final IUser player = ess.getUserMap().getUser(onlinePlayer); final IUser player = ess.getUserMap().getUser(onlinePlayer);

View File

@@ -10,6 +10,7 @@ import net.ess3.bukkit.Enchantments;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import net.ess3.utils.Util; import net.ess3.utils.Util;
import org.bukkit.enchantments.Enchantment; import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@@ -71,8 +72,9 @@ public class Commandenchant extends EssentialsCommand
stack.addEnchantment(enchantment, level); stack.addEnchantment(enchantment, level);
} }
} }
user.getPlayer().getInventory().setItemInHand(stack); final Player player = user.getPlayer();
user.getPlayer().updateInventory(); player.getInventory().setItemInHand(stack);
player.updateInventory();
final String enchantmentName = enchantment.getName().toLowerCase(Locale.ENGLISH); final String enchantmentName = enchantment.getName().toLowerCase(Locale.ENGLISH);
if (level == 0) if (level == 0)
{ {

View File

@@ -1,5 +1,7 @@
package net.ess3.commands; package net.ess3.commands;
import org.bukkit.entity.Player;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
@@ -10,15 +12,16 @@ public class Commandenderchest extends EssentialsCommand
@Override @Override
protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception
{ {
final Player player = user.getPlayer();
if (args.length > 0 && Permissions.ENDERCHEST_OTHERS.isAuthorized(user)) if (args.length > 0 && Permissions.ENDERCHEST_OTHERS.isAuthorized(user))
{ {
final IUser invUser = ess.getUserMap().matchUserExcludingHidden(args[0], user.getPlayer()); final IUser invUser = ess.getUserMap().matchUserExcludingHidden(args[0], player);
user.getPlayer().openInventory(invUser.getPlayer().getEnderChest()); player.openInventory(invUser.getPlayer().getEnderChest());
user.setEnderSee(true); user.setEnderSee(true);
} }
else else
{ {
user.getPlayer().openInventory(user.getPlayer().getEnderChest()); player.openInventory(player.getEnderChest());
user.setEnderSee(false); user.setEnderSee(false);
} }

View File

@@ -7,7 +7,7 @@ import org.bukkit.command.CommandSender;
public class Commandessentials extends EssentialsCommand public class Commandessentials extends EssentialsCommand
{ {
private transient int taskid; private transient int taskid; // TODO: Needed?
@Override @Override
protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception

View File

@@ -3,6 +3,7 @@ package net.ess3.commands;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandext extends EssentialsCommand public class Commandext extends EssentialsCommand
@@ -35,8 +36,9 @@ public class Commandext extends EssentialsCommand
{ {
for (IUser matchPlayer : ess.getUserMap().matchUsersExcludingHidden(name, getPlayerOrNull(sender))) for (IUser matchPlayer : ess.getUserMap().matchUsersExcludingHidden(name, getPlayerOrNull(sender)))
{ {
matchPlayer.getPlayer().setFireTicks(0); final Player player = matchPlayer.getPlayer();
sender.sendMessage(_("extinguishOthers", matchPlayer.getPlayer().getDisplayName())); player.setFireTicks(0);
sender.sendMessage(_("extinguishOthers", player.getDisplayName()));
} }
} }
} }

View File

@@ -5,6 +5,7 @@ import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandfeed extends EssentialsCommand public class Commandfeed extends EssentialsCommand
@@ -18,8 +19,9 @@ public class Commandfeed extends EssentialsCommand
} }
else else
{ {
user.getPlayer().setFoodLevel(20); final Player player = user.getPlayer();
user.getPlayer().setSaturation(10); player.setFoodLevel(20);
player.setSaturation(10);
user.sendMessage(_("feed")); user.sendMessage(_("feed"));
} }
} }
@@ -34,9 +36,10 @@ public class Commandfeed extends EssentialsCommand
} }
for (IUser player : users) for (IUser player : users)
{ {
player.getPlayer().setFoodLevel(20); final Player realPlayer = player.getPlayer();
player.getPlayer().setSaturation(10); realPlayer.setFoodLevel(20);
sender.sendMessage(_("feedOther", player.getPlayer().getDisplayName())); realPlayer.setSaturation(10);
sender.sendMessage(_("feedOther", realPlayer.getDisplayName()));
} }
} }
} }

View File

@@ -2,6 +2,7 @@ package net.ess3.commands;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import org.bukkit.entity.Fireball; import org.bukkit.entity.Fireball;
import org.bukkit.entity.Player;
import org.bukkit.entity.SmallFireball; import org.bukkit.entity.SmallFireball;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
@@ -16,8 +17,11 @@ public class Commandfireball extends EssentialsCommand
{ {
small = true; small = true;
} }
final Vector direction = user.getPlayer().getEyeLocation().getDirection().multiply(2);
final Fireball fireball = user.getPlayer().getWorld().spawn(user.getPlayer().getEyeLocation().add(direction.getX(), direction.getY(), direction.getZ()), small ? SmallFireball.class : Fireball.class); final Player player = user.getPlayer();
fireball.setShooter(user.getPlayer());
final Vector direction = player.getEyeLocation().getDirection().multiply(2);
final Fireball fireball = player.getWorld().spawn(player.getEyeLocation().add(direction.getX(), direction.getY(), direction.getZ()), small ? SmallFireball.class : Fireball.class);
fireball.setShooter(player);
} }
} }

View File

@@ -83,7 +83,7 @@ public class Commandgamemode extends EssentialsSettingsCommand
private GameMode matchGameMode(String modeString) throws NotEnoughArgumentsException private GameMode matchGameMode(String modeString) throws NotEnoughArgumentsException
{ {
GameMode mode = null; final GameMode mode;
if (modeString.equalsIgnoreCase("gmc") || modeString.equalsIgnoreCase("egmc") if (modeString.equalsIgnoreCase("gmc") || modeString.equalsIgnoreCase("egmc")
|| modeString.contains("creat") || modeString.equalsIgnoreCase("1") || modeString.equalsIgnoreCase("c")) || modeString.contains("creat") || modeString.equalsIgnoreCase("1") || modeString.equalsIgnoreCase("c"))
{ {

View File

@@ -13,7 +13,7 @@ public class Commandgc extends EssentialsCommand
@Override @Override
protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{ {
final float tps = ess.getTimer().getAverageTPS(); float tps = ess.getTimer().getAverageTPS();
ChatColor color; ChatColor color;
if (tps >= 18) if (tps >= 18)
{ {
@@ -27,17 +27,17 @@ public class Commandgc extends EssentialsCommand
{ {
color = ChatColor.RED; color = ChatColor.RED;
} }
final Runtime runTime = Runtime.getRuntime(); final Runtime runtime = Runtime.getRuntime();
sender.sendMessage(_("uptime", DateUtil.formatDateDiff(ManagementFactory.getRuntimeMXBean().getStartTime()))); sender.sendMessage(_("uptime", DateUtil.formatDateDiff(ManagementFactory.getRuntimeMXBean().getStartTime())));
sender.sendMessage(_("tps", "" + color + tps)); sender.sendMessage(_("tps", "" + color + tps));
sender.sendMessage(_("gcmax", (runTime.maxMemory() / 1024 / 1024))); sender.sendMessage(_("gcmax", (runtime.maxMemory() / 1024 / 1024)));
sender.sendMessage(_("gctotal", (runTime.totalMemory() / 1024 / 1024))); sender.sendMessage(_("gctotal", (runtime.totalMemory() / 1024 / 1024)));
sender.sendMessage(_("gcfree", (runTime.freeMemory() / 1024 / 1024))); sender.sendMessage(_("gcfree", (runtime.freeMemory() / 1024 / 1024)));
sender.sendMessage(_("gcquene", (ess.getStorageQueue().getQueueSize()))); sender.sendMessage(_("gcquene", (ess.getStorageQueue().getQueueSize())));
for (World w : server.getWorlds()) for (World w : server.getWorlds())
{ {
String worldType = "World"; final String worldType;
switch (w.getEnvironment()) switch (w.getEnvironment())
{ {
case NETHER: case NETHER:
@@ -46,6 +46,10 @@ public class Commandgc extends EssentialsCommand
case THE_END: case THE_END:
worldType = "The End"; worldType = "The End";
break; break;
default:
worldType = "World";
break;
} }
sender.sendMessage( sender.sendMessage(

View File

@@ -3,7 +3,10 @@ package net.ess3.commands;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import static net.ess3.I18n._; import static net.ess3.I18n._;
@@ -13,18 +16,20 @@ public class Commandgetpos extends EssentialsCommand
@Override @Override
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
{ {
final Player mainPlayer = user.getPlayer();
final Location mainPlayerLoc = mainPlayer.getLocation();
if (args.length > 0 && Permissions.GETPOS_OTHERS.isAuthorized(user)) if (args.length > 0 && Permissions.GETPOS_OTHERS.isAuthorized(user))
{ {
//todo permissions //todo permissions
final IUser otherUser = ess.getUserMap().matchUser(args[0], false); final IUser otherUser = ess.getUserMap().matchUser(args[0], false);
if (user.getPlayer().canSee(otherUser.getPlayer()) || Permissions.LIST_HIDDEN.isAuthorized(user)) if (mainPlayer.canSee(otherUser.getPlayer()) || Permissions.LIST_HIDDEN.isAuthorized(user))
{ {
outputPosition(user, otherUser.getPlayer().getLocation(), user.getPlayer().getLocation()); outputPosition(user, otherUser.getPlayer().getLocation(), mainPlayerLoc);
return; return;
} }
} }
outputPosition(user, user.getPlayer().getLocation(), null); outputPosition(user, mainPlayerLoc, null);
} }
@Override @Override
@@ -40,13 +45,14 @@ public class Commandgetpos extends EssentialsCommand
private void outputPosition(final CommandSender sender, final Location coords, final Location distance) private void outputPosition(final CommandSender sender, final Location coords, final Location distance)
{ {
sender.sendMessage(_("getposWorld", coords.getWorld().getName())); final World world = coords.getWorld();
sender.sendMessage(_("getposWorld", world.getName()));
sender.sendMessage(_("getposX", coords.getBlockX())); sender.sendMessage(_("getposX", coords.getBlockX()));
sender.sendMessage(_("getposY", coords.getBlockY())); sender.sendMessage(_("getposY", coords.getBlockY()));
sender.sendMessage(_("getposZ", coords.getBlockZ())); sender.sendMessage(_("getposZ", coords.getBlockZ()));
sender.sendMessage(_("getposYaw", (coords.getYaw() + 540) % 360)); sender.sendMessage(_("getposYaw", (coords.getYaw() + 540) % 360));
sender.sendMessage(_("getposPitch", coords.getPitch())); sender.sendMessage(_("getposPitch", coords.getPitch()));
if (distance != null && coords.getWorld().equals(distance.getWorld())) if (distance != null && world.equals(distance.getWorld()))
{ {
sender.sendMessage(_("getposDistance", coords.distance(distance))); sender.sendMessage(_("getposDistance", coords.distance(distance)));
} }

View File

@@ -6,7 +6,6 @@ import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import net.ess3.utils.Util; import net.ess3.utils.Util;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.enchantments.Enchantment; import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@@ -54,7 +53,7 @@ public class Commandgive extends EssentialsCommand
continue; continue;
} }
final Enchantment enchantment = Commandenchant.getEnchantment(split[0], sender instanceof IUser ? (IUser)sender : null); final Enchantment enchantment = Commandenchant.getEnchantment(split[0], sender instanceof IUser ? (IUser)sender : null);
int level; final int level;
if (split.length > 1) if (split.length > 1)
{ {
level = Integer.parseInt(split[1]); level = Integer.parseInt(split[1]);

View File

@@ -4,6 +4,7 @@ import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.craftbukkit.InventoryWorkaround; import net.ess3.craftbukkit.InventoryWorkaround;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory; import org.bukkit.inventory.PlayerInventory;
@@ -32,12 +33,13 @@ public class Commandhat extends EssentialsCommand
} }
else else
{ {
if (user.getPlayer().getItemInHand().getType() != Material.AIR) final Player player = user.getPlayer();
if (player.getItemInHand().getType() != Material.AIR)
{ {
final ItemStack hand = user.getPlayer().getItemInHand().clone(); final ItemStack hand = player.getItemInHand().clone();
if (hand.getType().getMaxDurability() == 0) if (hand.getType().getMaxDurability() == 0)
{ {
final PlayerInventory inv = user.getPlayer().getInventory(); final PlayerInventory inv = player.getInventory();
final ItemStack head = inv.getHelmet(); final ItemStack head = inv.getHelmet();
hand.setAmount(1); hand.setAmount(1);
InventoryWorkaround.removeItem(inv, true, true, hand); InventoryWorkaround.removeItem(inv, true, true, hand);

View File

@@ -6,6 +6,7 @@ import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import net.ess3.user.UserData.TimestampType; import net.ess3.user.UserData.TimestampType;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandheal extends EssentialsCommand public class Commandheal extends EssentialsCommand
@@ -24,9 +25,10 @@ public class Commandheal extends EssentialsCommand
user.checkCooldown(TimestampType.LASTHEAL, ess.getRanks().getHealCooldown(user), true, Permissions.HEAL_COOLDOWN_BYPASS); user.checkCooldown(TimestampType.LASTHEAL, ess.getRanks().getHealCooldown(user), true, Permissions.HEAL_COOLDOWN_BYPASS);
user.getPlayer().setHealth(20); final Player player = user.getPlayer();
user.getPlayer().setFireTicks(0); player.setHealth(20);
user.getPlayer().setFoodLevel(20); player.setFireTicks(0);
player.setFoodLevel(20);
user.sendMessage(_("heal")); user.sendMessage(_("heal"));
} }
@@ -51,10 +53,11 @@ public class Commandheal extends EssentialsCommand
} }
for (IUser p : users) for (IUser p : users)
{ {
p.getPlayer().setHealth(20); final Player player = p.getPlayer();
p.getPlayer().setFoodLevel(20); player.setHealth(20);
p.getPlayer().sendMessage(_("heal")); player.setFoodLevel(20);
sender.sendMessage(_("healOther", p.getPlayer().getDisplayName())); player.sendMessage(_("heal"));
sender.sendMessage(_("healOther", player.getDisplayName()));
} }
} }
} }

View File

@@ -2,6 +2,8 @@ package net.ess3.commands;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import org.bukkit.Material;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@@ -28,13 +30,13 @@ public class Commanditemdb extends EssentialsCommand
{ {
itemStack = ess.getItemDb().get(args[0]); itemStack = ess.getItemDb().get(args[0]);
} }
sender.sendMessage(itemStack.getType().toString() + "- " + itemStack.getTypeId() + ":" + Integer.toString(itemStack.getData().getData())); final Material itemType = itemStack.getType();
final int id = itemType.getId();
sender.sendMessage(itemStack.getType().toString() + "- " + id + ":" + Integer.toString(itemStack.getData().getData()));
if (itemStack.getTypeId() != 0) if (id != 0)
{ {
int maxuses = itemStack.getType().getMaxDurability(); final int maxuses = itemType.getMaxDurability();
int durability = ((maxuses + 1) - itemStack.getDurability()); final int durability = ((maxuses + 1) - itemStack.getDurability());
if (maxuses != 0) if (maxuses != 0)
{ {
sender.sendMessage(_("durability", Integer.toString(durability))); sender.sendMessage(_("durability", Integer.toString(durability)));

View File

@@ -1,6 +1,8 @@
package net.ess3.commands; package net.ess3.commands;
import net.ess3.utils.Util; import net.ess3.utils.Util;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -9,6 +11,6 @@ public class Commandjails extends EssentialsCommand
@Override @Override
protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{ {
sender.sendMessage("§7" + Util.joinList(" ", ess.getJails().getList())); sender.sendMessage(ChatColor.GRAY /* "§7" */ + Util.joinList(" ", ess.getJails().getList()));
} }
} }

View File

@@ -4,6 +4,7 @@ import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent;
@@ -19,15 +20,16 @@ public class Commandkill extends EssentialsCommand
for (IUser matchPlayer : ess.getUserMap().matchUsersExcludingHidden(args[0], getPlayerOrNull(sender))) for (IUser matchPlayer : ess.getUserMap().matchUsersExcludingHidden(args[0], getPlayerOrNull(sender)))
{ {
final EntityDamageEvent ede = new EntityDamageEvent(matchPlayer.getPlayer(), sender instanceof IUser && sender.getName().equals(matchPlayer.getName()) ? EntityDamageEvent.DamageCause.SUICIDE : EntityDamageEvent.DamageCause.CUSTOM, Short.MAX_VALUE); final Player player = matchPlayer.getPlayer();
final EntityDamageEvent ede = new EntityDamageEvent(player, sender instanceof IUser && sender.getName().equals(matchPlayer.getName()) ? EntityDamageEvent.DamageCause.SUICIDE : EntityDamageEvent.DamageCause.CUSTOM, Short.MAX_VALUE);
server.getPluginManager().callEvent(ede); server.getPluginManager().callEvent(ede);
if (ede.isCancelled() && Permissions.KILL_FORCE.isAuthorized(sender)) if (ede.isCancelled() && Permissions.KILL_FORCE.isAuthorized(sender))
{ {
continue; continue;
} }
matchPlayer.getPlayer().damage(Short.MAX_VALUE); player.damage(Short.MAX_VALUE);
sender.sendMessage(_("kill", matchPlayer.getPlayer().getDisplayName())); sender.sendMessage(_("kill", player.getDisplayName()));
} }
} }
} }

View File

@@ -10,6 +10,7 @@ import org.bukkit.World;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.*; import org.bukkit.entity.*;
import org.bukkit.event.entity.EntityDeathEvent; import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.inventory.ItemStack;
public class Commandkillall extends EssentialsCommand public class Commandkillall extends EssentialsCommand
@@ -68,10 +69,10 @@ public class Commandkillall extends EssentialsCommand
{ {
radius *= radius; radius *= radius;
} }
String killType = type.toLowerCase(Locale.ENGLISH); final String killType = type.toLowerCase(Locale.ENGLISH);
boolean animals = killType.startsWith("animal"); final boolean animals = killType.startsWith("animal");
boolean monster = killType.startsWith("monster") || killType.startsWith("mob"); final boolean monster = killType.startsWith("monster") || killType.startsWith("mob");
boolean all = killType.equals("all"); final boolean all = killType.equals("all");
Class<? extends Entity> entityClass = null; Class<? extends Entity> entityClass = null;
if (!animals && !monster && !all) if (!animals && !monster && !all)
{ {
@@ -82,7 +83,7 @@ public class Commandkillall extends EssentialsCommand
entityClass = LivingEntities.fromName(killType).getEntityClass(); entityClass = LivingEntities.fromName(killType).getEntityClass();
} }
int numKills = 0; int numKills = 0;
Location loc = isUser(sender) ? getPlayer(sender).getLocation() : null; final Location loc = isUser(sender) ? getPlayer(sender).getLocation() : null;
for (Chunk chunk : world.getLoadedChunks()) for (Chunk chunk : world.getLoadedChunks())
{ {
for (Entity entity : chunk.getEntities()) for (Entity entity : chunk.getEntities())
@@ -94,7 +95,7 @@ public class Commandkillall extends EssentialsCommand
continue; continue;
} }
} }
if (entity instanceof LivingEntity == false || entity instanceof HumanEntity) if (!(entity instanceof LivingEntity) || entity instanceof HumanEntity)
{ {
continue; continue;
} }
@@ -116,7 +117,7 @@ public class Commandkillall extends EssentialsCommand
{ {
if (entity instanceof Animals || entity instanceof NPC || entity instanceof Snowman || entity instanceof WaterMob) if (entity instanceof Animals || entity instanceof NPC || entity instanceof Snowman || entity instanceof WaterMob)
{ {
EntityDeathEvent event = new EntityDeathEvent((LivingEntity)entity, Collections.EMPTY_LIST); EntityDeathEvent event = new EntityDeathEvent((LivingEntity)entity, Collections.<ItemStack> emptyList());
ess.getServer().getPluginManager().callEvent(event); ess.getServer().getPluginManager().callEvent(event);
entity.remove(); entity.remove();
numKills++; numKills++;
@@ -126,7 +127,7 @@ public class Commandkillall extends EssentialsCommand
{ {
if (entity instanceof Monster || entity instanceof ComplexLivingEntity || entity instanceof Flying || entity instanceof Slime) if (entity instanceof Monster || entity instanceof ComplexLivingEntity || entity instanceof Flying || entity instanceof Slime)
{ {
EntityDeathEvent event = new EntityDeathEvent((LivingEntity)entity, Collections.EMPTY_LIST); EntityDeathEvent event = new EntityDeathEvent((LivingEntity)entity, Collections.<ItemStack> emptyList());
ess.getServer().getPluginManager().callEvent(event); ess.getServer().getPluginManager().callEvent(event);
entity.remove(); entity.remove();
numKills++; numKills++;
@@ -134,14 +135,14 @@ public class Commandkillall extends EssentialsCommand
} }
else if (all) else if (all)
{ {
EntityDeathEvent event = new EntityDeathEvent((LivingEntity)entity, Collections.EMPTY_LIST); EntityDeathEvent event = new EntityDeathEvent((LivingEntity)entity, Collections.<ItemStack> emptyList());
ess.getServer().getPluginManager().callEvent(event); ess.getServer().getPluginManager().callEvent(event);
entity.remove(); entity.remove();
numKills++; numKills++;
} }
else if (entityClass != null && entityClass.isAssignableFrom(entity.getClass())) else if (entityClass != null && entityClass.isAssignableFrom(entity.getClass()))
{ {
EntityDeathEvent event = new EntityDeathEvent((LivingEntity)entity, Collections.EMPTY_LIST); EntityDeathEvent event = new EntityDeathEvent((LivingEntity)entity, Collections.<ItemStack> emptyList());
ess.getServer().getPluginManager().callEvent(event); ess.getServer().getPluginManager().callEvent(event);
entity.remove(); entity.remove();
numKills++; numKills++;

View File

@@ -6,6 +6,7 @@ import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.LightningStrike; import org.bukkit.entity.LightningStrike;
import org.bukkit.entity.Player;
public class Commandlightning extends EssentialsCommand public class Commandlightning extends EssentialsCommand
@@ -21,7 +22,8 @@ public class Commandlightning extends EssentialsCommand
} }
if ((args.length < 1 || !Permissions.LIGHTNING_OTHERS.isAuthorized(user)) && user != null) if ((args.length < 1 || !Permissions.LIGHTNING_OTHERS.isAuthorized(user)) && user != null)
{ {
user.getPlayer().getWorld().strikeLightning(user.getPlayer().getTargetBlock(null, 600).getLocation()); final Player player = user.getPlayer();
player.getWorld().strikeLightning(player.getTargetBlock(null, 600).getLocation());
return; return;
} }
@@ -44,11 +46,12 @@ public class Commandlightning extends EssentialsCommand
for (IUser matchPlayer : ess.getUserMap().matchUsersExcludingHidden(args[0], getPlayerOrNull(sender))) for (IUser matchPlayer : ess.getUserMap().matchUsersExcludingHidden(args[0], getPlayerOrNull(sender)))
{ {
sender.sendMessage(_("lightningUse", matchPlayer.getPlayer().getDisplayName())); final Player player = matchPlayer.getPlayer();
final LightningStrike strike = matchPlayer.getPlayer().getWorld().strikeLightningEffect(matchPlayer.getPlayer().getLocation()); sender.sendMessage(_("lightningUse", player.getDisplayName()));
final LightningStrike strike = player.getWorld().strikeLightningEffect(player.getLocation());
if (!matchPlayer.isGodModeEnabled()) if (!matchPlayer.isGodModeEnabled())
{ {
matchPlayer.getPlayer().damage(power, strike); player.damage(power, strike);
} }
final ISettings settings = ess.getSettings(); final ISettings settings = ess.getSettings();
if (settings.getData().getCommands().getLightning().isWarnPlayer()) if (settings.getData().getCommands().getLightning().isWarnPlayer())

View File

@@ -49,14 +49,14 @@ public class Commandlist extends EssentialsCommand
sender.sendMessage(online); sender.sendMessage(online);
ISettings settings = ess.getSettings(); final ISettings settings = ess.getSettings();
boolean sortListByGroups = sortListByGroups = settings.getData().getCommands().getList().isSortByGroups(); final boolean sortListByGroups = settings.getData().getCommands().getList().isSortByGroups();
if (sortListByGroups) if (sortListByGroups)
{ {
Map<String, List<IUser>> sort = new HashMap<String, List<IUser>>(); final Map<String, List<IUser>> sort = new HashMap<String, List<IUser>>();
Set<String> hiddenPlayers = new HashSet<String>(); final Set<String> hiddenPlayers = new HashSet<String>();
for (Player onlinePlayer : server.getOnlinePlayers()) for (Player onlinePlayer : server.getOnlinePlayers())
{ {
if (userPlayer != null if (userPlayer != null
@@ -115,7 +115,7 @@ public class Commandlist extends EssentialsCommand
else else
{ {
final List<IUser> users = new ArrayList<IUser>(); final List<IUser> users = new ArrayList<IUser>();
Set<String> hiddenPlayers = new HashSet<String>(); final Set<String> hiddenPlayers = new HashSet<String>();
for (Player onlinePlayer : server.getOnlinePlayers()) for (Player onlinePlayer : server.getOnlinePlayers())
{ {
if (userPlayer != null if (userPlayer != null

View File

@@ -118,7 +118,7 @@ public class Commandmail extends EssentialsCommand
{ {
for (String username : ess.getUserMap().getAllUniqueUsers()) for (String username : ess.getUserMap().getAllUniqueUsers())
{ {
IUser user = ess.getUserMap().getUser(username); final IUser user = ess.getUserMap().getUser(username);
if (user != null) if (user != null)
{ {
user.addMail(message); user.addMail(message);

View File

@@ -7,6 +7,8 @@ import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.economy.Trade; import net.ess3.economy.Trade;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@@ -16,15 +18,16 @@ public class Commandmore extends EssentialsCommand
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
{ {
ItemStack[] stacks; ItemStack[] stacks;
final Player player = user.getPlayer();
if (args.length > 0 && args[0].equalsIgnoreCase("all")) if (args.length > 0 && args[0].equalsIgnoreCase("all"))
{ {
stacks = user.getPlayer().getInventory().getContents(); stacks = player.getInventory().getContents();
} }
else else
{ {
stacks = new ItemStack[] stacks = new ItemStack[]
{ {
user.getPlayer().getItemInHand() player.getItemInHand()
}; };
} }
for (ItemStack stack : stacks) for (ItemStack stack : stacks)
@@ -42,8 +45,8 @@ public class Commandmore extends EssentialsCommand
} }
ISettings settings = ess.getSettings(); ISettings settings = ess.getSettings();
int defaultStackSize = settings.getData().getGeneral().getDefaultStacksize(); final int defaultStackSize = settings.getData().getGeneral().getDefaultStacksize();
int oversizedStackSize = settings.getData().getGeneral().getOversizedStacksize(); final int oversizedStackSize = settings.getData().getGeneral().getOversizedStacksize();
int newAmount = Permissions.OVERSIZEDSTACKS.isAuthorized(user) int newAmount = Permissions.OVERSIZEDSTACKS.isAuthorized(user)
? oversizedStackSize ? oversizedStackSize
@@ -88,9 +91,9 @@ public class Commandmore extends EssentialsCommand
} }
if (stacks.length > 1) if (stacks.length > 1)
{ {
user.getPlayer().getInventory().setContents(stacks); player.getInventory().setContents(stacks);
} }
user.getPlayer().updateInventory(); player.updateInventory();
if (stacks.length > 1) if (stacks.length > 1)
{ {
throw new NoChargeException(); throw new NoChargeException();

View File

@@ -24,7 +24,7 @@ public class Commandmsg extends EssentialsCommand
String message = getFinalArg(args, 1); String message = getFinalArg(args, 1);
if (isUser(sender)) if (isUser(sender))
{ {
IUser user = getUser(sender);; final IUser user = getUser(sender);
if (user.getData().isMuted()) if (user.getData().isMuted())
{ {
throw new Exception(_("voiceSilenced")); throw new Exception(_("voiceSilenced"));
@@ -86,8 +86,9 @@ public class Commandmsg extends EssentialsCommand
for (IUser matchedPlayer : matchedPlayers) for (IUser matchedPlayer : matchedPlayers)
{ {
sender.sendMessage(_("msgFormat", translatedMe, matchedPlayer.getPlayer().getDisplayName(), message)); final Player realPlayer = matchedPlayer.getPlayer();
if (isUser(sender) && (matchedPlayer.isIgnoringPlayer(getUser(sender)) || !player.canSee(matchedPlayer.getPlayer()))) sender.sendMessage(_("msgFormat", translatedMe, realPlayer.getDisplayName(), message));
if (isUser(sender) && (matchedPlayer.isIgnoringPlayer(getUser(sender)) || !player.canSee(realPlayer)))
{ {
continue; continue;
} }

View File

@@ -112,9 +112,9 @@ public class Commandnick extends EssentialsCommand
{ {
continue; continue;
} }
String dn = p.getDisplayName().toLowerCase(Locale.ENGLISH); final String dn = p.getDisplayName().toLowerCase(Locale.ENGLISH);
String n = p.getName().toLowerCase(Locale.ENGLISH); final String n = p.getName().toLowerCase(Locale.ENGLISH);
String nk = nick.toLowerCase(Locale.ENGLISH); final String nk = nick.toLowerCase(Locale.ENGLISH);
if (nk.equals(dn) || nk.equals(n)) if (nk.equals(dn) || nk.equals(n))
{ {
throw new Exception(_("nickInUse")); throw new Exception(_("nickInUse"));

View File

@@ -16,7 +16,7 @@ public class Commandpay extends EssentialsCommand
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
double amount = Double.parseDouble(args[1].replaceAll("[^0-9\\.]", "")); final double amount = Double.parseDouble(args[1].replaceAll("[^0-9\\.]", ""));
if (amount <= 0 || Double.isNaN(amount) || Double.isInfinite(amount)) { if (amount <= 0 || Double.isNaN(amount) || Double.isInfinite(amount)) {
user.sendMessage(_("invalidAmount")); user.sendMessage(_("invalidAmount"));

View File

@@ -6,6 +6,7 @@ import java.util.Locale;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import net.ess3.user.UserData;
import net.ess3.utils.Util; import net.ess3.utils.Util;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@@ -17,11 +18,11 @@ public class Commandpowertool extends EssentialsCommand
protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception
{ {
String command = getFinalArg(args, 0); String command = getFinalArg(args, 0);
UserData userData = user.getData();
// check to see if this is a clear all command // check to see if this is a clear all command
if (command != null && command.equalsIgnoreCase("d:")) if (command != null && command.equalsIgnoreCase("d:"))
{ {
user.getData().clearAllPowertools(); userData.clearAllPowertools();
user.queueSave(); user.queueSave();
user.sendMessage(_("powerToolClearAll")); user.sendMessage(_("powerToolClearAll"));
return; return;
@@ -34,7 +35,7 @@ public class Commandpowertool extends EssentialsCommand
} }
final String itemName = itemStack.getType().toString().toLowerCase(Locale.ENGLISH).replaceAll("_", " "); final String itemName = itemStack.getType().toString().toLowerCase(Locale.ENGLISH).replaceAll("_", " ");
List<String> powertools = user.getData().getPowertool(itemStack.getType()); List<String> powertools = userData.getPowertool(itemStack.getType());
if (command != null && !command.isEmpty()) if (command != null && !command.isEmpty())
{ {
if (command.equalsIgnoreCase("l:")) if (command.equalsIgnoreCase("l:"))
@@ -91,12 +92,12 @@ public class Commandpowertool extends EssentialsCommand
user.sendMessage(_("powerToolRemoveAll", itemName)); user.sendMessage(_("powerToolRemoveAll", itemName));
} }
if (!user.getData().isPowerToolsEnabled()) if (!userData.isPowerToolsEnabled())
{ {
user.getData().setPowerToolsEnabled(true); userData.setPowerToolsEnabled(true);
user.sendMessage(_("powerToolsEnabled")); user.sendMessage(_("powerToolsEnabled"));
} }
user.getData().setPowertool(itemStack.getType(), powertools); userData.setPowertool(itemStack.getType(), powertools);
user.queueSave(); user.queueSave();
} }
} }

View File

@@ -2,6 +2,7 @@ package net.ess3.commands;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.user.UserData;
public class Commandpowertooltoggle extends EssentialsCommand public class Commandpowertooltoggle extends EssentialsCommand
@@ -9,14 +10,15 @@ public class Commandpowertooltoggle extends EssentialsCommand
@Override @Override
protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception
{ {
if (!user.getData().hasPowerTools()) final UserData userData = user.getData();
if (!userData.hasPowerTools())
{ {
user.sendMessage(_("noPowerTools")); user.sendMessage(_("noPowerTools"));
return; return;
} }
user.getData().setPowerToolsEnabled(!user.getData().isPowerToolsEnabled()); userData.setPowerToolsEnabled(!userData.isPowerToolsEnabled());
user.queueSave(); user.queueSave();
user.sendMessage(user.getData().isPowerToolsEnabled() user.sendMessage(userData.isPowerToolsEnabled()
? _("powerToolsEnabled") ? _("powerToolsEnabled")
: _("powerToolsDisabled")); : _("powerToolsDisabled"));
} }

View File

@@ -131,8 +131,9 @@ public class Commandptime extends EssentialsCommand
// Set // Set
for (IUser user : users) for (IUser user : users)
{ {
final World world = user.getPlayer().getWorld(); final Player player = user.getPlayer();
long time = user.getPlayer().getPlayerTime(); final World world = player.getWorld();
long time = player.getPlayerTime();
time -= time % 24000; time -= time % 24000;
time += 24000 + ticks; time += 24000 + ticks;
if (relative) if (relative)

View File

@@ -25,7 +25,7 @@ public class Commandr extends EssentialsCommand
if (sender instanceof IUser) if (sender instanceof IUser)
{ {
IUser user = getUser(sender); final IUser user = getUser(sender);
if (Permissions.MSG_COLOR.isAuthorized(user)) if (Permissions.MSG_COLOR.isAuthorized(user))
{ {
message = FormatUtil.replaceFormat(message); message = FormatUtil.replaceFormat(message);

View File

@@ -2,8 +2,8 @@ package net.ess3.commands;
import java.util.Locale; import java.util.Locale;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.api.IUserMap;
import net.ess3.utils.FormatUtil; import net.ess3.utils.FormatUtil;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -18,22 +18,23 @@ public class Commandrealname extends EssentialsCommand
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
final ISettings settings = ess.getSettings();
final String whois = args[0].toLowerCase(Locale.ENGLISH); final String whois = args[0].toLowerCase(Locale.ENGLISH);
boolean foundUser = false; boolean foundUser = false;
Player player = sender instanceof IUser ? ((IUser)sender).getPlayer() : null; final Player player = sender instanceof IUser ? ((IUser)sender).getPlayer() : null;
final IUserMap userMap = ess.getUserMap();
for (Player onlinePlayer : server.getOnlinePlayers()) for (Player onlinePlayer : server.getOnlinePlayers())
{ {
final IUser u = ess.getUserMap().getUser(onlinePlayer); final IUser u = userMap.getUser(onlinePlayer);
if (player != null && !player.canSee(onlinePlayer)) if (player != null && !player.canSee(onlinePlayer))
{ {
continue; continue;
} }
final String displayName = FormatUtil.stripFormat(u.getPlayer().getDisplayName()).toLowerCase(Locale.ENGLISH); final Player realPlayer = u.getPlayer();
final String displayName = FormatUtil.stripFormat(realPlayer.getDisplayName()).toLowerCase(Locale.ENGLISH);
if (displayName.contains(whois)) if (displayName.contains(whois))
{ {
foundUser = true; foundUser = true;
sender.sendMessage(u.getPlayer().getDisplayName() + " " + _("is") + " " + u.getName()); sender.sendMessage(realPlayer.getDisplayName() + " " + _("is") + " " + u.getName());
} }
} }
if (!foundUser) if (!foundUser)

View File

@@ -3,11 +3,9 @@ package net.ess3.commands;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.user.User;
import net.ess3.utils.Util; import net.ess3.utils.Util;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.*; import org.bukkit.inventory.*;
import java.util.HashMap; import java.util.HashMap;
@@ -74,12 +72,12 @@ public class Commandrecipe extends EssentialsCommand
public void shapedRecipe(CommandSender sender, ShapedRecipe recipe) public void shapedRecipe(CommandSender sender, ShapedRecipe recipe)
{ {
Map<Character, ItemStack> recipeMap = recipe.getIngredientMap(); final Map<Character, ItemStack> recipeMap = recipe.getIngredientMap();
if (sender instanceof IUser) if (sender instanceof IUser)
{ {
IUser user = getUser(sender); final IUser user = getUser(sender);
user.setRecipeSee(true); user.setRecipeSee(true);
InventoryView view = user.getPlayer().openWorkbench(null, true); final InventoryView view = user.getPlayer().openWorkbench(null, true);
for (Map.Entry<Character, ItemStack> e : recipe.getIngredientMap().entrySet()) for (Map.Entry<Character, ItemStack> e : recipe.getIngredientMap().entrySet())
{ {
view.setItem(" abcdefghi".indexOf(e.getKey()), e.getValue()); view.setItem(" abcdefghi".indexOf(e.getKey()), e.getValue());
@@ -87,9 +85,9 @@ public class Commandrecipe extends EssentialsCommand
} }
else else
{ {
HashMap<ItemStack, String> colorMap = new HashMap<ItemStack, String>(); final HashMap<ItemStack, String> colorMap = new HashMap<ItemStack, String>();
int i = 1; int i = 1;
for (Character c : "abcdefghi".toCharArray()) for (Character c : "abcdefghi".toCharArray()) // TODO: Faster to use new char[] { 'a','b','c','d','e','f','g','h','i' } ?
{ {
if (!colorMap.containsKey(recipeMap.get(c))) if (!colorMap.containsKey(recipeMap.get(c)))
{ {
@@ -100,7 +98,7 @@ public class Commandrecipe extends EssentialsCommand
sender.sendMessage(_("recipeGrid", colorMap.get(recipeMap.get('d')), colorMap.get(recipeMap.get('e')), colorMap.get(recipeMap.get('f')))); sender.sendMessage(_("recipeGrid", colorMap.get(recipeMap.get('d')), colorMap.get(recipeMap.get('e')), colorMap.get(recipeMap.get('f'))));
sender.sendMessage(_("recipeGrid", colorMap.get(recipeMap.get('g')), colorMap.get(recipeMap.get('h')), colorMap.get(recipeMap.get('i')))); sender.sendMessage(_("recipeGrid", colorMap.get(recipeMap.get('g')), colorMap.get(recipeMap.get('h')), colorMap.get(recipeMap.get('i'))));
StringBuilder s = new StringBuilder(); final StringBuilder s = new StringBuilder();
for (ItemStack items : colorMap.keySet().toArray(new ItemStack[colorMap.size()])) for (ItemStack items : colorMap.keySet().toArray(new ItemStack[colorMap.size()]))
{ {
s.append(_("recipeGridItem", colorMap.get(items), getMaterialName(items))); s.append(_("recipeGridItem", colorMap.get(items), getMaterialName(items)));
@@ -111,12 +109,12 @@ public class Commandrecipe extends EssentialsCommand
public void shapelessRecipe(CommandSender sender, ShapelessRecipe recipe) public void shapelessRecipe(CommandSender sender, ShapelessRecipe recipe)
{ {
List<ItemStack> ingredients = recipe.getIngredientList(); final List<ItemStack> ingredients = recipe.getIngredientList();
if (sender instanceof IUser) if (sender instanceof IUser)
{ {
IUser user = getUser(sender); final IUser user = getUser(sender);
user.setRecipeSee(true); user.setRecipeSee(true);
InventoryView view = user.getPlayer().openWorkbench(null, true); final InventoryView view = user.getPlayer().openWorkbench(null, true);
for (int i = 0; i < ingredients.size(); i++) for (int i = 0; i < ingredients.size(); i++)
{ {
view.setItem(i + 1, ingredients.get(i)); view.setItem(i + 1, ingredients.get(i));
@@ -125,7 +123,7 @@ public class Commandrecipe extends EssentialsCommand
else else
{ {
ess.getLogger().info(sender.getClass().getName()); ess.getLogger().info(sender.getClass().getName());
StringBuilder s = new StringBuilder(); final StringBuilder s = new StringBuilder();
for (int i = 0; i < ingredients.size(); i++) for (int i = 0; i < ingredients.size(); i++)
{ {
s.append(getMaterialName(ingredients.get(i))); s.append(getMaterialName(ingredients.get(i)));

View File

@@ -28,7 +28,7 @@ public class Commandremove extends EssentialsCommand
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
ToRemove toRemove; final ToRemove toRemove;
final World world = user.getPlayer().getWorld(); final World world = user.getPlayer().getWorld();
int radius = 0; int radius = 0;
@@ -63,14 +63,13 @@ public class Commandremove extends EssentialsCommand
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
World world; final World world = ess.getWorld(args[1]);
world = ess.getWorld(args[1]);
if (world == null) if (world == null)
{ {
throw new Exception(_("invalidWorld")); throw new Exception(_("invalidWorld"));
} }
ToRemove toRemove; final ToRemove toRemove;
try try
{ {
toRemove = ToRemove.valueOf(args[0].toUpperCase(Locale.ENGLISH)); toRemove = ToRemove.valueOf(args[0].toUpperCase(Locale.ENGLISH));
@@ -89,6 +88,7 @@ public class Commandremove extends EssentialsCommand
{ {
radius *= radius; radius *= radius;
} }
for (Chunk chunk : world.getLoadedChunks()) for (Chunk chunk : world.getLoadedChunks())
{ {
for (Entity e : chunk.getEntities()) for (Entity e : chunk.getEntities())
@@ -100,54 +100,51 @@ public class Commandremove extends EssentialsCommand
continue; continue;
} }
} }
if (toRemove == ToRemove.DROPS) switch (toRemove) {
{ case DROPS:
if (e instanceof Item) if (e instanceof Item)
{ {
e.remove(); e.remove();
removed++; removed++;
} }
} break;
else if (toRemove == ToRemove.ARROWS) case ARROWS:
{
if (e instanceof Projectile) if (e instanceof Projectile)
{ {
e.remove(); e.remove();
removed++; removed++;
} }
} break;
else if (toRemove == ToRemove.BOATS) case BOATS:
{
if (e instanceof Boat) if (e instanceof Boat)
{ {
e.remove(); e.remove();
removed++; removed++;
} }
} break;
else if (toRemove == ToRemove.MINECARTS) case MINECARTS:
{
if (e instanceof Minecart) if (e instanceof Minecart)
{ {
e.remove(); e.remove();
removed++; removed++;
} }
} break;
else if (toRemove == ToRemove.XP) case PAINTINGS:
{
if (e instanceof ExperienceOrb)
{
e.remove();
removed++;
}
}
else if (toRemove == ToRemove.PAINTINGS)
{
if (e instanceof Painting) if (e instanceof Painting)
{ {
e.remove(); e.remove();
removed++; removed++;
} }
break;
case XP:
if (e instanceof ExperienceOrb)
{
e.remove();
removed++;
} }
break;
}
} }
} }
sender.sendMessage(_("removed", removed)); sender.sendMessage(_("removed", removed));

View File

@@ -30,12 +30,12 @@ public class Commandseen extends EssentialsCommand
} }
try try
{ {
IUser u = ess.getUserMap().matchUserExcludingHidden(args[0], getPlayerOrNull(sender)); final IUser u = ess.getUserMap().matchUserExcludingHidden(args[0], getPlayerOrNull(sender));
sender.sendMessage(_("seenOnline", u.getPlayer().getDisplayName(), DateUtil.formatDateDiff(u.getTimestamp(TimestampType.LOGIN)))); sender.sendMessage(_("seenOnline", u.getPlayer().getDisplayName(), DateUtil.formatDateDiff(u.getTimestamp(TimestampType.LOGIN))));
} }
catch (PlayerNotFoundException e) catch (PlayerNotFoundException e)
{ {
IUser u = ess.getUserMap().matchUser(args[0], true); final IUser u = ess.getUserMap().matchUser(args[0], true);
sender.sendMessage(_("seenOffline", u.getName(), DateUtil.formatDateDiff(u.getTimestamp(TimestampType.LOGOUT)))); sender.sendMessage(_("seenOffline", u.getName(), DateUtil.formatDateDiff(u.getTimestamp(TimestampType.LOGOUT))));
if (u.isBanned()) if (u.isBanned())
{ {

View File

@@ -8,6 +8,7 @@ import net.ess3.craftbukkit.InventoryWorkaround;
import net.ess3.economy.Trade; import net.ess3.economy.Trade;
import net.ess3.utils.FormatUtil; import net.ess3.utils.FormatUtil;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@@ -75,7 +76,6 @@ public class Commandsell extends EssentialsCommand
{ {
throw new Exception(_("itemSellAir")); throw new Exception(_("itemSellAir"));
} }
int id = is.getTypeId();
int amount = 0; int amount = 0;
if (args.length > 1) if (args.length > 1)
{ {
@@ -85,8 +85,8 @@ public class Commandsell extends EssentialsCommand
amount = -amount; amount = -amount;
} }
} }
double worth = ess.getWorth().getPrice(is); final double worth = ess.getWorth().getPrice(is);
boolean stack = args.length > 1 && args[1].endsWith("s"); final boolean stack = args.length > 1 && args[1].endsWith("s");
if (Double.isNaN(worth)) if (Double.isNaN(worth))
{ {
@@ -139,15 +139,17 @@ public class Commandsell extends EssentialsCommand
} }
} }
final Player player = user.getPlayer();
//TODO: Prices for Enchantments //TODO: Prices for Enchantments
final ItemStack ris = is.clone(); final ItemStack ris = is.clone();
ris.setAmount(amount); ris.setAmount(amount);
InventoryWorkaround.removeItem(user.getPlayer().getInventory(), true, true, ris); InventoryWorkaround.removeItem(player.getInventory(), true, true, ris);
user.getPlayer().updateInventory(); player.updateInventory();
Trade.log("Command", "Sell", "Item", user.getName(), new Trade(ris, ess), user.getName(), new Trade(worth * amount, ess), user.getPlayer().getLocation(), ess); Trade.log("Command", "Sell", "Item", user.getName(), new Trade(ris, ess), user.getName(), new Trade(worth * amount, ess), player.getLocation(), ess);
user.giveMoney(worth * amount); user.giveMoney(worth * amount);
user.sendMessage(_("itemSold", FormatUtil.displayCurrency(worth * amount, ess), amount, is.getType().toString().toLowerCase(Locale.ENGLISH), FormatUtil.displayCurrency(worth, ess))); user.sendMessage(_("itemSold", FormatUtil.displayCurrency(worth * amount, ess), amount, is.getType().toString().toLowerCase(Locale.ENGLISH), FormatUtil.displayCurrency(worth, ess)));
logger.log(Level.INFO, _("itemSoldConsole", user.getPlayer().getDisplayName(), is.getType().toString().toLowerCase(Locale.ENGLISH), FormatUtil.displayCurrency(worth * amount, ess), amount, FormatUtil.displayCurrency(worth, ess))); logger.log(Level.INFO, _("itemSoldConsole", player.getDisplayName(), is.getType().toString().toLowerCase(Locale.ENGLISH), FormatUtil.displayCurrency(worth * amount, ess), amount, FormatUtil.displayCurrency(worth, ess)));
} }
} }

View File

@@ -43,7 +43,7 @@ public class Commandsetworth extends EssentialsCommand
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
ItemStack stack = ess.getItemDb().get(args[0]); final ItemStack stack = ess.getItemDb().get(args[0]);
ess.getWorth().setPrice(stack, Double.parseDouble(args[1])); ess.getWorth().setPrice(stack, Double.parseDouble(args[1]));
sender.sendMessage(_("worthSet")); sender.sendMessage(_("worthSet"));
} }

View File

@@ -89,7 +89,7 @@ public class Commandspeed extends EssentialsCommand
private boolean isFlyMode(final String modeString) throws NotEnoughArgumentsException private boolean isFlyMode(final String modeString) throws NotEnoughArgumentsException
{ {
boolean isFlyMode; final boolean isFlyMode;
if (modeString.contains("fly") || modeString.equalsIgnoreCase("f")) if (modeString.contains("fly") || modeString.equalsIgnoreCase("f"))
{ {
isFlyMode = true; isFlyMode = true;

View File

@@ -3,8 +3,11 @@ package net.ess3.commands;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import org.bukkit.Server;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.command.PluginCommand; import org.bukkit.command.PluginCommand;
import org.bukkit.entity.Player;
public class Commandsudo extends EssentialsCommand public class Commandsudo extends EssentialsCommand
@@ -30,13 +33,15 @@ public class Commandsudo extends EssentialsCommand
throw new Exception(_("sudoExempt")); throw new Exception(_("sudoExempt"));
} }
sender.sendMessage(_("sudoRun", user.getPlayer().getDisplayName(), command, getFinalArg(arguments, 0))); final Player player = user.getPlayer();
sender.sendMessage(_("sudoRun", player.getDisplayName(), command, getFinalArg(arguments, 0)));
ess.getServer().dispatchCommand(user, command); final Server server = ess.getServer();
final PluginCommand execCommand = ess.getServer().getPluginCommand(command); server.dispatchCommand(user, command);
final PluginCommand execCommand = server.getPluginCommand(command);
if (execCommand != null) if (execCommand != null)
{ {
execCommand.execute(user.getPlayer(), command, arguments); execCommand.execute(player, command, arguments);
} }
} }

View File

@@ -1,6 +1,9 @@
package net.ess3.commands; package net.ess3.commands;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import org.bukkit.entity.Player;
import net.ess3.api.IUser; import net.ess3.api.IUser;
@@ -9,9 +12,10 @@ public class Commandsuicide extends EssentialsCommand
@Override @Override
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
{ {
ess.getPlugin().callSuicideEvent(user.getPlayer()); final Player player = user.getPlayer();
user.getPlayer().damage(Short.MAX_VALUE); ess.getPlugin().callSuicideEvent(player);
user.getPlayer().damage(player.getHealth());
user.sendMessage(_("suicideMessage")); user.sendMessage(_("suicideMessage"));
ess.broadcastMessage(user,_("suicideSuccess", user.getPlayer().getDisplayName())); ess.broadcastMessage(user,_("suicideSuccess", player.getDisplayName()));
} }
} }

View File

@@ -5,6 +5,7 @@ import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import net.ess3.user.Ban; import net.ess3.user.Ban;
import net.ess3.user.UserData;
import net.ess3.utils.DateUtil; import net.ess3.utils.DateUtil;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -40,9 +41,11 @@ public class Commandtempban extends EssentialsCommand
final long banTimestamp = DateUtil.parseDateDiff(time, true); final long banTimestamp = DateUtil.parseDateDiff(time, true);
final String banReason = _("tempBanned", DateUtil.formatDateDiff(banTimestamp)); final String banReason = _("tempBanned", DateUtil.formatDateDiff(banTimestamp));
user.getData().setBan(new Ban()); UserData userData = user.getData();
user.getData().getBan().setReason(banReason); userData.setBan(new Ban());
user.getData().getBan().setTimeout(banTimestamp); Ban ban = userData.getBan();
ban.setReason(banReason);
ban.setTimeout(banTimestamp);
user.setBanned(true); user.setBanned(true);
user.queueSave(); user.queueSave();
user.getPlayer().kickPlayer(banReason); user.getPlayer().kickPlayer(banReason);

View File

@@ -2,7 +2,6 @@ package net.ess3.commands;
import java.util.*; import java.util.*;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import net.ess3.utils.DescParseTickFormat; import net.ess3.utils.DescParseTickFormat;
import net.ess3.utils.Util; import net.ess3.utils.Util;
@@ -51,7 +50,7 @@ public class Commandtime extends EssentialsCommand
} }
// Parse the target time int ticks from args[0] // Parse the target time int ticks from args[0]
long ticks; final long ticks;
try try
{ {
ticks = DescParseTickFormat.parse(validArgs[0]); ticks = DescParseTickFormat.parse(validArgs[0]);

View File

@@ -4,6 +4,7 @@ import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.economy.Trade; import net.ess3.economy.Trade;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -12,10 +13,12 @@ public class Commandtop extends EssentialsCommand
@Override @Override
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
{ {
final int topX = user.getPlayer().getLocation().getBlockX(); final Player player = user.getPlayer();
final int topZ = user.getPlayer().getLocation().getBlockZ(); final Location playerLocation = user.getPlayer().getLocation();
final int topY = user.getPlayer().getWorld().getHighestBlockYAt(topX, topZ); final int topX = playerLocation.getBlockX();
user.getTeleport().teleport(new Location(user.getPlayer().getWorld(), user.getPlayer().getLocation().getX(), topY + 1, user.getPlayer().getLocation().getZ(), user.getPlayer().getLocation().getYaw(), user.getPlayer().getLocation().getPitch()), new Trade(commandName, ess), TeleportCause.COMMAND); final int topZ = playerLocation.getBlockZ();
final int topY = playerLocation.getWorld().getHighestBlockYAt(topX, topZ);
user.getTeleport().teleport(new Location(player.getWorld(), topX, topY + 1, topZ, playerLocation.getYaw(), playerLocation.getPitch()), new Trade(commandName, ess), TeleportCause.COMMAND);
user.sendMessage(_("teleportTop")); user.sendMessage(_("teleportTop"));
} }
} }

View File

@@ -36,7 +36,7 @@ public class Commandwhois extends EssentialsCommand
} }
final String whois = args[0].toLowerCase(Locale.ENGLISH); final String whois = args[0].toLowerCase(Locale.ENGLISH);
ISettings settings = ess.getSettings(); final ISettings settings = ess.getSettings();
final int prefixLength = FormatUtil.stripColor(settings.getData().getChat().getNicknamePrefix()).length(); final int prefixLength = FormatUtil.stripColor(settings.getData().getChat().getNicknamePrefix()).length();
boolean foundPlayer = false; boolean foundPlayer = false;
for (Player onlinePlayer : server.getOnlinePlayers()) for (Player onlinePlayer : server.getOnlinePlayers())
@@ -47,38 +47,40 @@ public class Commandwhois extends EssentialsCommand
{ {
continue; continue;
} }
final String nickName = FormatUtil.stripFormat(user.getData().getNickname()); final UserData userData = user.getData();
final String nickName = FormatUtil.stripFormat(userData.getNickname());
if (!whois.equalsIgnoreCase(nickName) if (!whois.equalsIgnoreCase(nickName)
&& !whois.substring(prefixLength).equalsIgnoreCase(nickName) && !whois.substring(prefixLength).equalsIgnoreCase(nickName)
&& !whois.equalsIgnoreCase(user.getName())) && !whois.equalsIgnoreCase(user.getName()))
{ {
continue; continue;
} }
final Player player = user.getPlayer();
foundPlayer = true; foundPlayer = true;
sender.sendMessage(_("whoisTop", user.getName())); sender.sendMessage(_("whoisTop", user.getName()));
sender.sendMessage(_("whoisIs", user.getPlayer().getDisplayName(), user.getName())); sender.sendMessage(_("whoisIs", player.getDisplayName(), user.getName()));
sender.sendMessage(_("whoisHealth", user.getPlayer().getHealth())); sender.sendMessage(_("whoisHealth", player.getHealth()));
sender.sendMessage(_("whoisExp", SetExpFix.getTotalExperience(user.getPlayer()), user.getPlayer().getLevel())); sender.sendMessage(_("whoisExp", SetExpFix.getTotalExperience(player), player.getLevel()));
sender.sendMessage(_("whoisLocation", user.getPlayer().getLocation().getWorld().getName(), user.getPlayer().getLocation().getBlockX(), user.getPlayer().getLocation().getBlockY(), user.getPlayer().getLocation().getBlockZ())); sender.sendMessage(_("whoisLocation", player.getLocation().getWorld().getName(), player.getLocation().getBlockX(), player.getLocation().getBlockY(), player.getLocation().getBlockZ()));
sender.sendMessage(_("whoisMoney", FormatUtil.displayCurrency(user.getMoney(), ess))); sender.sendMessage(_("whoisMoney", FormatUtil.displayCurrency(user.getMoney(), ess)));
sender.sendMessage(_("whoisIPAddress", user.getPlayer().getAddress().getAddress().toString())); sender.sendMessage(_("whoisIPAddress", player.getAddress().getAddress().toString()));
final String location = user.getData().getGeolocation(); final String location = userData.getGeolocation();
if (location != null if (location != null
&& Permissions.GEOIP_SHOW.isAuthorized(sender)) && Permissions.GEOIP_SHOW.isAuthorized(sender))
{ {
sender.sendMessage(_("whoisGeoLocation", location)); sender.sendMessage(_("whoisGeoLocation", location));
} }
sender.sendMessage(_("whoisGamemode", _(user.getPlayer().getGameMode().toString().toLowerCase(Locale.ENGLISH)))); sender.sendMessage(_("whoisGamemode", _(player.getGameMode().toString().toLowerCase(Locale.ENGLISH))));
sender.sendMessage(_("whoisGod", (user.isGodModeEnabled() ? _("true") : _("false")))); sender.sendMessage(_("whoisGod", (user.isGodModeEnabled() ? _("true") : _("false"))));
sender.sendMessage(_("whoisOP", (user.isOp() ? _("true") : _("false")))); sender.sendMessage(_("whoisOP", (user.isOp() ? _("true") : _("false"))));
sender.sendMessage(_("whoisFly", user.getPlayer().getAllowFlight() ? _("true") : _("false"), user.getPlayer().isFlying() ? _("flying") : _("notFlying"))); sender.sendMessage(_("whoisFly", player.getAllowFlight() ? _("true") : _("false"), player.isFlying() ? _("flying") : _("notFlying")));
sender.sendMessage(_("whoisAFK", (user.getData().isAfk() ? _("true") : _("false")))); sender.sendMessage(_("whoisAFK", (userData.isAfk() ? _("true") : _("false"))));
sender.sendMessage(_("whoisJail", (user.getData().isJailed() sender.sendMessage(_("whoisJail", (userData.isJailed()
? user.getTimestamp(UserData.TimestampType.JAIL) > 0 ? user.getTimestamp(UserData.TimestampType.JAIL) > 0
? DateUtil.formatDateDiff(user.getTimestamp(UserData.TimestampType.JAIL)) ? DateUtil.formatDateDiff(user.getTimestamp(UserData.TimestampType.JAIL))
: _("true") : _("true")
: _("false")))); : _("false"))));
sender.sendMessage(_("whoisMute", (user.getData().isMuted() sender.sendMessage(_("whoisMute", (userData.isMuted()
? user.getTimestamp(UserData.TimestampType.MUTE) > 0 ? user.getTimestamp(UserData.TimestampType.MUTE) > 0
? DateUtil.formatDateDiff(user.getTimestamp(UserData.TimestampType.MUTE)) ? DateUtil.formatDateDiff(user.getTimestamp(UserData.TimestampType.MUTE))
: _("true") : _("true")

View File

@@ -7,6 +7,7 @@ import net.ess3.economy.Trade;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -56,21 +57,22 @@ public class Commandworld extends EssentialsCommand
throw new NoChargeException(); throw new NoChargeException();
} }
double factor; final double factor;
if (user.getPlayer().getWorld().getEnvironment() == World.Environment.NETHER && world.getEnvironment() == World.Environment.NORMAL) final Player player = user.getPlayer();
if (player.getWorld().getEnvironment() == World.Environment.NETHER && world.getEnvironment() == World.Environment.NORMAL)
{ {
factor = 8.0; factor = 8d;
} }
else if (user.getPlayer().getWorld().getEnvironment() == World.Environment.NORMAL && world.getEnvironment() == World.Environment.NETHER) else if (player.getWorld().getEnvironment() == World.Environment.NORMAL && world.getEnvironment() == World.Environment.NETHER)
{ {
factor = 1.0 / 8.0; factor = 1d / 8d;
} }
else else
{ {
factor = 1.0; factor = 1d;
} }
final Location loc = user.getPlayer().getLocation(); final Location loc = player.getLocation();
final Location target = new Location(world, loc.getBlockX() * factor + .5, loc.getBlockY(), loc.getBlockZ() * factor + .5); final Location target = new Location(world, loc.getBlockX() * factor + .5, loc.getBlockY(), loc.getBlockZ() * factor + .5);
final Trade charge = new Trade(commandName, ess); final Trade charge = new Trade(commandName, ess);

View File

@@ -5,6 +5,7 @@ import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.*; import net.ess3.api.*;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
@@ -20,7 +21,7 @@ public class EssentialsCommandHandler implements ICommandHandler, TabExecutor
{ {
private final transient ClassLoader classLoader; private final transient ClassLoader classLoader;
private final transient String commandPath; private final transient String commandPath;
private final transient String permissionPrefix; private final transient String permissionPrefix;// TODO: Needed?
private final transient IEssentialsModule module; private final transient IEssentialsModule module;
private static final transient Logger LOGGER = Bukkit.getLogger(); private static final transient Logger LOGGER = Bukkit.getLogger();
private final transient Map<String, List<PluginCommand>> altcommands = new HashMap<String, List<PluginCommand>>(); private final transient Map<String, List<PluginCommand>> altcommands = new HashMap<String, List<PluginCommand>>();
@@ -100,7 +101,7 @@ public class EssentialsCommandHandler implements ICommandHandler, TabExecutor
return true; return true;
} }
final String commandName = command.getName().toLowerCase(Locale.ENGLISH); final String commandName = command.getName().toLowerCase(Locale.ENGLISH); // TODO: Isn't this just the commandLable
IEssentialsCommand cmd = commands.get(commandName); IEssentialsCommand cmd = commands.get(commandName);
if (cmd == null) if (cmd == null)
{ {

View File

@@ -3,6 +3,8 @@ package net.ess3.commands;
public class NoChargeException extends Exception public class NoChargeException extends Exception
{ {
private static final long serialVersionUID = 5817092912429182826L;
public NoChargeException() public NoChargeException()
{ {
super("Will charge later"); super("Will charge later");

View File

@@ -3,6 +3,8 @@ package net.ess3.commands;
public class NotEnoughArgumentsException extends Exception public class NotEnoughArgumentsException extends Exception
{ {
private static final long serialVersionUID = 4659884540230373059L;
public NotEnoughArgumentsException() public NotEnoughArgumentsException()
{ {
super(""); super("");

View File

@@ -4,6 +4,8 @@ import static net.ess3.I18n._;
public class WarpNotFoundException extends Exception public class WarpNotFoundException extends Exception
{ {
private static final long serialVersionUID = 6585692783437952812L;
public WarpNotFoundException() public WarpNotFoundException()
{ {
super(_("warpNotExist")); super(_("warpNotExist"));

View File

@@ -240,4 +240,8 @@ public class FakeInventory implements Inventory
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
public boolean containsAtLeast(ItemStack arg0, int arg1) {
throw new UnsupportedOperationException("Not supported yet.");
}
} }

View File

@@ -81,11 +81,8 @@ public class Trade
} }
final ISettings settings = ess.getSettings();
double money;
if (command != null && !command.isEmpty() if (command != null && !command.isEmpty()
&& 0 < (money = getCommandCost(user)) && 0 < getCommandCost(user)
&& !Permissions.ECO_LOAN.isAuthorized(user)) && !Permissions.ECO_LOAN.isAuthorized(user))
{ {
throw new ChargeException(_("notEnoughMoney")); throw new ChargeException(_("notEnoughMoney"));
@@ -240,7 +237,7 @@ public class Trade
Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex); Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex);
} }
} }
StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append(type).append(",").append(subtype).append(",").append(event).append(",\""); sb.append(type).append(",").append(subtype).append(",").append(event).append(",\"");
sb.append(DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL).format(new Date())); sb.append(DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL).format(new Date()));
sb.append("\",\""); sb.append("\",\"");
@@ -288,9 +285,10 @@ public class Trade
{ {
if (pay.getItemStack() != null) if (pay.getItemStack() != null)
{ {
sb.append(pay.getItemStack().getAmount()).append(","); ItemStack is = pay.getItemStack();
sb.append(pay.getItemStack().getType().toString()).append(","); sb.append(is.getAmount()).append(",");
sb.append(pay.getItemStack().getDurability()); sb.append(is.getType().toString()).append(",");
sb.append(is.getDurability());
} }
if (pay.getMoney() != null) if (pay.getMoney() != null)
{ {

View File

@@ -1,7 +1,6 @@
package net.ess3.economy; package net.ess3.economy;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.util.Map; import java.util.Map;
import net.ess3.api.IEssentials; import net.ess3.api.IEssentials;
import net.ess3.api.IWorth; import net.ess3.api.IWorth;

View File

@@ -3,8 +3,11 @@ package net.ess3.listener;
import net.ess3.api.IEssentials; import net.ess3.api.IEssentials;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.bukkit.BukkitMaterial; import net.ess3.bukkit.BukkitMaterial;
import net.ess3.craftbukkit.InventoryWorkaround;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@@ -32,11 +35,11 @@ public class EssentialsBlockListener implements Listener
return; return;
} }
final Player player = event.getPlayer();
final IUser user = ess.getUserMap().getUser(event.getPlayer()); final IUser user = ess.getUserMap().getUser(player);
final boolean unlimitedForUser = user.getData().hasUnlimited(itemstack.getType()); final boolean unlimitedForUser = user.getData().hasUnlimited(itemstack.getType());
if (unlimitedForUser && user.getPlayer().getGameMode() != GameMode.CREATIVE) if (unlimitedForUser && player.getGameMode() != GameMode.CREATIVE)
{ {
ess.getPlugin().scheduleSyncDelayedTask( ess.getPlugin().scheduleSyncDelayedTask(
new Runnable() new Runnable()
@@ -44,8 +47,8 @@ public class EssentialsBlockListener implements Listener
@Override @Override
public void run() public void run()
{ {
user.getPlayer().getInventory().addItem(itemstack); player.getInventory().addItem(itemstack);
user.getPlayer().updateInventory(); player.updateInventory();
} }
}); });
} }

View File

@@ -6,7 +6,6 @@ import net.ess3.api.IEssentials;
import net.ess3.api.ISettings; import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import net.ess3.user.User;
import net.ess3.user.UserData.TimestampType; import net.ess3.user.UserData.TimestampType;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Ageable; import org.bukkit.entity.Ageable;
@@ -102,19 +101,22 @@ public class EssentialsEntityListener implements Listener
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onEntityDamage(final EntityDamageEvent event) public void onEntityDamage(final EntityDamageEvent event)
{ {
if (event.getEntity() instanceof Player && ess.getUserMap().getUser((Player)event.getEntity()).isGodModeEnabled()) final Entity entity = event.getEntity();
{ if (entity instanceof Player) {
final Player player = (Player)event.getEntity(); final Player player = (Player)entity;
if (ess.getUserMap().getUser(player).isGodModeEnabled()) {
player.setFireTicks(0); player.setFireTicks(0);
player.setRemainingAir(player.getMaximumAir()); player.setRemainingAir(player.getMaximumAir());
event.setCancelled(true); event.setCancelled(true);
} }
} }
}
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onEntityCombust(final EntityCombustEvent event) public void onEntityCombust(final EntityCombustEvent event)
{ {
if (event.getEntity() instanceof Player && ess.getUserMap().getUser((Player)event.getEntity()).isGodModeEnabled()) final Entity entity = event.getEntity();
if (entity instanceof Player && ess.getUserMap().getUser((Player)entity).isGodModeEnabled())
{ {
event.setCancelled(true); event.setCancelled(true);
} }
@@ -151,7 +153,8 @@ public class EssentialsEntityListener implements Listener
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onFoodLevelChange(final FoodLevelChangeEvent event) public void onFoodLevelChange(final FoodLevelChangeEvent event)
{ {
if (event.getEntity() instanceof Player && ess.getUserMap().getUser((Player)event.getEntity()).isGodModeEnabled()) final Entity entity = event.getEntity();
if (entity instanceof Player && ess.getUserMap().getUser((Player)entity).isGodModeEnabled())
{ {
event.setCancelled(true); event.setCancelled(true);
} }
@@ -201,7 +204,7 @@ public class EssentialsEntityListener implements Listener
{ {
if (entity instanceof Player) if (entity instanceof Player)
{ {
IUser user = ess.getUserMap().getUser((Player)entity); final IUser user = ess.getUserMap().getUser((Player)entity);
if (user.isGodModeEnabled()) if (user.isGodModeEnabled())
{ {
event.setIntensity(entity, 0d); event.setIntensity(entity, 0d);

View File

@@ -1,7 +1,6 @@
package net.ess3.listener; package net.ess3.listener;
import java.io.IOException; import java.io.IOException;
import java.util.Arrays;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
@@ -12,16 +11,13 @@ import static net.ess3.I18n._;
import net.ess3.api.IEssentials; import net.ess3.api.IEssentials;
import net.ess3.api.ISettings; import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.api.IUserMap;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import net.ess3.settings.Commands;
import net.ess3.user.UserData.TimestampType; import net.ess3.user.UserData.TimestampType;
import net.ess3.utils.FormatUtil; import net.ess3.utils.FormatUtil;
import net.ess3.utils.LocationUtil; import net.ess3.utils.LocationUtil;
import net.ess3.utils.textreader.IText; import net.ess3.utils.textreader.*;
import net.ess3.utils.textreader.KeywordReplacer;
import net.ess3.utils.textreader.SimpleTextInput;
import net.ess3.utils.textreader.SimpleTextPager;
import net.ess3.utils.textreader.TextInput;
import net.ess3.utils.textreader.TextPager;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Server; import org.bukkit.Server;
@@ -29,9 +25,7 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.*;
import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.player.*; import org.bukkit.event.player.*;
import org.bukkit.event.player.PlayerLoginEvent.Result; import org.bukkit.event.player.PlayerLoginEvent.Result;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -44,26 +38,28 @@ public class EssentialsPlayerListener implements Listener
private static final Logger LOGGER = Logger.getLogger("Minecraft"); private static final Logger LOGGER = Logger.getLogger("Minecraft");
private final transient Server server; private final transient Server server;
private final transient IEssentials ess; private final transient IEssentials ess;
private final transient IUserMap userMap;
public EssentialsPlayerListener(final IEssentials parent) public EssentialsPlayerListener(final IEssentials parent)
{ {
super(); super();
this.ess = parent; this.ess = parent;
userMap = ess.getUserMap();
this.server = parent.getServer(); this.server = parent.getServer();
} }
@EventHandler(priority = EventPriority.NORMAL) @EventHandler(priority = EventPriority.NORMAL)
public void onPlayerRespawn(final PlayerRespawnEvent event) public void onPlayerRespawn(final PlayerRespawnEvent event)
{ {
final IUser user = ess.getUserMap().getUser(event.getPlayer()); final IUser user = userMap.getUser(event.getPlayer());
user.updateCompass(); user.updateCompass();
user.updateDisplayName(); user.updateDisplayName();
} }
@EventHandler(priority = EventPriority.LOWEST) @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerChat(final PlayerChatEvent event) public void onPlayerChat(final AsyncPlayerChatEvent event) // TODO: Does this update work?
{ {
final IUser user = ess.getUserMap().getUser(event.getPlayer()); final IUser user = userMap.getUser(event.getPlayer());
if (user.getData().isMuted()) if (user.getData().isMuted())
{ {
event.setCancelled(true); event.setCancelled(true);
@@ -73,20 +69,20 @@ public class EssentialsPlayerListener implements Listener
final Iterator<Player> it = event.getRecipients().iterator(); final Iterator<Player> it = event.getRecipients().iterator();
while (it.hasNext()) while (it.hasNext())
{ {
final IUser player = ess.getUserMap().getUser(it.next()); final IUser u = userMap.getUser(it.next());
if (player.isIgnoringPlayer(user)) if (u.getData().getIgnore().contains(user.getName()))
{ {
it.remove(); it.remove();
} }
} }
user.updateActivity(true); user.updateActivity(true);
user.updateDisplayName(); user.setDisplayNick();
} }
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void onPlayerMove(final PlayerMoveEvent event) public void onPlayerMove(final PlayerMoveEvent event)
{ {
final IUser user = ess.getUserMap().getUser(event.getPlayer()); final IUser user = userMap.getUser(event.getPlayer());
final ISettings settings = ess.getSettings(); final ISettings settings = ess.getSettings();
@@ -121,7 +117,7 @@ public class EssentialsPlayerListener implements Listener
final String quitMessage = ess.getSettings().getData().getGeneral().getLeaveMessage(); final String quitMessage = ess.getSettings().getData().getGeneral().getLeaveMessage();
if (quitMessage != null) if (quitMessage != null)
{ {
final IText itOutput = new KeywordReplacer(new SimpleTextInput(quitMessage), ess.getUserMap().getUser(event.getPlayer()), ess); final IText itOutput = new KeywordReplacer(new SimpleTextInput(quitMessage), userMap.getUser(event.getPlayer()), ess);
final SimpleTextPager stPager = new SimpleTextPager(itOutput); final SimpleTextPager stPager = new SimpleTextPager(itOutput);
event.setQuitMessage(FormatUtil.replaceFormat(stPager.getString(0))); event.setQuitMessage(FormatUtil.replaceFormat(stPager.getString(0)));
} }
@@ -131,7 +127,7 @@ public class EssentialsPlayerListener implements Listener
} }
final IUser user = ess.getUserMap().getUser(event.getPlayer()); final IUser user = userMap.getUser(event.getPlayer());
final ISettings settings = ess.getSettings(); final ISettings settings = ess.getSettings();
if (settings.getData().getCommands().getGod().isRemoveOnDisconnect() && user.isGodModeEnabled()) if (settings.getData().getCommands().getGod().isRemoveOnDisconnect() && user.isGodModeEnabled())
@@ -160,6 +156,15 @@ public class EssentialsPlayerListener implements Listener
@EventHandler(priority = EventPriority.MONITOR) @EventHandler(priority = EventPriority.MONITOR)
public void onPlayerJoin(final PlayerJoinEvent event) public void onPlayerJoin(final PlayerJoinEvent event)
{ {
ess.getPlugin().scheduleAsyncDelayedTask(new Runnable()
{
@Override
public void run()
{
delayedJoin(event.getPlayer());
}
});
/* TODO: Make sure my update is good
if (!event.getPlayer().isOnline()) if (!event.getPlayer().isOnline())
{ {
return; return;
@@ -235,8 +240,88 @@ public class EssentialsPlayerListener implements Listener
{ {
user.sendMessage(_("youHaveNewMail", mail.size())); user.sendMessage(_("youHaveNewMail", mail.size()));
} }
}*/
}
public void delayedJoin(final Player player)
{
if (!player.isOnline())
{
return;
}
ess.getBackup().startTask();
final IUser user = userMap.getUser(player);
user.setDisplayNick();
user.updateCompass();
user.getData().setTimestamp(TimestampType.LOGIN, System.currentTimeMillis());
user.updateActivity(false);
if (!ess.getVanishedPlayers().isEmpty() && !Permissions.VANISH_SEE_OTHERS.isAuthorized(user))
{
for (String p : ess.getVanishedPlayers())
{
final Player toVanish = userMap.getUser(p).getPlayer();
if (toVanish.isOnline())
{
user.setVanished(true);
} }
} }
}
if (Permissions.SLEEPINGIGNORED.isAuthorized(user))
{
ess.getPlugin().scheduleSyncDelayedTask(new Runnable()
{
@Override
public void run()
{
user.getPlayer().setSleepingIgnored(true);
}
});
}
final Commands settings = ess.getSettings().getData().getCommands();
if (!settings.isDisabled("motd") && Permissions.MOTD.isAuthorized(user))
{
try
{
final IText input = new TextInput(user, "motd", true, ess);
final IText output = new KeywordReplacer(input, user, ess);
final TextPager pager = new TextPager(output, true);
pager.showPage("1", null, "motd", user);
}
catch (IOException ex)
{
if (ess.getSettings().isDebug())
{
LOGGER.log(Level.WARNING, ex.getMessage(), ex);
}
else
{
LOGGER.log(Level.WARNING, ex.getMessage());
}
}
}
if (!settings.isDisabled("mail") && Permissions.MAIL.isAuthorized(user))
{
final List<String> mail = user.getMails();
if (mail.isEmpty())
{
final String msg = _("noNewMail");
if (!msg.isEmpty())
{
user.sendMessage(msg);
}
}
else
{
user.sendMessage(_("youHaveNewMail", mail.size()));
}
}
}
@EventHandler(priority = EventPriority.HIGH) @EventHandler(priority = EventPriority.HIGH)
public void onPlayerLogin(final PlayerLoginEvent event) public void onPlayerLogin(final PlayerLoginEvent event)
@@ -251,9 +336,9 @@ public class EssentialsPlayerListener implements Listener
return; return;
} }
ess.getUserMap().addPrejoinedPlayer(event.getPlayer()); userMap.addPrejoinedPlayer(event.getPlayer());
final IUser user = ess.getUserMap().getUser(event.getPlayer()); final IUser user = userMap.getUser(event.getPlayer());
ess.getUserMap().removePrejoinedPlayer(event.getPlayer()); userMap.removePrejoinedPlayer(event.getPlayer());
user.getData().setNpc(false); user.getData().setNpc(false);
final long currentTime = System.currentTimeMillis(); final long currentTime = System.currentTimeMillis();
@@ -288,7 +373,7 @@ public class EssentialsPlayerListener implements Listener
//There is TeleportCause.COMMMAND but plugins have to actively pass the cause in on their teleports. //There is TeleportCause.COMMMAND but plugins have to actively pass the cause in on their teleports.
if ((event.getCause() == TeleportCause.PLUGIN || event.getCause() == TeleportCause.COMMAND) && settings.getData().getCommands().getBack().isRegisterBackInListener()) if ((event.getCause() == TeleportCause.PLUGIN || event.getCause() == TeleportCause.COMMAND) && settings.getData().getCommands().getBack().isRegisterBackInListener())
{ {
final IUser user = ess.getUserMap().getUser(event.getPlayer()); final IUser user = userMap.getUser(event.getPlayer());
user.setLastLocation(); user.setLastLocation();
} }
@@ -298,7 +383,7 @@ public class EssentialsPlayerListener implements Listener
public void onPlayerEggThrow(final PlayerEggThrowEvent event) public void onPlayerEggThrow(final PlayerEggThrowEvent event)
{ {
final IUser user = ess.getUserMap().getUser(event.getPlayer()); final IUser user = userMap.getUser(event.getPlayer());
final ItemStack hand = new ItemStack(Material.EGG, 1); final ItemStack hand = new ItemStack(Material.EGG, 1);
if (user.getData().hasUnlimited(hand.getType())) if (user.getData().hasUnlimited(hand.getType()))
{ {
@@ -311,7 +396,7 @@ public class EssentialsPlayerListener implements Listener
public void onPlayerBucketEmpty(final PlayerBucketEmptyEvent event) public void onPlayerBucketEmpty(final PlayerBucketEmptyEvent event)
{ {
final IUser user = ess.getUserMap().getUser(event.getPlayer()); final IUser user = userMap.getUser(event.getPlayer());
if (user.getData().hasUnlimited(event.getBucket())) if (user.getData().hasUnlimited(event.getBucket()))
{ {
event.getItemStack().setType(event.getBucket()); event.getItemStack().setType(event.getBucket());
@@ -330,13 +415,13 @@ public class EssentialsPlayerListener implements Listener
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event) public void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event)
{ {
final IUser user = ess.getUserMap().getUser(event.getPlayer()); final IUser user = userMap.getUser(event.getPlayer());
final String cmd = spaceSplit.split(event.getMessage().toLowerCase(Locale.ENGLISH))[0].replace("/", "").toLowerCase(Locale.ENGLISH); final String cmd = spaceSplit.split(event.getMessage().toLowerCase(Locale.ENGLISH))[0].replace("/", "").toLowerCase(Locale.ENGLISH);
if (ess.getSettings().getData().getCommands().getSocialspy().getSocialspyCommands().contains(cmd)) if (ess.getSettings().getData().getCommands().getSocialspy().getSocialspyCommands().contains(cmd))
{ {
for (Player player : ess.getServer().getOnlinePlayers()) for (Player player : ess.getServer().getOnlinePlayers())
{ {
IUser spyer = ess.getUserMap().getUser(player); IUser spyer = userMap.getUser(player);
if (spyer.getData().isSocialspy() && !user.equals(spyer)) if (spyer.getData().isSocialspy() && !user.equals(spyer))
{ {
player.sendMessage(user.getPlayer().getDisplayName() + " : " + event.getMessage()); player.sendMessage(user.getPlayer().getDisplayName() + " : " + event.getMessage());
@@ -354,7 +439,7 @@ public class EssentialsPlayerListener implements Listener
{ {
final ISettings settings = ess.getSettings(); final ISettings settings = ess.getSettings();
final IUser user = ess.getUserMap().getUser(event.getPlayer()); final IUser user = userMap.getUser(event.getPlayer());
if (settings.getData().getChat().getChangeDisplayname()) if (settings.getData().getChat().getChangeDisplayname())
{ {
user.updateDisplayName(); user.updateDisplayName();
@@ -385,7 +470,7 @@ public class EssentialsPlayerListener implements Listener
@EventHandler(priority = EventPriority.NORMAL) @EventHandler(priority = EventPriority.NORMAL)
public void onPlayerInteract(final PlayerInteractEvent event) public void onPlayerInteract(final PlayerInteractEvent event)
{ {
final IUser user = ess.getUserMap().getUser(event.getPlayer()); final IUser user = userMap.getUser(event.getPlayer());
user.updateActivity(true); user.updateActivity(true);
switch (event.getAction()) switch (event.getAction())
{ {
@@ -419,8 +504,7 @@ public class EssentialsPlayerListener implements Listener
private boolean usePowertools(final IUser user) private boolean usePowertools(final IUser user)
{ {
final ItemStack is = user.getPlayer().getItemInHand(); final ItemStack is = user.getPlayer().getItemInHand();
int id; if (is == null || is.getTypeId() == 0)
if (is == null || (id = is.getTypeId()) == 0)
{ {
return false; return false;
} }
@@ -470,7 +554,7 @@ public class EssentialsPlayerListener implements Listener
return; return;
} }
final IUser user = ess.getUserMap().getUser(event.getPlayer()); final IUser user = userMap.getUser(event.getPlayer());
if (user.getData().isAfk()) if (user.getData().isAfk())
{ {
event.setCancelled(true); event.setCancelled(true);
@@ -482,11 +566,11 @@ public class EssentialsPlayerListener implements Listener
{ {
if (event.getView().getTopInventory().getType() == InventoryType.PLAYER) if (event.getView().getTopInventory().getType() == InventoryType.PLAYER)
{ {
final IUser user = ess.getUserMap().getUser((Player)event.getWhoClicked()); final IUser user = userMap.getUser((Player)event.getWhoClicked());
final InventoryHolder invHolder = event.getView().getTopInventory().getHolder(); final InventoryHolder invHolder = event.getView().getTopInventory().getHolder();
if (invHolder != null && invHolder instanceof Player) if (invHolder != null && invHolder instanceof Player)
{ {
final IUser invOwner = ess.getUserMap().getUser((Player)invHolder); final IUser invOwner = userMap.getUser((Player)invHolder);
if (user.isInvSee() && (!Permissions.INVSEE_MODIFY.isAuthorized(user) if (user.isInvSee() && (!Permissions.INVSEE_MODIFY.isAuthorized(user)
|| Permissions.INVSEE_PREVENT_MODIFY.isAuthorized(invOwner) || Permissions.INVSEE_PREVENT_MODIFY.isAuthorized(invOwner)
|| !invOwner.isOnline())) || !invOwner.isOnline()))
@@ -497,7 +581,7 @@ public class EssentialsPlayerListener implements Listener
} }
if (event.getView().getTopInventory().getType() == InventoryType.WORKBENCH) if (event.getView().getTopInventory().getType() == InventoryType.WORKBENCH)
{ {
final IUser user = ess.getUserMap().getUser((Player)event.getWhoClicked()); final IUser user = userMap.getUser((Player)event.getWhoClicked());
if(user.isRecipeSee()) if(user.isRecipeSee())
{ {
event.setCancelled(true); event.setCancelled(true);
@@ -510,12 +594,12 @@ public class EssentialsPlayerListener implements Listener
{ {
if (event.getView().getTopInventory().getType() == InventoryType.PLAYER) if (event.getView().getTopInventory().getType() == InventoryType.PLAYER)
{ {
final IUser user = ess.getUserMap().getUser((Player)event.getPlayer()); final IUser user = userMap.getUser((Player)event.getPlayer());
user.setInvSee(false); user.setInvSee(false);
} }
else if (event.getView().getTopInventory().getType() == InventoryType.WORKBENCH) else if (event.getView().getTopInventory().getType() == InventoryType.WORKBENCH)
{ {
final IUser user = ess.getUserMap().getUser((Player)event.getPlayer()); final IUser user = userMap.getUser((Player)event.getPlayer());
if (user.isRecipeSee()) if (user.isRecipeSee())
{ {
user.setRecipeSee(false); user.setRecipeSee(false);
@@ -527,7 +611,7 @@ public class EssentialsPlayerListener implements Listener
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onPlayerFishEvent(final PlayerFishEvent event) public void onPlayerFishEvent(final PlayerFishEvent event)
{ {
final IUser user = ess.getUserMap().getUser((Player)event.getPlayer()); final IUser user = userMap.getUser((Player)event.getPlayer());
user.updateActivity(true); user.updateActivity(true);
} }
} }

View File

@@ -69,7 +69,7 @@ public class EssentialsPluginListener implements Listener, IReload
if (storage == General.GroupStorage.GROUPMANAGER) if (storage == General.GroupStorage.GROUPMANAGER)
{ {
Plugin groupManager = ess.getServer().getPluginManager().getPlugin("GroupManager"); final Plugin groupManager = ess.getServer().getPluginManager().getPlugin("GroupManager");
if (groupManager != null && groupManager.isEnabled() && !(ess.getRanks() instanceof GMGroups)) if (groupManager != null && groupManager.isEnabled() && !(ess.getRanks() instanceof GMGroups))
{ {
if (ess.getRanks() instanceof RanksStorage) if (ess.getRanks() instanceof RanksStorage)
@@ -82,7 +82,7 @@ public class EssentialsPluginListener implements Listener, IReload
} }
if (storage == General.GroupStorage.VAULT) if (storage == General.GroupStorage.VAULT)
{ {
Plugin vault = ess.getServer().getPluginManager().getPlugin("Vault"); final Plugin vault = ess.getServer().getPluginManager().getPlugin("Vault");
if (vault != null && vault.isEnabled() && !(ess.getRanks() instanceof VaultGroups)) if (vault != null && vault.isEnabled() && !(ess.getRanks() instanceof VaultGroups))
{ {
if (ess.getRanks() instanceof RanksStorage) if (ess.getRanks() instanceof RanksStorage)

View File

@@ -193,7 +193,7 @@ public class Metrics
} }
// Begin hitting the server with glorious data // Begin hitting the server with glorious data
taskId = plugin.getServer().getScheduler().scheduleAsyncRepeatingTask(plugin, new Runnable() taskId = plugin.getServer().getScheduler().runTaskTimerAsynchronously(plugin, new Runnable()
{ {
private boolean firstPost = true; private boolean firstPost = true;
@@ -226,7 +226,7 @@ public class Metrics
plugin.getLogger().log(Level.INFO, "[Metrics] " + e.getMessage()); plugin.getLogger().log(Level.INFO, "[Metrics] " + e.getMessage());
} }
} }
}, 0, PING_INTERVAL * 1200); }, 0, PING_INTERVAL * 1200).getTaskId();
} }
} }

View File

@@ -1,27 +1,27 @@
package net.ess3.metrics; package net.ess3.metrics;
import static net.ess3.I18n._;
import java.util.logging.Level; import java.util.logging.Level;
import net.ess3.api.IEssentials; import net.ess3.api.IEssentials;
import net.ess3.api.ISettings; import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import org.bukkit.Server;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import static net.ess3.I18n._;
public class MetricsListener implements Listener public class MetricsListener implements Listener
{ {
private final transient Server server;
private final transient IEssentials ess; private final transient IEssentials ess;
private final transient MetricsStarter starter; private final transient MetricsStarter starter;
public MetricsListener(final IEssentials parent, final MetricsStarter starter) public MetricsListener(final IEssentials parent, final MetricsStarter starter)
{ {
this.ess = parent; this.ess = parent;
this.server = parent.getServer();
this.starter = starter; this.starter = starter;
} }

View File

@@ -1,5 +1,9 @@
package net.ess3.settings; package net.ess3.settings;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import net.ess3.storage.Comment; import net.ess3.storage.Comment;
@@ -14,4 +18,43 @@ public class Backup implements StorageObject
private long interval = 60; private long interval = 60;
@Comment("Add a command that backups your data, e.g. 'rdiff-backup World1 backups/World1'") @Comment("Add a command that backups your data, e.g. 'rdiff-backup World1 backups/World1'")
private String command; private String command;
@Comment(
{
"Runs these commands before a backup.",
"This will run every time time (in minutes) you specify in the interval setting.",
"ex: say \"Hello World\" will make the server say Hello World"
})
private List<String> commandsBeforeBackup;
@Comment(
{
"Runs these commands after a backup.",
"This will run every time time (in minutes) you specify in the interval setting.",
"ex: say \"Hello World\" will make the server say Hello World"
})
private List<String> commandsAfterBackup;
public Backup()
{
commandsBeforeBackup = new ArrayList<String>();
commandsBeforeBackup.add("save-all");
commandsBeforeBackup.add("save-off");
commandsAfterBackup = new ArrayList<String>();
commandsAfterBackup.add("save-on");
}
public List<String> getCommandsBeforeBackup()
{
return commandsBeforeBackup == null
? Collections.<String>emptyList()
: Collections.unmodifiableList(commandsBeforeBackup);
}
public List<String> getCommandsAfterBackup()
{
return commandsAfterBackup == null
? Collections.<String>emptyList()
: Collections.unmodifiableList(commandsAfterBackup);
}
} }

View File

@@ -35,17 +35,27 @@ public class SpawnsHolder extends AsyncStorageObjectHolder<Spawns> implements IE
registerListeners(); registerListeners();
} }
/**
* Sets a spawn location
* @param loc - Location you want to set as spawn
* @param group - Group to save it undr in the config
*/
public void setSpawn(final Location loc, final String group) public void setSpawn(final Location loc, final String group)
{ {
getData().addSpawn(group, loc); getData().addSpawn(group, loc);
queueSave(); queueSave();
if ("default".equalsIgnoreCase(group)) if (group.equalsIgnoreCase("default"))
{ {
loc.getWorld().setSpawnLocation(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()); loc.getWorld().setSpawnLocation(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
} }
} }
/**
* Get the spawn for a group from the config
* @param group - Group name
* @return
*/
public Location getSpawn(final String group) public Location getSpawn(final String group)
{ {
if (getData().getSpawns() == null || group == null) if (getData().getSpawns() == null || group == null)
@@ -72,6 +82,10 @@ public class SpawnsHolder extends AsyncStorageObjectHolder<Spawns> implements IE
} }
} }
/**
* Gets the World spawn location
* @return
*/
private Location getWorldSpawn() private Location getWorldSpawn()
{ {
for (World world : ess.getServer().getWorlds()) for (World world : ess.getServer().getWorlds())
@@ -85,6 +99,10 @@ public class SpawnsHolder extends AsyncStorageObjectHolder<Spawns> implements IE
return ess.getServer().getWorlds().get(0).getSpawnLocation(); return ess.getServer().getWorlds().get(0).getSpawnLocation();
} }
/**
* Get re-spawn listen priority
* @return
*/
public EventPriority getRespawnPriority() public EventPriority getRespawnPriority()
{ {
for (EventPriority priority : EventPriority.values()) for (EventPriority priority : EventPriority.values())
@@ -97,6 +115,10 @@ public class SpawnsHolder extends AsyncStorageObjectHolder<Spawns> implements IE
return EventPriority.NORMAL; return EventPriority.NORMAL;
} }
/**
* Get the newbie spawn from the config
* @return
*/
public Location getNewbieSpawn() public Location getNewbieSpawn()
{ {
if (getData().getNewbieSpawn() == null || getData().getNewbieSpawn().isEmpty() if (getData().getNewbieSpawn() == null || getData().getNewbieSpawn().isEmpty()
@@ -140,7 +162,7 @@ public class SpawnsHolder extends AsyncStorageObjectHolder<Spawns> implements IE
} }
private class SpawnPlayerListener implements Listener private class SpawnPlayerListener implements Listener // TODO: What is this for?
{ {
private final transient IEssentials ess; private final transient IEssentials ess;
private final transient SpawnsHolder spawns; private final transient SpawnsHolder spawns;

View File

@@ -37,11 +37,21 @@ public class WorldOptions implements StorageObject
@Setter(AccessLevel.NONE) @Setter(AccessLevel.NONE)
private Map<EntityType, Boolean> creatureSpawn = new EnumMap<EntityType, Boolean>(EntityType.class); private Map<EntityType, Boolean> creatureSpawn = new EnumMap<EntityType, Boolean>(EntityType.class);
/**
* Checks if a entity can be spawned.
* @param creatureName - Name of the {@link EntityType}
* @return
*/
public boolean getPreventSpawn(String creatureName) public boolean getPreventSpawn(String creatureName)
{ {
return getPreventSpawn(EntityType.fromName(creatureName)); return getPreventSpawn(EntityType.fromName(creatureName));
} }
/**
* Checks if an {@link EntityType} is allowed to be spawned
* @param creature - {@link EntityType} to check
* @return
*/
public boolean getPreventSpawn(EntityType creature) public boolean getPreventSpawn(EntityType creature)
{ {
if (creatureSpawn == null) if (creatureSpawn == null)

View File

@@ -12,7 +12,7 @@ import org.bukkit.Bukkit;
public abstract class AbstractDelayedYamlFileWriter implements Runnable public abstract class AbstractDelayedYamlFileWriter implements Runnable
{ {
private final transient IEssentials ess; private final transient IEssentials ess;
private final transient ReentrantLock lock = new ReentrantLock(); private final transient ReentrantLock lock = new ReentrantLock(); // TODO: Needed?
public AbstractDelayedYamlFileWriter(final IEssentials ess) public AbstractDelayedYamlFileWriter(final IEssentials ess)
{ {

View File

@@ -25,7 +25,7 @@ public class BukkitConstructor extends Constructor
private final transient Pattern WORD = Pattern.compile("\\W"); private final transient Pattern WORD = Pattern.compile("\\W");
private final transient IPlugin plugin; private final transient IPlugin plugin;
public BukkitConstructor(final Class clazz, final IPlugin plugin) public BukkitConstructor(final Class<?> clazz, final IPlugin plugin)
{ {
super(clazz); super(clazz);
this.plugin = plugin; this.plugin = plugin;

View File

@@ -3,6 +3,8 @@ package net.ess3.storage;
public class ObjectLoadException extends Exception public class ObjectLoadException extends Exception
{ {
private static final long serialVersionUID = 8263648967116854400L;
public ObjectLoadException(Throwable thrwbl) public ObjectLoadException(Throwable thrwbl)
{ {
super(thrwbl); super(thrwbl);

View File

@@ -31,6 +31,7 @@ public abstract class StorageObjectMap<I> extends CacheLoader<String, I> impleme
protected final transient Cache<String, I> cache = CacheBuilder.newBuilder().softValues().build(this); protected final transient Cache<String, I> cache = CacheBuilder.newBuilder().softValues().build(this);
protected final transient ConcurrentSkipListSet<String> keys = new ConcurrentSkipListSet<String>(); protected final transient ConcurrentSkipListSet<String> keys = new ConcurrentSkipListSet<String>();
protected final transient ConcurrentSkipListMap<String, File> zippedfiles = new ConcurrentSkipListMap<String, File>(); protected final transient ConcurrentSkipListMap<String, File> zippedfiles = new ConcurrentSkipListMap<String, File>();
private final Pattern zipCheck = Pattern.compile("^[a-zA-Z0-9]*-?[a-zA-Z0-9]+\\.yml$");
public StorageObjectMap(final IEssentials ess, final String folderName) public StorageObjectMap(final IEssentials ess, final String folderName)
{ {
@@ -90,25 +91,23 @@ public abstract class StorageObjectMap<I> extends CacheLoader<String, I> impleme
} }
} }
private final Pattern zipCheck = Pattern.compile("^[a-zA-Z0-9]*-?[a-zA-Z0-9]+\\.yml$");
private void addZipFile(File file) private void addZipFile(File file)
{ {
try try
{ {
ZipFile zipFile = new ZipFile(file); final ZipFile zipFile = new ZipFile(file);
try try
{ {
Enumeration<ZipArchiveEntry> entries = zipFile.getEntriesInPhysicalOrder(); final Enumeration<ZipArchiveEntry> entries = zipFile.getEntriesInPhysicalOrder();
while (entries.hasMoreElements()) while (entries.hasMoreElements())
{ {
ZipArchiveEntry entry = entries.nextElement(); final ZipArchiveEntry entry = entries.nextElement();
String name = entry.getName(); final String name = entry.getName();
if (entry.isDirectory() || entry.getSize() == 0 || !zipCheck.matcher(name).matches()) if (entry.isDirectory() || entry.getSize() == 0 || !zipCheck.matcher(name).matches())
{ {
continue; continue;
} }
String shortName = name.substring(0, name.length() - 4); final String shortName = name.substring(0, name.length() - 4);
addFileToKeys(shortName); addFileToKeys(shortName);
zippedfiles.put(name, file); zippedfiles.put(name, file);
} }

View File

@@ -28,7 +28,7 @@ public class StorageQueue implements Runnable
{ {
synchronized (lock) synchronized (lock)
{ {
List<WriteRequest> requests = new ArrayList<WriteRequest>(); final List<WriteRequest> requests = new ArrayList<WriteRequest>();
while (enabled.get() || !queue.isEmpty()) while (enabled.get() || !queue.isEmpty())
{ {
try try
@@ -36,13 +36,13 @@ public class StorageQueue implements Runnable
queue.drainTo(requests); queue.drainTo(requests);
for (WriteRequest request : requests) for (WriteRequest request : requests)
{ {
RequestState state = request.getRequestState(); final RequestState state = request.getRequestState();
if (state == RequestState.REQUEUE) if (state == RequestState.REQUEUE)
{ {
queue.add(request); queue.add(request);
continue; continue;
} }
if (state == RequestState.SCHEDULE) else if (state == RequestState.SCHEDULE)
{ {
plugin.scheduleAsyncDelayedTask(request.getRunnable()); plugin.scheduleAsyncDelayedTask(request.getRunnable());
} }

View File

@@ -91,6 +91,8 @@ public class StoredLocation
public static class WorldNotLoadedException extends Exception public static class WorldNotLoadedException extends Exception
{ {
private static final long serialVersionUID = -2079102649647074279L;
public WorldNotLoadedException(String worldname) public WorldNotLoadedException(String worldname)
{ {
super("World " + worldname + " is not loaded."); super("World " + worldname + " is not loaded.");

View File

@@ -13,8 +13,8 @@ import org.yaml.snakeyaml.introspector.BeanAccess;
public class YamlStorageReader implements IStorageReader public class YamlStorageReader implements IStorageReader
{ {
private transient static final Map<Class, Yaml> PREPARED_YAMLS = Collections.synchronizedMap(new HashMap<Class, Yaml>()); private transient static final Map<Class<?>, Yaml> PREPARED_YAMLS = Collections.synchronizedMap(new HashMap<Class<?>, Yaml>());
private transient static final Map<Class, ReentrantLock> LOCKS = new HashMap<Class, ReentrantLock>(); private transient static final Map<Class<?>, ReentrantLock> LOCKS = new HashMap<Class<?>, ReentrantLock>();
private transient final Reader reader; private transient final Reader reader;
private transient final IPlugin plugin; private transient final IPlugin plugin;

View File

@@ -4,6 +4,8 @@ package net.ess3.user;
public class CooldownException extends Exception public class CooldownException extends Exception
{ {
private static final long serialVersionUID = 913632836257457319L;
public CooldownException(String timeLeft) public CooldownException(String timeLeft)
{ {
super(timeLeft); super(timeLeft);

View File

@@ -4,6 +4,8 @@ import static net.ess3.I18n._;
public class PlayerNotFoundException extends Exception { public class PlayerNotFoundException extends Exception {
private static final long serialVersionUID = -510752839980332640L;
public PlayerNotFoundException() public PlayerNotFoundException()
{ {
super(_("playerNotFound")); super(_("playerNotFound"));

View File

@@ -8,6 +8,7 @@ import net.ess3.api.IUser;
public class TooManyMatchesException extends Exception public class TooManyMatchesException extends Exception
{ {
private static final long serialVersionUID = -1458262878150217201L;
private final Set<IUser> matches; private final Set<IUser> matches;
public TooManyMatchesException() public TooManyMatchesException()

View File

@@ -7,6 +7,7 @@ import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.api.InvalidNameException; import net.ess3.api.InvalidNameException;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import net.ess3.settings.Economy;
import net.ess3.storage.AsyncStorageObjectHolder; import net.ess3.storage.AsyncStorageObjectHolder;
import net.ess3.storage.IStorageObjectHolder; import net.ess3.storage.IStorageObjectHolder;
import net.ess3.storage.StoredLocation.WorldNotLoadedException; import net.ess3.storage.StoredLocation.WorldNotLoadedException;
@@ -37,7 +38,7 @@ public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implem
@Override @Override
public void sendMessage(String string) public void sendMessage(String string)
{ {
Player player = offlinePlayer.getPlayer(); final Player player = offlinePlayer.getPlayer();
if (player != null) if (player != null)
{ {
player.sendMessage(string); player.sendMessage(string);
@@ -47,7 +48,7 @@ public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implem
@Override @Override
public void sendMessage(String[] strings) public void sendMessage(String[] strings)
{ {
Player player = offlinePlayer.getPlayer(); final Player player = offlinePlayer.getPlayer();
if (player != null) if (player != null)
{ {
player.sendMessage(strings); player.sendMessage(strings);
@@ -63,7 +64,7 @@ public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implem
@Override @Override
public boolean isPermissionSet(String string) public boolean isPermissionSet(String string)
{ {
Player player = offlinePlayer.getPlayer(); final Player player = offlinePlayer.getPlayer();
if (player != null) if (player != null)
{ {
return player.isPermissionSet(string); return player.isPermissionSet(string);
@@ -77,7 +78,7 @@ public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implem
@Override @Override
public boolean isPermissionSet(Permission prmsn) public boolean isPermissionSet(Permission prmsn)
{ {
Player player = offlinePlayer.getPlayer(); final Player player = offlinePlayer.getPlayer();
if (player != null) if (player != null)
{ {
return player.isPermissionSet(prmsn); return player.isPermissionSet(prmsn);
@@ -91,7 +92,7 @@ public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implem
@Override @Override
public boolean hasPermission(String string) public boolean hasPermission(String string)
{ {
Player player = offlinePlayer.getPlayer(); final Player player = offlinePlayer.getPlayer();
if (player != null) if (player != null)
{ {
return player.hasPermission(string); return player.hasPermission(string);
@@ -105,7 +106,7 @@ public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implem
@Override @Override
public boolean hasPermission(Permission prmsn) public boolean hasPermission(Permission prmsn)
{ {
Player player = offlinePlayer.getPlayer(); final Player player = offlinePlayer.getPlayer();
if (player != null) if (player != null)
{ {
return player.hasPermission(prmsn); return player.hasPermission(prmsn);
@@ -174,13 +175,15 @@ public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implem
final ISettings settings = ess.getSettings(); final ISettings settings = ess.getSettings();
if (Math.abs(value) > settings.getData().getEconomy().getMaxMoney()) final UserData data = getData();
final double maxMoney = settings.getData().getEconomy().getMaxMoney();
if (Math.abs(value) > maxMoney)
{ {
getData().setMoney(value < 0 ? -settings.getData().getEconomy().getMaxMoney() : settings.getData().getEconomy().getMaxMoney()); data.setMoney(value < 0 ? -maxMoney : maxMoney);
} }
else else
{ {
getData().setMoney(value); data.setMoney(value);
} }
queueSave(); queueSave();
} }
@@ -230,7 +233,7 @@ public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implem
public boolean toggleTeleportEnabled() public boolean toggleTeleportEnabled()
{ {
boolean ret = !getData().isTeleportEnabled(); final boolean ret = !getData().isTeleportEnabled();
getData().setTeleportEnabled(ret); getData().setTeleportEnabled(ret);
queueSave(); queueSave();
return ret; return ret;
@@ -309,7 +312,7 @@ public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implem
for (Location location : worldHomes) for (Location location : worldHomes)
{ {
final double d = loc.distanceSquared(location); final double d = loc.distanceSquared(location);
if (d < distance) if (d < distance) // Shouldnt this just use Double.isInfinite(v); rather than create a new Double of maxval?
{ {
target = location; target = location;
distance = d; distance = d;

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