1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-09-28 07:09:14 +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.");
}
private class JailBlockListener implements Listener
{
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onBlockBreak(final BlockBreakEvent event)
{

View File

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

View File

@@ -16,6 +16,7 @@ import java.util.regex.Pattern;
import org.bukkit.DyeColor;
import org.bukkit.Location;
import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.command.CommandSender;
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
{
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;
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);
}
if (mobData != null)

View File

@@ -2,7 +2,6 @@ package net.ess3;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.logging.Logger;
import static net.ess3.I18n._;
import net.ess3.api.IEssentials;
import net.ess3.api.ITeleport;
@@ -38,7 +37,6 @@ public class Teleport implements Runnable, ITeleport
private Target teleportTarget;
private Trade chargeFor;
private final IEssentials ess;
private static final Logger logger = Logger.getLogger("Minecraft");
private 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
long now = System.currentTimeMillis();
final long now = System.currentTimeMillis();
if (now > started + tpDelay)
{
try
@@ -185,7 +183,7 @@ public class Teleport implements Runnable, ITeleport
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)
{
@@ -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
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);
@@ -286,7 +284,7 @@ public class Teleport implements Runnable, ITeleport
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.MILLISECOND, (int)((delay * 1000.0) % 1000.0));
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>();
for (String key : getAllKeys())
{
IWarp warp = getObject(key);
final IWarp warp = getObject(key);
if (warp == null)
{
continue;
@@ -46,7 +46,7 @@ public class Warps extends StorageObjectMap<IWarp> implements IWarps
@Override
public Location getWarp(final String name) throws Exception
{
IWarp warp = getObject(name);
final IWarp warp = getObject(name);
if (warp == null)
{
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;

View File

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

View File

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

View File

@@ -8,6 +8,11 @@ public interface IPermission
{
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);
String getParentPermission();

View File

@@ -4,37 +4,124 @@ import java.io.File;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import org.bukkit.scheduler.BukkitTask;
public interface IPlugin extends Plugin {
/**
* Get an instance of essentials
* @return
*/
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 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);
/**
* 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 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();
/**
*
* Stop a running task from a task id
*
* @param 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();
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);
/**
* Call a suicide event on a player
* @param player - Player to kill
*/
void callSuicideEvent(Player player);
/**
* Finds if an essentials module is loaded
* @param name
* @return
*/
public boolean isModuleEnabled(String name);
public void onPluginEnable(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
{
/**
* 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(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>
{
/**
* Get the ammount of money in a users account
* @return
*/
double getMoney();
/**
* Remove money from the account
* @param value
*/
void takeMoney(double value);
void takeMoney(double value, CommandSender initiator);

View File

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

View File

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

View File

@@ -7,15 +7,47 @@ import org.bukkit.Location;
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;
/**
* Gets a list of warps
* @return - A {@link Collection} of warps
*/
Collection<String> getList();
/**
* Delete a warp from the warp DB
* @param name - Name of warp
* @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;
/**
* Check to see if the file is empty
*
* @return
*/
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;
}

View File

@@ -5,7 +5,17 @@ import org.bukkit.inventory.ItemStack;
public interface IWorth extends IReload
{
/**
* Get the price of an ItemStack
* @param itemStack - ItemStack to check
* @return - double marking price
*/
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);
}

View File

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

View File

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

View File

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

View File

@@ -54,18 +54,29 @@ public class Backup implements Runnable, IBackup
{
return;
}
final ISettings settings = ess.getSettings();
final String command = settings.getData().getGeneral().getBackup().getCommand();
if (command == null || command.isEmpty())
{
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"));
final CommandSender consoleSender = server.getConsoleSender();
server.dispatchCommand(consoleSender, "save-all");
server.dispatchCommand(consoleSender, "save-off");
ess.getPlugin().scheduleAsyncDelayedTask(new BackupRunner(command));
if (!backupSettings.getCommandsBeforeBackup().isEmpty())
{
final CommandSender consoleSender = server.getConsoleSender();
for (String command : backupSettings.getCommandsBeforeBackup()) {
server.dispatchCommand(consoleSender, command);
}
}
ess.getPlugin().scheduleAsyncDelayedTask(new BackupRunner(backupCommand));
}
@@ -83,28 +94,31 @@ public class Backup implements Runnable, IBackup
{
try
{
final ProcessBuilder childBuilder = new ProcessBuilder(command);
childBuilder.redirectErrorStream(true);
childBuilder.directory(ess.getPlugin().getRootFolder());
final Process child = childBuilder.start();
final BufferedReader reader = new BufferedReader(new InputStreamReader(child.getInputStream()));
try
if (!command.equalsIgnoreCase("NORUN"))
{
child.waitFor();
String line;
do
final ProcessBuilder childBuilder = new ProcessBuilder(command);
childBuilder.redirectErrorStream(true);
childBuilder.directory(ess.getPlugin().getRootFolder());
final Process child = childBuilder.start();
final BufferedReader reader = new BufferedReader(new InputStreamReader(child.getInputStream()));
try
{
line = reader.readLine();
if (line != null)
child.waitFor();
String line;
do
{
ess.getLogger().log(Level.INFO, line);
line = reader.readLine();
if (line != null)
{
ess.getLogger().log(Level.INFO, line);
}
}
while (line != null);
}
finally
{
reader.close();
}
while (line != null);
}
finally
{
reader.close();
}
}
catch (InterruptedException ex)

View File

@@ -30,6 +30,7 @@ import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.plugin.java.JavaPluginLoader;
import org.bukkit.scheduler.BukkitTask;
public class BukkitPlugin extends JavaPlugin implements IPlugin
@@ -100,7 +101,7 @@ public class BukkitPlugin extends JavaPlugin implements IPlugin
final MetricsStarter metricsStarter = new MetricsStarter(ess);
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)
{
@@ -131,9 +132,9 @@ public class BukkitPlugin extends JavaPlugin implements IPlugin
}
@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
@@ -143,9 +144,9 @@ public class BukkitPlugin extends JavaPlugin implements IPlugin
}
@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
@@ -161,9 +162,9 @@ public class BukkitPlugin extends JavaPlugin implements IPlugin
}
@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
@@ -177,7 +178,13 @@ public class BukkitPlugin extends JavaPlugin implements IPlugin
{
getServer().getScheduler().cancelTask(taskId);
}
@Override
public void cancelTask(BukkitTask taskId)
{
getServer().getScheduler().cancelTask(taskId.getTaskId());
}
@Override
public String getVersion()
{
@@ -185,7 +192,7 @@ public class BukkitPlugin extends JavaPlugin implements IPlugin
}
@Override
public Class getClassByName(final String name)
public Class<?> getClassByName(final String name)
{
final JavaPluginLoader jpl = (JavaPluginLoader)this.getPluginLoader();
return jpl.getClassByName(name);
@@ -229,6 +236,12 @@ public class BukkitPlugin extends JavaPlugin implements IPlugin
// Remove "Essentials" from name
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
public void onPluginDisable(final Plugin plugin)

View File

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

View File

@@ -12,7 +12,7 @@ public class Commandafk extends EssentialsCommand
{
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)
{
toggleAfk(afkUser);

View File

@@ -7,6 +7,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
import static net.ess3.I18n._;
import net.ess3.api.IUser;
import net.ess3.permissions.Permissions;
import net.ess3.user.UserData;
import net.ess3.utils.FormatUtil;
import net.ess3.utils.textreader.ArrayListInput;
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))
{
IUser user = getUser(sender);
final IUser user = getUser(sender);
user.getData().setBalancetopHide(!user.getData().isBalancetopHide());
user.queueSave();
sender.sendMessage(
@@ -48,11 +49,12 @@ public class Commandbalancetop extends EssentialsCommand
}
else if (args.length == 2 && Permissions.BALANCETOP_HIDE_OTHERS.isAuthorized(sender))
{
IUser user = ess.getUserMap().matchUser(args[1], true);
user.getData().setBalancetopHide(!user.getData().isBalancetopHide());
final IUser user = ess.getUserMap().matchUser(args[1], true);
final UserData userData = user.getData();
userData.setBalancetopHide(!userData.isBalancetopHide());
user.queueSave();
sender.sendMessage(
user.getData().isBalancetopHide()
userData.isBalancetopHide()
? user.getName() + _("userBaltopHidden")
: user.getName() + _("userBaltopShown"));
}
@@ -141,7 +143,7 @@ public class Commandbalancetop extends EssentialsCommand
if (!user.getData().isBalancetopHide())
{
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.permissions.Permissions;
import net.ess3.user.Ban;
import net.ess3.user.UserData;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@@ -37,18 +39,19 @@ public class Commandban extends EssentialsCommand
}
final String senderName = isUser(sender) ? getPlayer(sender).getDisplayName() : Console.NAME;
String banReason;
user.getData().setBan(new Ban());
final String banReason;
final UserData userData = user.getData();
userData.setBan(new Ban());
if (args.length > 1)
{
banReason = _("banFormat", getFinalArg(args, 1), senderName);
user.getData().getBan().setReason(banReason);
userData.getBan().setReason(banReason);
}
else
{
banReason = _("banFormat", _("defaultBanReason"), senderName);
user.getData().getBan().setReason("");
userData.getBan().setReason("");
}
user.setBanned(true);

View File

@@ -29,7 +29,7 @@ public class Commandbanip extends EssentialsCommand
{
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"));
}
}

View File

@@ -12,7 +12,7 @@ public class Commandbigtree extends EssentialsCommand
@Override
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"))
{
tree = TreeType.TALL_REDWOOD;

View File

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

View File

@@ -3,6 +3,7 @@ package net.ess3.commands;
import static net.ess3.I18n._;
import net.ess3.api.IUser;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandburn extends EssentialsCommand
@@ -17,8 +18,9 @@ public class Commandburn extends EssentialsCommand
for (IUser p : ess.getUserMap().matchUsersExcludingHidden(args[0], getPlayerOrNull(sender)))
{
p.getPlayer().setFireTicks(Integer.parseInt(args[1]) * 20);
sender.sendMessage(_("burnMsg", p.getPlayer().getDisplayName(), Integer.parseInt(args[1])));
final Player player = p.getPlayer();
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));
if (p != null)
{
p.getPlayer().getInventory().clear();
user.sendMessage(_("inventoryClearedOthers", p.getPlayer().getDisplayName()));
final Player player = p.getPlayer();
player.getInventory().clear();
user.sendMessage(_("inventoryClearedOthers", player.getDisplayName()));
}
else
{
@@ -58,7 +59,7 @@ public class Commandclearinventory extends EssentialsCommand
}
else
{
Player u = server.getPlayer(args[0]);
final Player u = server.getPlayer(args[0]);
if (u != null)
{
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
{
final int bearing = (int)(user.getPlayer().getLocation().getYaw() + 180 + 360) % 360;
String dir;
final String dir;
if (bearing < 23)
{
dir = "N";

View File

@@ -17,8 +17,8 @@ public class Commandeco extends EssentialsCommand
{
throw new NotEnoughArgumentsException();
}
EcoCommands cmd;
double amount;
final EcoCommands cmd;
final double amount;
try
{
cmd = EcoCommands.valueOf(args[0].toUpperCase(Locale.ENGLISH));
@@ -65,7 +65,7 @@ public class Commandeco extends EssentialsCommand
else if (args[1].contentEquals("*"))
{
boolean ecoResetAllOnline = false;
ISettings settings = ess.getSettings();
final ISettings settings = ess.getSettings();
for (Player onlinePlayer : server.getOnlinePlayers())
{
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.utils.Util;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
@@ -71,8 +72,9 @@ public class Commandenchant extends EssentialsCommand
stack.addEnchantment(enchantment, level);
}
}
user.getPlayer().getInventory().setItemInHand(stack);
user.getPlayer().updateInventory();
final Player player = user.getPlayer();
player.getInventory().setItemInHand(stack);
player.updateInventory();
final String enchantmentName = enchantment.getName().toLowerCase(Locale.ENGLISH);
if (level == 0)
{

View File

@@ -1,5 +1,7 @@
package net.ess3.commands;
import org.bukkit.entity.Player;
import net.ess3.api.IUser;
import net.ess3.permissions.Permissions;
@@ -9,16 +11,17 @@ public class Commandenderchest extends EssentialsCommand
@Override
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))
{
final IUser invUser = ess.getUserMap().matchUserExcludingHidden(args[0], user.getPlayer());
user.getPlayer().openInventory(invUser.getPlayer().getEnderChest());
final IUser invUser = ess.getUserMap().matchUserExcludingHidden(args[0], player);
player.openInventory(invUser.getPlayer().getEnderChest());
user.setEnderSee(true);
}
else
{
user.getPlayer().openInventory(user.getPlayer().getEnderChest());
player.openInventory(player.getEnderChest());
user.setEnderSee(false);
}

View File

@@ -7,7 +7,7 @@ import org.bukkit.command.CommandSender;
public class Commandessentials extends EssentialsCommand
{
private transient int taskid;
private transient int taskid; // TODO: Needed?
@Override
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 net.ess3.api.IUser;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandext extends EssentialsCommand
@@ -35,8 +36,9 @@ public class Commandext extends EssentialsCommand
{
for (IUser matchPlayer : ess.getUserMap().matchUsersExcludingHidden(name, getPlayerOrNull(sender)))
{
matchPlayer.getPlayer().setFireTicks(0);
sender.sendMessage(_("extinguishOthers", matchPlayer.getPlayer().getDisplayName()));
final Player player = matchPlayer.getPlayer();
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.permissions.Permissions;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandfeed extends EssentialsCommand
@@ -18,8 +19,9 @@ public class Commandfeed extends EssentialsCommand
}
else
{
user.getPlayer().setFoodLevel(20);
user.getPlayer().setSaturation(10);
final Player player = user.getPlayer();
player.setFoodLevel(20);
player.setSaturation(10);
user.sendMessage(_("feed"));
}
}
@@ -34,9 +36,10 @@ public class Commandfeed extends EssentialsCommand
}
for (IUser player : users)
{
player.getPlayer().setFoodLevel(20);
player.getPlayer().setSaturation(10);
sender.sendMessage(_("feedOther", player.getPlayer().getDisplayName()));
final Player realPlayer = player.getPlayer();
realPlayer.setFoodLevel(20);
realPlayer.setSaturation(10);
sender.sendMessage(_("feedOther", realPlayer.getDisplayName()));
}
}
}

View File

@@ -2,6 +2,7 @@ package net.ess3.commands;
import net.ess3.api.IUser;
import org.bukkit.entity.Fireball;
import org.bukkit.entity.Player;
import org.bukkit.entity.SmallFireball;
import org.bukkit.util.Vector;
@@ -16,8 +17,11 @@ public class Commandfireball extends EssentialsCommand
{
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);
fireball.setShooter(user.getPlayer());
final Player player = 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

@@ -56,4 +56,4 @@ public class Commandfly extends EssentialsToggleCommand
{
return false;
}
}
}

View File

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

View File

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

View File

@@ -3,7 +3,10 @@ package net.ess3.commands;
import net.ess3.api.IUser;
import net.ess3.permissions.Permissions;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import static net.ess3.I18n._;
@@ -13,18 +16,20 @@ public class Commandgetpos extends EssentialsCommand
@Override
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))
{
//todo permissions
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;
}
}
outputPosition(user, user.getPlayer().getLocation(), null);
outputPosition(user, mainPlayerLoc, null);
}
@Override
@@ -40,13 +45,14 @@ public class Commandgetpos extends EssentialsCommand
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(_("getposY", coords.getBlockY()));
sender.sendMessage(_("getposZ", coords.getBlockZ()));
sender.sendMessage(_("getposYaw", (coords.getYaw() + 540) % 360));
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)));
}

