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:
22
.gitattributes
vendored
Normal file
22
.gitattributes
vendored
Normal 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
|
@@ -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)
|
||||
{
|
||||
|
@@ -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;
|
||||
|
@@ -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)
|
||||
|
@@ -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())));
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -66,4 +66,5 @@ public interface IEssentials extends IComponent
|
||||
SpawnsHolder getSpawns();
|
||||
|
||||
StorageQueue getStorageQueue();
|
||||
|
||||
}
|
||||
|
@@ -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();
|
||||
|
@@ -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);
|
||||
|
||||
}
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
|
||||
|
||||
|
@@ -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>
|
||||
{
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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"));
|
||||
|
@@ -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));
|
||||
|
@@ -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)
|
||||
|
@@ -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)
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
@@ -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;
|
||||
|
@@ -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
|
||||
|
@@ -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])));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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();
|
||||
|
@@ -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";
|
||||
|
@@ -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);
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -56,4 +56,4 @@ public class Commandfly extends EssentialsToggleCommand
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@@ -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"))
|
||||
{
|
||||
|
@@ -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(
|
||||
|
@@ -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)));
|
||||
}
|
||||
|
@@ -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]);
|
||||
|
@@ -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);
|
||||
|
@@ -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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -106,4 +106,4 @@ public class Commandhome extends EssentialsCommand
|
||||
}
|
||||
user.getTeleport().home(loc, charge);
|
||||
}
|
||||
}
|
||||
}
|
@@ -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)));
|
||||
|
@@ -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()));
|
||||
}
|
||||
}
|
||||
|
@@ -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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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++;
|
||||
|
@@ -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())
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
|
@@ -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();
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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"));
|
||||
|
@@ -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"));
|
||||
|
@@ -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();
|
||||
}
|
||||
}
|
||||
|
@@ -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"));
|
||||
}
|
||||
|
@@ -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)
|
||||
|
@@ -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);
|
||||
|
@@ -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)
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
@@ -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));
|
||||
|
@@ -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())
|
||||
{
|
||||
|
@@ -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)));
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -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"));
|
||||
}
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -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()));
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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]);
|
||||
|
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
@@ -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")
|
||||
|
@@ -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);
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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");
|
||||
|
@@ -3,6 +3,8 @@ package net.ess3.commands;
|
||||
|
||||
public class NotEnoughArgumentsException extends Exception
|
||||
{
|
||||
private static final long serialVersionUID = 4659884540230373059L;
|
||||
|
||||
public NotEnoughArgumentsException()
|
||||
{
|
||||
super("");
|
||||
|
@@ -4,6 +4,8 @@ import static net.ess3.I18n._;
|
||||
|
||||
public class WarpNotFoundException extends Exception
|
||||
{
|
||||
private static final long serialVersionUID = 6585692783437952812L;
|
||||
|
||||
public WarpNotFoundException()
|
||||
{
|
||||
super(_("warpNotExist"));
|
||||
|
@@ -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.");
|
||||
}
|
||||
}
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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;
|
||||
|
@@ -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();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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)
|
||||
|
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -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;
|
||||
|
@@ -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)
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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());
|
||||
}
|
||||
|
@@ -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.");
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -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
Reference in New Issue
Block a user