View File

@@ -6,7 +6,6 @@ import static net.ess3.I18n._;
import net.ess3.api.IUser;
import net.ess3.permissions.Permissions;
import net.ess3.utils.Util;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemStack;
@@ -54,7 +53,7 @@ public class Commandgive extends EssentialsCommand
continue;
}
final Enchantment enchantment = Commandenchant.getEnchantment(split[0], sender instanceof IUser ? (IUser)sender : null);
int level;
final int level;
if (split.length > 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.craftbukkit.InventoryWorkaround;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
@@ -32,12 +33,13 @@ public class Commandhat extends EssentialsCommand
}
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)
{
final PlayerInventory inv = user.getPlayer().getInventory();
final PlayerInventory inv = player.getInventory();
final ItemStack head = inv.getHelmet();
hand.setAmount(1);
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.user.UserData.TimestampType;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandheal extends EssentialsCommand
@@ -23,10 +24,11 @@ public class Commandheal extends EssentialsCommand
}
user.checkCooldown(TimestampType.LASTHEAL, ess.getRanks().getHealCooldown(user), true, Permissions.HEAL_COOLDOWN_BYPASS);
user.getPlayer().setHealth(20);
user.getPlayer().setFireTicks(0);
user.getPlayer().setFoodLevel(20);
final Player player = user.getPlayer();
player.setHealth(20);
player.setFireTicks(0);
player.setFoodLevel(20);
user.sendMessage(_("heal"));
}
@@ -50,11 +52,12 @@ public class Commandheal extends EssentialsCommand
return;
}
for (IUser p : users)
{
p.getPlayer().setHealth(20);
p.getPlayer().setFoodLevel(20);
p.getPlayer().sendMessage(_("heal"));
sender.sendMessage(_("healOther", p.getPlayer().getDisplayName()));
{
final Player player = p.getPlayer();
player.setHealth(20);
player.setFoodLevel(20);
player.sendMessage(_("heal"));
sender.sendMessage(_("healOther", player.getDisplayName()));
}
}
}

View File

@@ -106,4 +106,4 @@ public class Commandhome extends EssentialsCommand
}
user.getTeleport().home(loc, charge);
}
}
}

View File

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

View File

@@ -1,6 +1,8 @@
package net.ess3.commands;
import net.ess3.utils.Util;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
@@ -9,6 +11,6 @@ public class Commandjails extends EssentialsCommand
@Override
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.permissions.Permissions;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
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)))
{
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);
if (ede.isCancelled() && Permissions.KILL_FORCE.isAuthorized(sender))
{
continue;
}
matchPlayer.getPlayer().damage(Short.MAX_VALUE);
sender.sendMessage(_("kill", matchPlayer.getPlayer().getDisplayName()));
player.damage(Short.MAX_VALUE);
sender.sendMessage(_("kill", player.getDisplayName()));
}
}
}

View File

@@ -10,6 +10,7 @@ import org.bukkit.World;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.*;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.inventory.ItemStack;
public class Commandkillall extends EssentialsCommand
@@ -68,10 +69,10 @@ public class Commandkillall extends EssentialsCommand
{
radius *= radius;
}
String killType = type.toLowerCase(Locale.ENGLISH);
boolean animals = killType.startsWith("animal");
boolean monster = killType.startsWith("monster") || killType.startsWith("mob");
boolean all = killType.equals("all");
final String killType = type.toLowerCase(Locale.ENGLISH);
final boolean animals = killType.startsWith("animal");
final boolean monster = killType.startsWith("monster") || killType.startsWith("mob");
final boolean all = killType.equals("all");
Class<? extends Entity> entityClass = null;
if (!animals && !monster && !all)
{
@@ -82,7 +83,7 @@ public class Commandkillall extends EssentialsCommand
entityClass = LivingEntities.fromName(killType).getEntityClass();
}
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 (Entity entity : chunk.getEntities())
@@ -94,7 +95,7 @@ public class Commandkillall extends EssentialsCommand
continue;
}
}
if (entity instanceof LivingEntity == false || entity instanceof HumanEntity)
if (!(entity instanceof LivingEntity) || entity instanceof HumanEntity)
{
continue;
}
@@ -116,7 +117,7 @@ public class Commandkillall extends EssentialsCommand
{
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);
entity.remove();
numKills++;
@@ -126,7 +127,7 @@ public class Commandkillall extends EssentialsCommand
{
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);
entity.remove();
numKills++;
@@ -134,14 +135,14 @@ public class Commandkillall extends EssentialsCommand
}
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);
entity.remove();
numKills++;
}
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);
entity.remove();
numKills++;

View File

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

View File

@@ -49,14 +49,14 @@ public class Commandlist extends EssentialsCommand
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)
{
Map<String, List<IUser>> sort = new HashMap<String, List<IUser>>();
Set<String> hiddenPlayers = new HashSet<String>();
final Map<String, List<IUser>> sort = new HashMap<String, List<IUser>>();
final Set<String> hiddenPlayers = new HashSet<String>();
for (Player onlinePlayer : server.getOnlinePlayers())
{
if (userPlayer != null
@@ -115,7 +115,7 @@ public class Commandlist extends EssentialsCommand
else
{
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())
{
if (userPlayer != null

View File

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

View File

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

View File

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

View File

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

View File

@@ -16,7 +16,7 @@ public class Commandpay extends EssentialsCommand
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)) {
user.sendMessage(_("invalidAmount"));

View File

@@ -6,6 +6,7 @@ import java.util.Locale;
import static net.ess3.I18n._;
import net.ess3.api.IUser;
import net.ess3.permissions.Permissions;
import net.ess3.user.UserData;
import net.ess3.utils.Util;
import org.bukkit.Material;
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
{
String command = getFinalArg(args, 0);
UserData userData = user.getData();
// check to see if this is a clear all command
if (command != null && command.equalsIgnoreCase("d:"))
{
user.getData().clearAllPowertools();
userData.clearAllPowertools();
user.queueSave();
user.sendMessage(_("powerToolClearAll"));
return;
@@ -34,7 +35,7 @@ public class Commandpowertool extends EssentialsCommand
}
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.equalsIgnoreCase("l:"))
@@ -91,12 +92,12 @@ public class Commandpowertool extends EssentialsCommand
user.sendMessage(_("powerToolRemoveAll", itemName));
}
if (!user.getData().isPowerToolsEnabled())
if (!userData.isPowerToolsEnabled())
{
user.getData().setPowerToolsEnabled(true);
userData.setPowerToolsEnabled(true);
user.sendMessage(_("powerToolsEnabled"));
}
user.getData().setPowertool(itemStack.getType(), powertools);
userData.setPowertool(itemStack.getType(), powertools);
user.queueSave();
}
}

View File

@@ -2,6 +2,7 @@ package net.ess3.commands;
import static net.ess3.I18n._;
import net.ess3.api.IUser;
import net.ess3.user.UserData;
public class Commandpowertooltoggle extends EssentialsCommand
@@ -9,14 +10,15 @@ public class Commandpowertooltoggle extends EssentialsCommand
@Override
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"));
return;
}
user.getData().setPowerToolsEnabled(!user.getData().isPowerToolsEnabled());
userData.setPowerToolsEnabled(!userData.isPowerToolsEnabled());
user.queueSave();
user.sendMessage(user.getData().isPowerToolsEnabled()
user.sendMessage(userData.isPowerToolsEnabled()
? _("powerToolsEnabled")
: _("powerToolsDisabled"));
}

View File

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

View File

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

View File

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

View File

@@ -1,159 +1,157 @@
package net.ess3.commands;
import static net.ess3.I18n._;
import net.ess3.api.IUser;
import net.ess3.user.User;
import net.ess3.utils.Util;
import org.bukkit.Material;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.*;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
public class Commandrecipe extends EssentialsCommand
{
@Override
public void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
final ItemStack item = ess.getItemDb().get(args[0]);
final List<Recipe> recipes = ess.getServer().getRecipesFor(item);
if (recipes.size() < 1)
{
throw new Exception(_("recipeNone", getMaterialName(item)));
}
int recipeNo = 0;
if (args.length > 1)
{
if (Util.isInt(args[1]))
{
recipeNo = Integer.parseInt(args[1]) - 1;
}
else
{
throw new Exception(_("invalidNumber"));
}
}
if (recipeNo < 0 || recipeNo >= recipes.size())
{
throw new Exception(_("recipeBadIndex"));
}
final Recipe recipe = recipes.get(recipeNo);
sender.sendMessage(_("recipe", getMaterialName(item), recipeNo + 1, recipes.size()));
if (recipe instanceof FurnaceRecipe)
{
furnaceRecipe(sender, (FurnaceRecipe) recipe);
}
else if (recipe instanceof ShapedRecipe)
{
shapedRecipe(sender, (ShapedRecipe) recipe);
}
else if (recipe instanceof ShapelessRecipe)
{
shapelessRecipe(sender, (ShapelessRecipe) recipe);
}
if (recipes.size() > 1 && args.length == 1)
{
sender.sendMessage(_("recipeMore", commandLabel, args[0], getMaterialName(item)));
}
}
public void furnaceRecipe(CommandSender sender, FurnaceRecipe recipe)
{
sender.sendMessage(_("recipeFurnace", getMaterialName(recipe.getInput())));
}
public void shapedRecipe(CommandSender sender, ShapedRecipe recipe)
{
Map<Character, ItemStack> recipeMap = recipe.getIngredientMap();
if (sender instanceof IUser)
{
IUser user = getUser(sender);
user.setRecipeSee(true);
InventoryView view = user.getPlayer().openWorkbench(null, true);
for (Map.Entry<Character, ItemStack> e : recipe.getIngredientMap().entrySet())
{
view.setItem(" abcdefghi".indexOf(e.getKey()), e.getValue());
}
}
else
{
HashMap<ItemStack, String> colorMap = new HashMap<ItemStack, String>();
int i = 1;
for (Character c : "abcdefghi".toCharArray())
{
if (!colorMap.containsKey(recipeMap.get(c)))
{
colorMap.put(recipeMap.get(c), String.valueOf(i++));
}
}
sender.sendMessage(_("recipeGrid", colorMap.get(recipeMap.get('a')), colorMap.get(recipeMap.get('b')), colorMap.get(recipeMap.get('c'))));
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'))));
StringBuilder s = new StringBuilder();
for (ItemStack items : colorMap.keySet().toArray(new ItemStack[colorMap.size()]))
{
s.append(_("recipeGridItem", colorMap.get(items), getMaterialName(items)));
}
sender.sendMessage(_("recipeWhere", s.toString()));
}
}
public void shapelessRecipe(CommandSender sender, ShapelessRecipe recipe)
{
List<ItemStack> ingredients = recipe.getIngredientList();
if (sender instanceof IUser)
{
IUser user = getUser(sender);
user.setRecipeSee(true);
InventoryView view = user.getPlayer().openWorkbench(null, true);
for (int i = 0; i < ingredients.size(); i++)
{
view.setItem(i + 1, ingredients.get(i));
}
}
else
{
ess.getLogger().info(sender.getClass().getName());
StringBuilder s = new StringBuilder();
for (int i = 0; i < ingredients.size(); i++)
{
s.append(getMaterialName(ingredients.get(i)));
if (i != ingredients.size() - 1)
{
s.append(",");
}
s.append(" ");
}
sender.sendMessage(_("recipeShapeless", s.toString()));
}
}
public String getMaterialName(ItemStack stack)
{
if (stack == null)
{
return _("recipeNothing");
}
return getMaterialName(stack.getType());
}
public String getMaterialName(Material type)
{
if (type == null)
{
return _("recipeNothing");
}
return type.toString().replace("_", " ").toLowerCase(Locale.ENGLISH);
}
package net.ess3.commands;
import static net.ess3.I18n._;
import net.ess3.api.IUser;
import net.ess3.utils.Util;
import org.bukkit.Material;
import org.bukkit.command.CommandSender;
import org.bukkit.inventory.*;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
public class Commandrecipe extends EssentialsCommand
{
@Override
public void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
final ItemStack item = ess.getItemDb().get(args[0]);
final List<Recipe> recipes = ess.getServer().getRecipesFor(item);
if (recipes.size() < 1)
{
throw new Exception(_("recipeNone", getMaterialName(item)));
}
int recipeNo = 0;
if (args.length > 1)
{
if (Util.isInt(args[1]))
{
recipeNo = Integer.parseInt(args[1]) - 1;
}
else
{
throw new Exception(_("invalidNumber"));
}
}
if (recipeNo < 0 || recipeNo >= recipes.size())
{
throw new Exception(_("recipeBadIndex"));
}
final Recipe recipe = recipes.get(recipeNo);
sender.sendMessage(_("recipe", getMaterialName(item), recipeNo + 1, recipes.size()));
if (recipe instanceof FurnaceRecipe)
{
furnaceRecipe(sender, (FurnaceRecipe) recipe);
}
else if (recipe instanceof ShapedRecipe)
{
shapedRecipe(sender, (ShapedRecipe) recipe);
}
else if (recipe instanceof ShapelessRecipe)
{
shapelessRecipe(sender, (ShapelessRecipe) recipe);
}
if (recipes.size() > 1 && args.length == 1)
{
sender.sendMessage(_("recipeMore", commandLabel, args[0], getMaterialName(item)));
}
}
public void furnaceRecipe(CommandSender sender, FurnaceRecipe recipe)
{
sender.sendMessage(_("recipeFurnace", getMaterialName(recipe.getInput())));
}
public void shapedRecipe(CommandSender sender, ShapedRecipe recipe)
{
final Map<Character, ItemStack> recipeMap = recipe.getIngredientMap();
if (sender instanceof IUser)
{
final IUser user = getUser(sender);
user.setRecipeSee(true);
final InventoryView view = user.getPlayer().openWorkbench(null, true);
for (Map.Entry<Character, ItemStack> e : recipe.getIngredientMap().entrySet())
{
view.setItem(" abcdefghi".indexOf(e.getKey()), e.getValue());
}
}
else
{
final HashMap<ItemStack, String> colorMap = new HashMap<ItemStack, String>();
int i = 1;
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)))
{
colorMap.put(recipeMap.get(c), String.valueOf(i++));
}
}
sender.sendMessage(_("recipeGrid", colorMap.get(recipeMap.get('a')), colorMap.get(recipeMap.get('b')), colorMap.get(recipeMap.get('c'))));
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'))));
final StringBuilder s = new StringBuilder();
for (ItemStack items : colorMap.keySet().toArray(new ItemStack[colorMap.size()]))
{
s.append(_("recipeGridItem", colorMap.get(items), getMaterialName(items)));
}
sender.sendMessage(_("recipeWhere", s.toString()));
}
}
public void shapelessRecipe(CommandSender sender, ShapelessRecipe recipe)
{
final List<ItemStack> ingredients = recipe.getIngredientList();
if (sender instanceof IUser)
{
final IUser user = getUser(sender);
user.setRecipeSee(true);
final InventoryView view = user.getPlayer().openWorkbench(null, true);
for (int i = 0; i < ingredients.size(); i++)
{
view.setItem(i + 1, ingredients.get(i));
}
}
else
{
ess.getLogger().info(sender.getClass().getName());
final StringBuilder s = new StringBuilder();
for (int i = 0; i < ingredients.size(); i++)
{
s.append(getMaterialName(ingredients.get(i)));
if (i != ingredients.size() - 1)
{
s.append(",");
}
s.append(" ");
}
sender.sendMessage(_("recipeShapeless", s.toString()));
}
}
public String getMaterialName(ItemStack stack)
{
if (stack == null)
{
return _("recipeNothing");
}
return getMaterialName(stack.getType());
}
public String getMaterialName(Material type)
{
if (type == null)
{
return _("recipeNothing");
}
return type.toString().replace("_", " ").toLowerCase(Locale.ENGLISH);
}
}

View File

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

View File

@@ -30,12 +30,12 @@ public class Commandseen extends EssentialsCommand
}
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))));
}
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))));
if (u.isBanned())
{

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,9 @@
package net.ess3.commands;
import static net.ess3.I18n._;
import org.bukkit.entity.Player;
import net.ess3.api.IUser;
@@ -9,9 +12,10 @@ public class Commandsuicide extends EssentialsCommand
@Override
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
{
ess.getPlugin().callSuicideEvent(user.getPlayer());
user.getPlayer().damage(Short.MAX_VALUE);
final Player player = user.getPlayer();
ess.getPlugin().callSuicideEvent(player);
user.getPlayer().damage(player.getHealth());
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.permissions.Permissions;
import net.ess3.user.Ban;
import net.ess3.user.UserData;
import net.ess3.utils.DateUtil;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@@ -40,9 +41,11 @@ public class Commandtempban extends EssentialsCommand
final long banTimestamp = DateUtil.parseDateDiff(time, true);
final String banReason = _("tempBanned", DateUtil.formatDateDiff(banTimestamp));
user.getData().setBan(new Ban());
user.getData().getBan().setReason(banReason);
user.getData().getBan().setTimeout(banTimestamp);
UserData userData = user.getData();
userData.setBan(new Ban());
Ban ban = userData.getBan();
ban.setReason(banReason);
ban.setTimeout(banTimestamp);
user.setBanned(true);
user.queueSave();
user.getPlayer().kickPlayer(banReason);

View File

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

View File

@@ -4,6 +4,7 @@ import static net.ess3.I18n._;
import net.ess3.api.IUser;
import net.ess3.economy.Trade;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -12,10 +13,12 @@ public class Commandtop extends EssentialsCommand
@Override
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
{
final int topX = user.getPlayer().getLocation().getBlockX();
final int topZ = user.getPlayer().getLocation().getBlockZ();
final int topY = user.getPlayer().getWorld().getHighestBlockYAt(topX, topZ);
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 Player player = user.getPlayer();
final Location playerLocation = user.getPlayer().getLocation();
final int topX = playerLocation.getBlockX();
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"));
}
}

View File

@@ -36,7 +36,7 @@ public class Commandwhois extends EssentialsCommand
}
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();
boolean foundPlayer = false;
for (Player onlinePlayer : server.getOnlinePlayers())
@@ -47,38 +47,40 @@ public class Commandwhois extends EssentialsCommand
{
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)
&& !whois.substring(prefixLength).equalsIgnoreCase(nickName)
&& !whois.equalsIgnoreCase(user.getName()))
{
continue;
}
final Player player = user.getPlayer();
foundPlayer = true;
sender.sendMessage(_("whoisTop", user.getName()));
sender.sendMessage(_("whoisIs", user.getPlayer().getDisplayName(), user.getName()));
sender.sendMessage(_("whoisHealth", user.getPlayer().getHealth()));
sender.sendMessage(_("whoisExp", SetExpFix.getTotalExperience(user.getPlayer()), user.getPlayer().getLevel()));
sender.sendMessage(_("whoisLocation", user.getPlayer().getLocation().getWorld().getName(), user.getPlayer().getLocation().getBlockX(), user.getPlayer().getLocation().getBlockY(), user.getPlayer().getLocation().getBlockZ()));
sender.sendMessage(_("whoisIs", player.getDisplayName(), user.getName()));
sender.sendMessage(_("whoisHealth", player.getHealth()));
sender.sendMessage(_("whoisExp", SetExpFix.getTotalExperience(player), player.getLevel()));
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(_("whoisIPAddress", user.getPlayer().getAddress().getAddress().toString()));
final String location = user.getData().getGeolocation();
sender.sendMessage(_("whoisIPAddress", player.getAddress().getAddress().toString()));
final String location = userData.getGeolocation();
if (location != null
&& Permissions.GEOIP_SHOW.isAuthorized(sender))
{
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(_("whoisOP", (user.isOp() ? _("true") : _("false"))));
sender.sendMessage(_("whoisFly", user.getPlayer().getAllowFlight() ? _("true") : _("false"), user.getPlayer().isFlying() ? _("flying") : _("notFlying")));
sender.sendMessage(_("whoisAFK", (user.getData().isAfk() ? _("true") : _("false"))));
sender.sendMessage(_("whoisJail", (user.getData().isJailed()
sender.sendMessage(_("whoisFly", player.getAllowFlight() ? _("true") : _("false"), player.isFlying() ? _("flying") : _("notFlying")));
sender.sendMessage(_("whoisAFK", (userData.isAfk() ? _("true") : _("false"))));
sender.sendMessage(_("whoisJail", (userData.isJailed()
? user.getTimestamp(UserData.TimestampType.JAIL) > 0
? DateUtil.formatDateDiff(user.getTimestamp(UserData.TimestampType.JAIL))
: _("true")
: _("false"))));
sender.sendMessage(_("whoisMute", (user.getData().isMuted()
sender.sendMessage(_("whoisMute", (userData.isMuted()
? user.getTimestamp(UserData.TimestampType.MUTE) > 0
? DateUtil.formatDateDiff(user.getTimestamp(UserData.TimestampType.MUTE))
: _("true")

View File

@@ -7,6 +7,7 @@ import net.ess3.economy.Trade;
import net.ess3.permissions.Permissions;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -56,21 +57,22 @@ public class Commandworld extends EssentialsCommand
throw new NoChargeException();
}
double factor;
if (user.getPlayer().getWorld().getEnvironment() == World.Environment.NETHER && world.getEnvironment() == World.Environment.NORMAL)
final double factor;
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
{
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 Trade charge = new Trade(commandName, ess);

View File

@@ -5,6 +5,7 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import static net.ess3.I18n._;
import net.ess3.api.*;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
@@ -20,7 +21,7 @@ public class EssentialsCommandHandler implements ICommandHandler, TabExecutor
{
private final transient ClassLoader classLoader;
private final transient String commandPath;
private final transient String permissionPrefix;
private final transient String permissionPrefix;// TODO: Needed?
private final transient IEssentialsModule module;
private static final transient Logger LOGGER = Bukkit.getLogger();
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;
}
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);
if (cmd == null)
{

View File

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

View File

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

View File

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

View File

@@ -240,4 +240,8 @@ public class FakeInventory implements Inventory
{
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()
&& 0 < (money = getCommandCost(user))
&& 0 < getCommandCost(user)
&& !Permissions.ECO_LOAN.isAuthorized(user))
{
throw new ChargeException(_("notEnoughMoney"));
@@ -240,7 +237,7 @@ public class Trade
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(DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL).format(new Date()));
sb.append("\",\"");
@@ -288,9 +285,10 @@ public class Trade
{
if (pay.getItemStack() != null)
{
sb.append(pay.getItemStack().getAmount()).append(",");
sb.append(pay.getItemStack().getType().toString()).append(",");
sb.append(pay.getItemStack().getDurability());
ItemStack is = pay.getItemStack();
sb.append(is.getAmount()).append(",");
sb.append(is.getType().toString()).append(",");
sb.append(is.getDurability());
}
if (pay.getMoney() != null)
{

View File

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

View File

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

View File

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

View File

@@ -1,7 +1,6 @@
package net.ess3.listener;
import java.io.IOException;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
@@ -12,16 +11,13 @@ import static net.ess3.I18n._;
import net.ess3.api.IEssentials;
import net.ess3.api.ISettings;
import net.ess3.api.IUser;
import net.ess3.api.IUserMap;
import net.ess3.permissions.Permissions;
import net.ess3.settings.Commands;
import net.ess3.user.UserData.TimestampType;
import net.ess3.utils.FormatUtil;
import net.ess3.utils.LocationUtil;
import net.ess3.utils.textreader.IText;
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 net.ess3.utils.textreader.*;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Server;
@@ -29,9 +25,7 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.inventory.*;
import org.bukkit.event.player.*;
import org.bukkit.event.player.PlayerLoginEvent.Result;
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 final transient Server server;
private final transient IEssentials ess;
private final transient IUserMap userMap;
public EssentialsPlayerListener(final IEssentials parent)
{
super();
this.ess = parent;
userMap = ess.getUserMap();
this.server = parent.getServer();
}
@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerRespawn(final PlayerRespawnEvent event)
{
final IUser user = ess.getUserMap().getUser(event.getPlayer());
final IUser user = userMap.getUser(event.getPlayer());
user.updateCompass();
user.updateDisplayName();
}
@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())
{
event.setCancelled(true);
@@ -73,20 +69,20 @@ public class EssentialsPlayerListener implements Listener
final Iterator<Player> it = event.getRecipients().iterator();
while (it.hasNext())
{
final IUser player = ess.getUserMap().getUser(it.next());
if (player.isIgnoringPlayer(user))
final IUser u = userMap.getUser(it.next());
if (u.getData().getIgnore().contains(user.getName()))
{
it.remove();
}
}
user.updateActivity(true);
user.updateDisplayName();
user.setDisplayNick();
}
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
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();
@@ -121,7 +117,7 @@ public class EssentialsPlayerListener implements Listener
final String quitMessage = ess.getSettings().getData().getGeneral().getLeaveMessage();
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);
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();
if (settings.getData().getCommands().getGod().isRemoveOnDisconnect() && user.isGodModeEnabled())
@@ -160,6 +156,15 @@ public class EssentialsPlayerListener implements Listener
@EventHandler(priority = EventPriority.MONITOR)
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())
{
return;
@@ -235,9 +240,89 @@ public class EssentialsPlayerListener implements Listener
{
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)
public void onPlayerLogin(final PlayerLoginEvent event)
{
@@ -251,9 +336,9 @@ public class EssentialsPlayerListener implements Listener
return;
}
ess.getUserMap().addPrejoinedPlayer(event.getPlayer());
final IUser user = ess.getUserMap().getUser(event.getPlayer());
ess.getUserMap().removePrejoinedPlayer(event.getPlayer());
userMap.addPrejoinedPlayer(event.getPlayer());
final IUser user = userMap.getUser(event.getPlayer());
userMap.removePrejoinedPlayer(event.getPlayer());
user.getData().setNpc(false);
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.
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();
}
@@ -298,7 +383,7 @@ public class EssentialsPlayerListener implements Listener
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);
if (user.getData().hasUnlimited(hand.getType()))
{
@@ -311,7 +396,7 @@ public class EssentialsPlayerListener implements Listener
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()))
{
event.getItemStack().setType(event.getBucket());
@@ -330,13 +415,13 @@ public class EssentialsPlayerListener implements Listener
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
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);
if (ess.getSettings().getData().getCommands().getSocialspy().getSocialspyCommands().contains(cmd))
{
for (Player player : ess.getServer().getOnlinePlayers())
{
IUser spyer = ess.getUserMap().getUser(player);
IUser spyer = userMap.getUser(player);
if (spyer.getData().isSocialspy() && !user.equals(spyer))
{
player.sendMessage(user.getPlayer().getDisplayName() + " : " + event.getMessage());
@@ -354,7 +439,7 @@ public class EssentialsPlayerListener implements Listener
{
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())
{
user.updateDisplayName();
@@ -385,7 +470,7 @@ public class EssentialsPlayerListener implements Listener
@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerInteract(final PlayerInteractEvent event)
{
final IUser user = ess.getUserMap().getUser(event.getPlayer());
final IUser user = userMap.getUser(event.getPlayer());
user.updateActivity(true);
switch (event.getAction())
{
@@ -419,8 +504,7 @@ public class EssentialsPlayerListener implements Listener
private boolean usePowertools(final IUser user)
{
final ItemStack is = user.getPlayer().getItemInHand();
int id;
if (is == null || (id = is.getTypeId()) == 0)
if (is == null || is.getTypeId() == 0)
{
return false;
}
@@ -470,7 +554,7 @@ public class EssentialsPlayerListener implements Listener
return;
}
final IUser user = ess.getUserMap().getUser(event.getPlayer());
final IUser user = userMap.getUser(event.getPlayer());
if (user.getData().isAfk())
{
event.setCancelled(true);
@@ -482,11 +566,11 @@ public class EssentialsPlayerListener implements Listener
{
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();
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)
|| Permissions.INVSEE_PREVENT_MODIFY.isAuthorized(invOwner)
|| !invOwner.isOnline()))
@@ -497,7 +581,7 @@ public class EssentialsPlayerListener implements Listener
}
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())
{
event.setCancelled(true);
@@ -510,12 +594,12 @@ public class EssentialsPlayerListener implements Listener
{
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);
}
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())
{
user.setRecipeSee(false);
@@ -527,7 +611,7 @@ public class EssentialsPlayerListener implements Listener
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
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);
}
}

View File

@@ -69,7 +69,7 @@ public class EssentialsPluginListener implements Listener, IReload
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 (ess.getRanks() instanceof RanksStorage)
@@ -82,7 +82,7 @@ public class EssentialsPluginListener implements Listener, IReload
}
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 (ess.getRanks() instanceof RanksStorage)

View File

@@ -193,7 +193,7 @@ public class Metrics
}
// 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;
@@ -226,7 +226,7 @@ public class Metrics
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;
import static net.ess3.I18n._;
import java.util.logging.Level;
import net.ess3.api.IEssentials;
import net.ess3.api.ISettings;
import net.ess3.api.IUser;
import net.ess3.permissions.Permissions;
import org.bukkit.Server;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import static net.ess3.I18n._;
public class MetricsListener implements Listener
{
private final transient Server server;
private final transient IEssentials ess;
private final transient MetricsStarter starter;
public MetricsListener(final IEssentials parent, final MetricsStarter starter)
{
this.ess = parent;
this.server = parent.getServer();
this.starter = starter;
}

View File

@@ -1,5 +1,9 @@
package net.ess3.settings;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import lombok.Data;
import lombok.EqualsAndHashCode;
import net.ess3.storage.Comment;
@@ -14,4 +18,43 @@ public class Backup implements StorageObject
private long interval = 60;
@Comment("Add a command that backups your data, e.g. 'rdiff-backup World1 backups/World1'")
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();
}
/**
* 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)
{
getData().addSpawn(group, loc);
queueSave();
if ("default".equalsIgnoreCase(group))
if (group.equalsIgnoreCase("default"))
{
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)
{
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()
{
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();
}
/**
* Get re-spawn listen priority
* @return
*/
public EventPriority getRespawnPriority()
{
for (EventPriority priority : EventPriority.values())
@@ -97,6 +115,10 @@ public class SpawnsHolder extends AsyncStorageObjectHolder<Spawns> implements IE
return EventPriority.NORMAL;
}
/**
* Get the newbie spawn from the config
* @return
*/
public Location getNewbieSpawn()
{
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 SpawnsHolder spawns;

View File

@@ -37,11 +37,21 @@ public class WorldOptions implements StorageObject
@Setter(AccessLevel.NONE)
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)
{
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)
{
if (creatureSpawn == null)

View File

@@ -12,7 +12,7 @@ import org.bukkit.Bukkit;
public abstract class AbstractDelayedYamlFileWriter implements Runnable
{
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)
{

View File

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

View File

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

View File

@@ -31,7 +31,8 @@ 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 ConcurrentSkipListSet<String> keys = new ConcurrentSkipListSet<String>();
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)
{
super();
@@ -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)
{
try
{
ZipFile zipFile = new ZipFile(file);
final ZipFile zipFile = new ZipFile(file);
try
{
Enumeration<ZipArchiveEntry> entries = zipFile.getEntriesInPhysicalOrder();
final Enumeration<ZipArchiveEntry> entries = zipFile.getEntriesInPhysicalOrder();
while (entries.hasMoreElements())
{
ZipArchiveEntry entry = entries.nextElement();
String name = entry.getName();
final ZipArchiveEntry entry = entries.nextElement();
final String name = entry.getName();
if (entry.isDirectory() || entry.getSize() == 0 || !zipCheck.matcher(name).matches())
{
continue;
}
String shortName = name.substring(0, name.length() - 4);
final String shortName = name.substring(0, name.length() - 4);
addFileToKeys(shortName);
zippedfiles.put(name, file);
}

View File

@@ -10,7 +10,7 @@ import java.util.logging.Level;
import net.ess3.api.IPlugin;
public class StorageQueue implements Runnable
public class StorageQueue implements Runnable
{
private DelayQueue<WriteRequest> queue = new DelayQueue<WriteRequest>();
public final static long DELAY = TimeUnit.NANOSECONDS.convert(1, TimeUnit.SECONDS);
@@ -28,7 +28,7 @@ public class StorageQueue implements Runnable
{
synchronized (lock)
{
List<WriteRequest> requests = new ArrayList<WriteRequest>();
final List<WriteRequest> requests = new ArrayList<WriteRequest>();
while (enabled.get() || !queue.isEmpty())
{
try
@@ -36,13 +36,13 @@ public class StorageQueue implements Runnable
queue.drainTo(requests);
for (WriteRequest request : requests)
{
RequestState state = request.getRequestState();
final RequestState state = request.getRequestState();
if (state == RequestState.REQUEUE)
{
queue.add(request);
continue;
}
if (state == RequestState.SCHEDULE)
else if (state == RequestState.SCHEDULE)
{
plugin.scheduleAsyncDelayedTask(request.getRunnable());
}

View File

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

View File

@@ -13,8 +13,8 @@ import org.yaml.snakeyaml.introspector.BeanAccess;
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, ReentrantLock> LOCKS = new HashMap<Class, ReentrantLock>();
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 final Reader reader;
private transient final IPlugin plugin;

View File

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

View File

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

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