diff options
author | snowleo <schneeleo@gmail.com> | 2012-08-26 17:10:17 +0200 |
---|---|---|
committer | snowleo <schneeleo@gmail.com> | 2012-08-26 17:10:17 +0200 |
commit | b36dae3f5c0b76b5e9ff733192f57bbfa066f416 (patch) | |
tree | f6da6576077e590ffd9f6d72faf2e595dc251132 | |
parent | 40267faa6e2e9afcff1ee2ca45a9c9bb0f86b260 (diff) | |
download | Essentials-b36dae3f5c0b76b5e9ff733192f57bbfa066f416.tar Essentials-b36dae3f5c0b76b5e9ff733192f57bbfa066f416.tar.gz Essentials-b36dae3f5c0b76b5e9ff733192f57bbfa066f416.tar.lz Essentials-b36dae3f5c0b76b5e9ff733192f57bbfa066f416.tar.xz Essentials-b36dae3f5c0b76b5e9ff733192f57bbfa066f416.zip |
Removing server layer, part 1
122 files changed, 859 insertions, 2362 deletions
diff --git a/Essentials/src/net/ess3/Console.java b/Essentials/src/net/ess3/Console.java index 4639a531a..93c638a77 100644 --- a/Essentials/src/net/ess3/Console.java +++ b/Essentials/src/net/ess3/Console.java @@ -1,7 +1,7 @@ package net.ess3; import net.ess3.api.IReplyTo; -import net.ess3.api.server.CommandSender; +import org.bukkit.command.CommandSender; public final class Console implements IReplyTo diff --git a/Essentials/src/net/ess3/Essentials.java b/Essentials/src/net/ess3/Essentials.java index f99604076..915bde52e 100644 --- a/Essentials/src/net/ess3/Essentials.java +++ b/Essentials/src/net/ess3/Essentials.java @@ -17,10 +17,7 @@ */ package net.ess3; -import net.ess3.api.server.Player; -import net.ess3.api.server.Plugin; -import net.ess3.api.server.Server; -import net.ess3.api.server.World; + import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -45,11 +42,15 @@ import net.ess3.settings.SettingsHolder; import net.ess3.settings.SpawnsHolder; import net.ess3.user.UserMap; import net.ess3.utils.ExecuteTimer; +import org.bukkit.Server; +import org.bukkit.World; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.plugin.InvalidDescriptionException; +import org.bukkit.plugin.Plugin; import org.yaml.snakeyaml.error.YAMLException; @@ -78,7 +79,7 @@ public class Essentials implements IEssentials @Getter private final Logger logger; @Getter - private final Plugin plugin; + private final IPlugin plugin; public static boolean testing; private transient Metrics metrics; @Getter @@ -191,7 +192,7 @@ public class Essentials implements IEssentials { player.sendMessage("Essentials failed to load, read the log file."); } - this.setEnabled(false); + this.getPlugin().setEnabled(false); return; } backup = new Backup(this); @@ -220,7 +221,7 @@ public class Essentials implements IEssentials final MetricsStarter metricsStarter = new MetricsStarter(this); if (metricsStarter.getStart() != null && metricsStarter.getStart() == true) { - getServer().getScheduler().scheduleAsyncDelayedTask(this, metricsStarter, 1); + getServer().getScheduler().scheduleAsyncDelayedTask(this.getPlugin(), metricsStarter, 1); } else if (metricsStarter.getStart() != null && metricsStarter.getStart() == false) { @@ -308,18 +309,6 @@ public class Essentials implements IEssentials } @Override - public IUser getUser(final Player player) - { - return userMap.getUser(player); - } - - @Override - public IUser getUser(final String playerName) - { - return userMap.getUser(playerName); - } - - @Override public World getWorld(final String name) { if (name.matches("[0-9]+")) @@ -365,7 +354,7 @@ public class Essentials implements IEssentials } } - return getServer().getOnlinePlayers().size(); + return getServer().getOnlinePlayers().length; } /* diff --git a/Essentials/src/net/ess3/EssentialsTimer.java b/Essentials/src/net/ess3/EssentialsTimer.java index 9066e2f0c..ac31b9517 100644 --- a/Essentials/src/net/ess3/EssentialsTimer.java +++ b/Essentials/src/net/ess3/EssentialsTimer.java @@ -5,9 +5,9 @@ import java.util.logging.Level; import net.ess3.api.IEssentials; import net.ess3.api.ISettings; import net.ess3.api.IUser; -import net.ess3.api.server.Player; import net.ess3.permissions.Permissions; import net.ess3.user.UserData.TimestampType; +import org.bukkit.entity.Player; public class EssentialsTimer implements Runnable diff --git a/Essentials/src/net/ess3/ItemDb.java b/Essentials/src/net/ess3/ItemDb.java index 2159fd4e3..2127dd93e 100644 --- a/Essentials/src/net/ess3/ItemDb.java +++ b/Essentials/src/net/ess3/ItemDb.java @@ -1,7 +1,5 @@ package net.ess3; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Material; import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -14,6 +12,8 @@ import net.ess3.api.IItemDb; import net.ess3.api.IUser; import net.ess3.permissions.Permissions; import net.ess3.storage.ManagedFile; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; public class ItemDb implements IItemDb @@ -129,9 +129,9 @@ public class ItemDb implements IItemDb metaData = (short)((item >> 32) & 0xffffL); } } - else if (Material.get(itemname) != null) + else if (Material.matchMaterial(itemname) != null) { - itemid = Material.get(itemname).getId(); + itemid = Material.matchMaterial(itemname).getId(); metaData = 0; } else @@ -140,12 +140,12 @@ public class ItemDb implements IItemDb } } - final Material mat = Material.get(itemid); + final Material mat = Material.getMaterial(itemid); if (mat == null) { throw new Exception(_("unknownItemId", itemid)); } - final ItemStack retval = ItemStack.create(mat, mat.getMaxStackSize(), metaData); + final ItemStack retval = new ItemStack(mat, mat.getMaxStackSize(), metaData); return retval; } } diff --git a/Essentials/src/net/ess3/Jails.java b/Essentials/src/net/ess3/Jails.java index e2dfec477..987ce1503 100644 --- a/Essentials/src/net/ess3/Jails.java +++ b/Essentials/src/net/ess3/Jails.java @@ -1,15 +1,15 @@ package net.ess3; -import static net.ess3.I18n._; -import net.ess3.api.IEssentials; -import net.ess3.api.IJails; -import net.ess3.api.IUser; -import net.ess3.storage.AsyncStorageObjectHolder; import java.io.File; import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; import lombok.Cleanup; +import static net.ess3.I18n._; +import net.ess3.api.IEssentials; +import net.ess3.api.IJails; +import net.ess3.api.IUser; +import net.ess3.storage.AsyncStorageObjectHolder; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.event.EventHandler; diff --git a/Essentials/src/net/ess3/Kits.java b/Essentials/src/net/ess3/Kits.java index 3dfcac31f..24d7cdf5f 100644 --- a/Essentials/src/net/ess3/Kits.java +++ b/Essentials/src/net/ess3/Kits.java @@ -7,12 +7,12 @@ import static net.ess3.I18n._; import net.ess3.api.IEssentials; import net.ess3.api.IKits; import net.ess3.api.IUser; -import net.ess3.api.server.ItemStack; import net.ess3.commands.NoChargeException; import net.ess3.settings.Kit; import net.ess3.storage.AsyncStorageObjectHolder; import net.ess3.user.UserData.TimestampType; import net.ess3.utils.DateUtil; +import org.bukkit.inventory.ItemStack; public class Kits extends AsyncStorageObjectHolder<net.ess3.settings.Kits> implements IKits diff --git a/Essentials/src/net/ess3/Teleport.java b/Essentials/src/net/ess3/Teleport.java index 04e47e493..e5679f367 100644 --- a/Essentials/src/net/ess3/Teleport.java +++ b/Essentials/src/net/ess3/Teleport.java @@ -1,21 +1,20 @@ 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; import net.ess3.api.IUser; -import net.ess3.api.server.Player; -import net.ess3.api.server.Location; -import net.ess3.commands.NotEnoughArgumentsException; import net.ess3.economy.Trade; import net.ess3.permissions.Permissions; import net.ess3.user.CooldownException; import net.ess3.user.UserData.TimestampType; import net.ess3.utils.DateUtil; import net.ess3.utils.LocationUtil; -import java.util.Calendar; -import java.util.GregorianCalendar; -import java.util.logging.Logger; +import org.bukkit.Location; +import org.bukkit.entity.Entity; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -24,11 +23,10 @@ public class Teleport implements Runnable, ITeleport private static final double MOVE_CONSTANT = 0.3; - private static class Target { private final Location location; - private final Player entity; + private final Entity entity; public Target(Location location) { @@ -36,7 +34,7 @@ public class Teleport implements Runnable, ITeleport this.entity = null; } - public Target(Player entity) + public Target(Entity entity) { this.entity = entity; this.location = null; @@ -200,7 +198,7 @@ public class Teleport implements Runnable, ITeleport teleport(new Target(loc), chargeFor, cause); } - public void teleport(Player entity, Trade chargeFor, TeleportCause cause) throws Exception + public void teleport(Entity entity, Trade chargeFor, TeleportCause cause) throws Exception { teleport(new Target(entity), chargeFor, cause); } @@ -239,7 +237,7 @@ public class Teleport implements Runnable, ITeleport { cancel(); user.setLastLocation(); - user.getBase().teleport(LocationUtil.getSafeDestination(target.getLocation()), cause); + user.getPlayer().teleport(LocationUtil.getSafeDestination(target.getLocation()), cause); } @Override @@ -259,7 +257,7 @@ public class Teleport implements Runnable, ITeleport now(new Target(loc), cause); } - public void now(Player entity, boolean cooldown, TeleportCause cause) throws Exception + public void now(Entity entity, boolean cooldown, TeleportCause cause) throws Exception { if (cooldown) { diff --git a/Essentials/src/net/ess3/Warps.java b/Essentials/src/net/ess3/Warps.java index 08398b8e1..04663f6bd 100644 --- a/Essentials/src/net/ess3/Warps.java +++ b/Essentials/src/net/ess3/Warps.java @@ -1,16 +1,16 @@ package net.ess3; +import java.io.File; +import java.util.*; import static net.ess3.I18n._; import net.ess3.api.IEssentials; import net.ess3.api.IWarp; import net.ess3.api.IWarps; import net.ess3.api.InvalidNameException; -import net.ess3.api.server.Location; import net.ess3.commands.WarpNotFoundException; import net.ess3.settings.WarpHolder; import net.ess3.storage.StorageObjectMap; -import java.io.File; -import java.util.*; +import org.bukkit.Location; public class Warps extends StorageObjectMap<IWarp> implements IWarps diff --git a/Essentials/src/net/ess3/api/ICommandHandler.java b/Essentials/src/net/ess3/api/ICommandHandler.java index be7a9e6c4..33093d4bd 100644 --- a/Essentials/src/net/ess3/api/ICommandHandler.java +++ b/Essentials/src/net/ess3/api/ICommandHandler.java @@ -1,8 +1,8 @@ package net.ess3.api; -import net.ess3.api.server.CommandSender; import java.util.Map; import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; import org.bukkit.plugin.Plugin; diff --git a/Essentials/src/net/ess3/api/IEssentials.java b/Essentials/src/net/ess3/api/IEssentials.java index fba576dfc..741e56a5f 100644 --- a/Essentials/src/net/ess3/api/IEssentials.java +++ b/Essentials/src/net/ess3/api/IEssentials.java @@ -3,11 +3,11 @@ package net.ess3.api; import java.util.List; import java.util.logging.Logger; import net.ess3.EssentialsTimer; -import net.ess3.api.server.Plugin; -import net.ess3.api.server.Server; -import net.ess3.api.server.World; import net.ess3.economy.register.Methods; import net.ess3.metrics.Metrics; +import org.bukkit.Server; +import org.bukkit.World; +import org.bukkit.plugin.Plugin; public interface IEssentials extends IComponent @@ -59,7 +59,7 @@ public interface IEssentials extends IComponent Logger getLogger(); - Plugin getPlugin(); + IPlugin getPlugin(); List<String> getVanishedPlayers(); diff --git a/Essentials/src/net/ess3/api/IItemDb.java b/Essentials/src/net/ess3/api/IItemDb.java index fa9e1d868..8738b1bab 100644 --- a/Essentials/src/net/ess3/api/IItemDb.java +++ b/Essentials/src/net/ess3/api/IItemDb.java @@ -1,6 +1,7 @@ package net.ess3.api; -import net.ess3.api.server.ItemStack; +import org.bukkit.inventory.ItemStack; + public interface IItemDb extends IReload diff --git a/Essentials/src/net/ess3/api/IPermission.java b/Essentials/src/net/ess3/api/IPermission.java index f210a890f..8a76cd549 100644 --- a/Essentials/src/net/ess3/api/IPermission.java +++ b/Essentials/src/net/ess3/api/IPermission.java @@ -1,7 +1,9 @@ package net.ess3.api; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Permission; +import org.bukkit.command.CommandSender; +import org.bukkit.permissions.Permission; +import org.bukkit.permissions.PermissionDefault; + public interface IPermission @@ -12,5 +14,5 @@ public interface IPermission Permission getPermission(); - Permission.Default getPermissionDefault(); + PermissionDefault getPermissionDefault(); } diff --git a/Essentials/src/net/ess3/api/server/Plugin.java b/Essentials/src/net/ess3/api/IPlugin.java index f0d10740c..a61028acd 100644 --- a/Essentials/src/net/ess3/api/server/Plugin.java +++ b/Essentials/src/net/ess3/api/IPlugin.java @@ -1,12 +1,11 @@ -package net.ess3.api.server; +package net.ess3.api; import java.io.File; -import java.io.InputStream; -import java.util.logging.Logger; +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; - -public interface Plugin -{ +public interface IPlugin extends Plugin { int scheduleAsyncDelayedTask(final Runnable run); int scheduleSyncDelayedTask(final Runnable run); @@ -14,26 +13,18 @@ public interface Plugin int scheduleSyncDelayedTask(final Runnable run, final long delay); int scheduleSyncRepeatingTask(final Runnable run, final long delay, final long period); - + int scheduleAsyncRepeatingTask(final Runnable run, final long delay, final long period); File getRootFolder(); - - File getDataFolder(); - void cancelTask(int taskId); + void cancelTask(final int taskId); String getVersion(); - - Class getClassByName(String name); - InputStream getResource(String string); - + Class getClassByName(final String name); + Location callRespawnEvent(Player player, Location loc, boolean bedSpawn); - + void callSuicideEvent(Player player); - - Logger getLogger(); - - Server getServer(); } diff --git a/Essentials/src/net/ess3/api/IReplyTo.java b/Essentials/src/net/ess3/api/IReplyTo.java index 6e96166bb..7d232c709 100644 --- a/Essentials/src/net/ess3/api/IReplyTo.java +++ b/Essentials/src/net/ess3/api/IReplyTo.java @@ -1,6 +1,7 @@ package net.ess3.api; -import net.ess3.api.server.CommandSender; +import org.bukkit.command.CommandSender; + public interface IReplyTo diff --git a/Essentials/src/net/ess3/api/IUser.java b/Essentials/src/net/ess3/api/IUser.java index bb1d985ed..46f3ebf59 100644 --- a/Essentials/src/net/ess3/api/IUser.java +++ b/Essentials/src/net/ess3/api/IUser.java @@ -1,19 +1,18 @@ package net.ess3.api; import java.util.List; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Location; -import net.ess3.api.server.Player; import net.ess3.storage.IStorageObjectHolder; import net.ess3.user.CooldownException; import net.ess3.user.UserData; +import org.bukkit.Location; +import org.bukkit.OfflinePlayer; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; -public interface IUser extends Player, IStorageObjectHolder<UserData>, IReload, IReplyTo, Comparable<IUser> +public interface IUser extends OfflinePlayer, CommandSender, IStorageObjectHolder<UserData>, IReload, IReplyTo, Comparable<IUser> { - Player getBase(); - double getMoney(); void takeMoney(double value); @@ -49,7 +48,7 @@ public interface IUser extends Player, IStorageObjectHolder<UserData>, IReload, void updateActivity(boolean broadcast); void updateDisplayName(); - + void setDisplayNick(); boolean checkJailTimeout(long currentTime); @@ -75,8 +74,6 @@ public interface IUser extends Player, IStorageObjectHolder<UserData>, IReload, void setIgnoredPlayer(IUser user, boolean set); Location getAfkPosition(); - - void dispose(); void updateCompass(); @@ -107,23 +104,22 @@ public interface IUser extends Player, IStorageObjectHolder<UserData>, IReload, public void updateMoneyCache(double userMoney); public boolean canAfford(double amount, boolean b); - + boolean isVanished(); - + void resetInvulnerabilityAfterTeleport(); - + void toggleVanished(); - + boolean isInvSee(); - + void setInvSee(boolean invsee); - + boolean hasInvulnerabilityAfterTeleport(); - - void update(final Player base); - + void setGodModeEnabled(boolean set); - + void setVanished(boolean set); + void setPlayerCache(Player player); } diff --git a/Essentials/src/net/ess3/api/IUserMap.java b/Essentials/src/net/ess3/api/IUserMap.java index 63cbb7340..c87dd5e5e 100644 --- a/Essentials/src/net/ess3/api/IUserMap.java +++ b/Essentials/src/net/ess3/api/IUserMap.java @@ -1,9 +1,10 @@ package net.ess3.api; -import net.ess3.api.server.Player; import net.ess3.user.TooManyMatchesException; import java.io.File; import java.util.Set; +import net.ess3.user.PlayerNotFoundException; +import org.bukkit.entity.Player; public interface IUserMap extends IReload @@ -22,7 +23,7 @@ public interface IUserMap extends IReload File getUserFile(final String name) throws InvalidNameException; - IUser matchUser(final String name, final boolean includeHidden, final boolean includeOffline) throws TooManyMatchesException; + IUser matchUser(final String name, final boolean includeHidden, final boolean includeOffline) throws TooManyMatchesException, PlayerNotFoundException; - Set<IUser> matchUsers(final String name, final boolean includeHidden, final boolean includeOffline); + Set<IUser> matchUsers(final String name, final boolean includeHidden, final boolean includeOffline) throws PlayerNotFoundException; } diff --git a/Essentials/src/net/ess3/api/IWarps.java b/Essentials/src/net/ess3/api/IWarps.java index 00939ff7e..908994486 100644 --- a/Essentials/src/net/ess3/api/IWarps.java +++ b/Essentials/src/net/ess3/api/IWarps.java @@ -1,8 +1,8 @@ package net.ess3.api; -import net.ess3.api.server.Location; import java.io.File; import java.util.Collection; +import org.bukkit.Location; public interface IWarps extends IReload diff --git a/Essentials/src/net/ess3/api/IWorth.java b/Essentials/src/net/ess3/api/IWorth.java index 770170c31..ffc38a203 100644 --- a/Essentials/src/net/ess3/api/IWorth.java +++ b/Essentials/src/net/ess3/api/IWorth.java @@ -1,7 +1,6 @@ package net.ess3.api; -import net.ess3.api.server.ItemStack; - +import org.bukkit.inventory.ItemStack; public interface IWorth extends IReload diff --git a/Essentials/src/net/ess3/api/ondemand/OnDemand.java b/Essentials/src/net/ess3/api/ondemand/OnDemand.java deleted file mode 100644 index a2ec8e246..000000000 --- a/Essentials/src/net/ess3/api/ondemand/OnDemand.java +++ /dev/null @@ -1,22 +0,0 @@ -package net.ess3.api.ondemand; - -import java.lang.ref.WeakReference; - - -public abstract class OnDemand<T> -{ - protected WeakReference<T> reference = null; - - public final T get() - { - T obj = reference == null ? null : reference.get(); - if (obj == null) - { - obj = getNew(); - reference = new WeakReference<T>(obj); - } - return obj; - } - - protected abstract T getNew(); -} diff --git a/Essentials/src/net/ess3/api/ondemand/UserOnDemand.java b/Essentials/src/net/ess3/api/ondemand/UserOnDemand.java deleted file mode 100644 index b4805fb9d..000000000 --- a/Essentials/src/net/ess3/api/ondemand/UserOnDemand.java +++ /dev/null @@ -1,29 +0,0 @@ -package net.ess3.api.ondemand; - -import net.ess3.api.IUser; -import net.ess3.api.server.Player; -import net.ess3.api.server.Server; - - -public class UserOnDemand extends OnDemand<IUser> -{ - private final String name; - private final Server server; - - public UserOnDemand(String name, Server server) - { - this.name = name; - this.server = server; - } - - @Override - protected IUser getNew() - { - Player player = server.getPlayer(name); - if (player == null) - { - return null; - } - return player.getUser(); - } -} diff --git a/Essentials/src/net/ess3/api/server/Block.java b/Essentials/src/net/ess3/api/server/Block.java deleted file mode 100644 index 633c1c6f8..000000000 --- a/Essentials/src/net/ess3/api/server/Block.java +++ /dev/null @@ -1,24 +0,0 @@ -package net.ess3.api.server; - -import lombok.Delegate; - -public class Block { - - public Block(ItemStack stack, Location location) - { - this.stack = stack; - this.location = location; - } - - - @Delegate - private final ItemStack stack; - @Delegate - private final Location location; - - public ItemStack convertToItem() - { - final ItemStack is = ItemStack.create(this.stack.getType(), 1, this.stack.getDurability()); - return this.stack.getType().convertToItem(is); - } -} diff --git a/Essentials/src/net/ess3/api/server/CommandSender.java b/Essentials/src/net/ess3/api/server/CommandSender.java deleted file mode 100644 index 768dde9bb..000000000 --- a/Essentials/src/net/ess3/api/server/CommandSender.java +++ /dev/null @@ -1,13 +0,0 @@ -package net.ess3.api.server; - -public interface CommandSender { - boolean isPlayer(); - - void sendMessage(String message); - - boolean isOp(); - - boolean hasPermission(Permission bukkitPermission); - - void sendMessage(String[] string); -} diff --git a/Essentials/src/net/ess3/api/server/Enchantment.java b/Essentials/src/net/ess3/api/server/Enchantment.java deleted file mode 100644 index 3e7baa0cf..000000000 --- a/Essentials/src/net/ess3/api/server/Enchantment.java +++ /dev/null @@ -1,7 +0,0 @@ -package net.ess3.api.server; - -public abstract class Enchantment { - - public abstract int getMaxLevel(); - -} diff --git a/Essentials/src/net/ess3/api/server/IInventory.java b/Essentials/src/net/ess3/api/server/IInventory.java deleted file mode 100644 index 783495864..000000000 --- a/Essentials/src/net/ess3/api/server/IInventory.java +++ /dev/null @@ -1,19 +0,0 @@ -package net.ess3.api.server; - -import java.util.Map; - -public interface IInventory { - - public boolean containsItem(boolean b, boolean b0, ItemStack itemStack); - - public Map<Integer, ItemStack> addItem(ItemStack itemStack); - - public Map<Integer, ItemStack> addItem(boolean b, ItemStack itemStack); - - public Map<Integer, ItemStack> addItem(boolean b, int oversizedStacksize, ItemStack itemStack); - - public boolean addAllItems(boolean b, ItemStack itemStack); - - public void removeItem(boolean b, boolean b0, ItemStack itemStack); - -} diff --git a/Essentials/src/net/ess3/api/server/IPermission.java b/Essentials/src/net/ess3/api/server/IPermission.java deleted file mode 100644 index 23fee3a03..000000000 --- a/Essentials/src/net/ess3/api/server/IPermission.java +++ /dev/null @@ -1,5 +0,0 @@ -package net.ess3.api.server; - -public interface IPermission { - -} diff --git a/Essentials/src/net/ess3/api/server/ItemStack.java b/Essentials/src/net/ess3/api/server/ItemStack.java deleted file mode 100644 index b383f4fd7..000000000 --- a/Essentials/src/net/ess3/api/server/ItemStack.java +++ /dev/null @@ -1,53 +0,0 @@ -package net.ess3.api.server; - - -public abstract class ItemStack implements Cloneable -{ - public interface ItemStackFactory - { - ItemStack create(int id, int amount, int data); - ItemStack clone(ItemStack stack); - } - private static ItemStackFactory factory; - - public static void setFactory(final ItemStackFactory factory) - { - ItemStack.factory = factory; - } - - public static ItemStack create(int id, int amount, int data) - { - return factory.create(id, amount, data); - } - - public static ItemStack create(Material mat, int amount, int data) - { - return factory.create(mat.getId(), amount, data); - } - - public abstract Material getType(); - - public abstract void setType(Material mat); - - public abstract void setType(int id); - - public abstract int getAmount(); - - public abstract void setAmount(int value); - - public abstract short getDurability(); - - public abstract void setDurability(short value); - - public abstract int getMaxStackSize(); - - public abstract boolean isAir(); - - public abstract void addEnchantment(Enchantment enchantment, int level); - - @Override - public ItemStack clone() - { - return factory.clone(this); - } -} diff --git a/Essentials/src/net/ess3/api/server/Location.java b/Essentials/src/net/ess3/api/server/Location.java deleted file mode 100644 index 825e2f814..000000000 --- a/Essentials/src/net/ess3/api/server/Location.java +++ /dev/null @@ -1,52 +0,0 @@ -package net.ess3.api.server; - - -public abstract class Location -{ - public interface LocationFactory { - Location create(String worldName, double x, double y, double z, double yaw, double pitch); - Location create(World world, double x, double y, double z, double yaw, double pitch); - } - private static LocationFactory factory; - - public static void setFactory(final LocationFactory factory) { - Location.factory = factory; - } - - public static Location create(String worldName, double x, double y, double z) { - return factory.create(worldName, x, y, z, 0, 0); - } - - public static Location create(String worldName, double x, double y, double z, double yaw, double pitch) { - return factory.create(worldName, x, y, z, yaw, pitch); - } - - public static Location create(World world, double x, double y, double z) { - return factory.create(world, x, y, z, 0, 0); - } - - public static Location create(World world, double x, double y, double z, double yaw, double pitch) { - return factory.create(world, x, y, z, yaw, pitch); - } - - - public abstract double getX(); - - public abstract double getY(); - - public abstract double getZ(); - - public abstract float getYaw(); - - public abstract float getPitch(); - - public abstract int getBlockX(); - - public abstract int getBlockY(); - - public abstract int getBlockZ(); - - public abstract World getWorld(); - - public abstract double distanceSquared(Location location); -} diff --git a/Essentials/src/net/ess3/api/server/Material.java b/Essentials/src/net/ess3/api/server/Material.java deleted file mode 100644 index 5c41f8302..000000000 --- a/Essentials/src/net/ess3/api/server/Material.java +++ /dev/null @@ -1,39 +0,0 @@ -package net.ess3.api.server; - -public abstract class Material { - - private static Material instance; - - public static void setInstance(final Material instance) { - Material.instance = instance; - } - - public static Material get(final int id) { - return instance.getMaterialById(id); - } - - public static Material get(final String name) { - return instance.getMaterialByName(name); - } - - public static Material match(String string) - { - return instance.matchMaterial(string); - } - - protected abstract Material getMaterialByName(String name); - - protected abstract Material getMaterialById(int id); - - public abstract int getId(); - - public abstract String getName(); - - public abstract int getMaxStackSize(); - - public abstract int getMaxDurability(); - - protected abstract Material matchMaterial(String string); - - public abstract ItemStack convertToItem(ItemStack is); -} diff --git a/Essentials/src/net/ess3/api/server/Permission.java b/Essentials/src/net/ess3/api/server/Permission.java deleted file mode 100644 index f4fb37cc4..000000000 --- a/Essentials/src/net/ess3/api/server/Permission.java +++ /dev/null @@ -1,27 +0,0 @@ -package net.ess3.api.server; - - -public abstract class Permission -{ - public enum Default - { - TRUE, FALSE, OP, NOT_OP; - } - - - public interface PermissionFactory - { - Permission create(String name, Permission.Default defaultPermission); - } - private static PermissionFactory factory; - - public static void setFactory(final PermissionFactory factory) - { - Permission.factory = factory; - } - - public static Permission create(final String name, Permission.Default defaultPermission) - { - return factory.create(name, defaultPermission); - } -} diff --git a/Essentials/src/net/ess3/api/server/Player.java b/Essentials/src/net/ess3/api/server/Player.java deleted file mode 100644 index d8928c4d1..000000000 --- a/Essentials/src/net/ess3/api/server/Player.java +++ /dev/null @@ -1,63 +0,0 @@ -package net.ess3.api.server; - -import net.ess3.api.IUser; - - -public interface Player extends CommandSender -{ - IUser getUser(); - - String getName(); - - String getDisplayName(); - - boolean isOnline(); - - void setBanned(boolean bool); - - void kickPlayer(String reason); - - World getWorld(); - - Location getLocation(); - - Location getEyeLocation(); - - void setFireTicks(int value); - - void setFoodLevel(int value); - - void setSaturation(float value); - - int getHealth(); - - void setHealth(int value); - - void updateInventory(); - - ItemStack getItemInHand(); - - Location getBedSpawnLocation(); - - boolean hasPlayedBefore(); - - IInventory getInventory(); - - void setTotalExperience(final int exp); - - int getTotalExperience(); - - void setDisplayName(String name); - - void setPlayerListName(String name); - - void setSleepingIgnored(boolean b); - - boolean isBanned(); - - void setCompassTarget(Location loc); - - void damage(int value); - - boolean isInSurvivalMode(); -} diff --git a/Essentials/src/net/ess3/api/server/Server.java b/Essentials/src/net/ess3/api/server/Server.java deleted file mode 100644 index 5a2f14431..000000000 --- a/Essentials/src/net/ess3/api/server/Server.java +++ /dev/null @@ -1,30 +0,0 @@ -package net.ess3.api.server; - -import java.util.Collection; -import java.util.List; - - -public interface Server -{ - List<World> getWorlds(); - - World getWorld(String name); - - int broadcastMessage(String message); - - Collection<Player> getOnlinePlayers(); - - CommandSender getConsoleSender(); - - void dispatchCommand(CommandSender sender, String command); - - void banIP(String ip); - - <T> T getServiceProvider(Class<T> clazz); - - String getVersion(); - - public void unbanIP(String string); - - public Player getPlayer(String name); -} diff --git a/Essentials/src/net/ess3/api/server/World.java b/Essentials/src/net/ess3/api/server/World.java deleted file mode 100644 index 5648ea7ac..000000000 --- a/Essentials/src/net/ess3/api/server/World.java +++ /dev/null @@ -1,28 +0,0 @@ -package net.ess3.api.server; - -import java.util.UUID; -import org.bukkit.TreeType; - -public interface World { - String getName(); - - boolean generateTree(Location safeLocation, TreeType tree); - - int getHighestBlockYAt(int topX, int topZ); - - ItemStack dropItem(Location loc, ItemStack stack); - - UUID getUID(); - - Location getSpawnLocation(); - - void dropItemNaturally(Location location, ItemStack overflowStack); - - void setStorm(boolean b); - - void setWeatherDuration(int i); - - long getTime(); - - boolean setSpawnLocation(int blockX, int blockY, int blockZ); -} diff --git a/Essentials/src/net/ess3/api/server/events/EventFactory.java b/Essentials/src/net/ess3/api/server/events/EventFactory.java deleted file mode 100644 index fdaf8199f..000000000 --- a/Essentials/src/net/ess3/api/server/events/EventFactory.java +++ /dev/null @@ -1,7 +0,0 @@ -package net.ess3.api.server.events; - - -public interface EventFactory -{ - public void register(EventListener listener, EventType type, EventPriority priority, boolean ignoreCancelled); -} diff --git a/Essentials/src/net/ess3/api/server/events/EventListener.java b/Essentials/src/net/ess3/api/server/events/EventListener.java deleted file mode 100644 index 975a10357..000000000 --- a/Essentials/src/net/ess3/api/server/events/EventListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package net.ess3.api.server.events; - -import net.ess3.api.IUser; -import net.ess3.api.ondemand.OnDemand; -import net.ess3.api.server.Block; - - -public abstract class EventListener -{ - private static EventFactory eventFactory; - - public final void register(EventType type, EventPriority priority, boolean ignoreCancelled) - { - eventFactory.register(this, type, priority, ignoreCancelled); - } - - public boolean onBlockPlace(Block block, OnDemand<IUser> user) - { - return true; - } -} diff --git a/Essentials/src/net/ess3/api/server/events/EventPriority.java b/Essentials/src/net/ess3/api/server/events/EventPriority.java deleted file mode 100644 index 76c4d891b..000000000 --- a/Essentials/src/net/ess3/api/server/events/EventPriority.java +++ /dev/null @@ -1,12 +0,0 @@ -package net.ess3.api.server.events; - - -public enum EventPriority -{ - LOWEST, - LOW, - NORMAL, - HIGH, - HIGHEST, - MONITOR -} diff --git a/Essentials/src/net/ess3/api/server/events/EventType.java b/Essentials/src/net/ess3/api/server/events/EventType.java deleted file mode 100644 index 694ad04ee..000000000 --- a/Essentials/src/net/ess3/api/server/events/EventType.java +++ /dev/null @@ -1,7 +0,0 @@ -package net.ess3.api.server.events; - - -public enum EventType -{ - PLACE_BLOCK -} diff --git a/Essentials/src/net/ess3/backup/Backup.java b/Essentials/src/net/ess3/backup/Backup.java index 534b5655e..806f2e618 100644 --- a/Essentials/src/net/ess3/backup/Backup.java +++ b/Essentials/src/net/ess3/backup/Backup.java @@ -4,14 +4,14 @@ import static net.ess3.I18n._; import net.ess3.api.IBackup; import net.ess3.api.IEssentials; import net.ess3.api.ISettings; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Server; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.concurrent.atomic.AtomicBoolean; import java.util.logging.Level; import lombok.Cleanup; +import org.bukkit.Server; +import org.bukkit.command.CommandSender; public class Backup implements Runnable, IBackup @@ -26,7 +26,7 @@ public class Backup implements Runnable, IBackup { this.ess = ess; server = ess.getServer(); - if (!server.getOnlinePlayers().isEmpty()) + if (server.getOnlinePlayers().length > 0) { startTask(); } @@ -134,7 +134,7 @@ public class Backup implements Runnable, IBackup public void run() { server.dispatchCommand(server.getConsoleSender(), "save-on"); - if (server.getOnlinePlayers().isEmpty()) + if (server.getOnlinePlayers().length > 0) { running.set(false); if (taskId != -1) diff --git a/Essentials/src/net/ess3/bukkit/BukkitBlockFactory.java b/Essentials/src/net/ess3/bukkit/BukkitBlockFactory.java deleted file mode 100644 index e39e0c9a2..000000000 --- a/Essentials/src/net/ess3/bukkit/BukkitBlockFactory.java +++ /dev/null @@ -1,13 +0,0 @@ -package net.ess3.bukkit; - -import net.ess3.api.server.Block; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Location; - -public class BukkitBlockFactory { - - public static Block convert(org.bukkit.block.Block block) { - Location loc = Location.create(block.getWorld().getName(), block.getX(), block.getY(), block.getZ()); - return new Block(ItemStack.create(block.getTypeId(), 1, block.getData()), loc); - } -} diff --git a/Essentials/src/net/ess3/bukkit/BukkitCommandSender.java b/Essentials/src/net/ess3/bukkit/BukkitCommandSender.java deleted file mode 100644 index 278a7bcba..000000000 --- a/Essentials/src/net/ess3/bukkit/BukkitCommandSender.java +++ /dev/null @@ -1,53 +0,0 @@ -package net.ess3.bukkit; - -import lombok.Delegate; -import lombok.Getter; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Permission; - - -public class BukkitCommandSender implements CommandSender -{ - @Delegate - @Getter - private org.bukkit.command.CommandSender commandSender; - - public BukkitCommandSender(org.bukkit.command.CommandSender commandSender) - { - this.commandSender = commandSender; - } - - @Override - public boolean isPlayer() - { - return false; - } - - @Override - public boolean isOp() - { - return commandSender.isOp(); - } - - @Override - public boolean hasPermission(Permission permission) - { - if (commandSender == null) { - return false; - } else { - return commandSender.hasPermission(((BukkitPermission)permission).getBukkitPermission()); - } - } - - @Override - public void sendMessage(String message) - { - commandSender.sendMessage(message); - } - - @Override - public void sendMessage(String[] string) - { - commandSender.sendMessage(string); - } -} diff --git a/Essentials/src/net/ess3/bukkit/BukkitItemStack.java b/Essentials/src/net/ess3/bukkit/BukkitItemStack.java deleted file mode 100644 index 2cec7023c..000000000 --- a/Essentials/src/net/ess3/bukkit/BukkitItemStack.java +++ /dev/null @@ -1,74 +0,0 @@ -package net.ess3.bukkit; - -import net.ess3.api.server.Enchantment; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Material; -import lombok.Delegate; -import lombok.Getter; - - -public class BukkitItemStack extends net.ess3.api.server.ItemStack -{ - public static class BukkitItemStackFactory implements ItemStackFactory - { - @Override - public ItemStack create(int id, int amount, int data) - { - return new BukkitItemStack(new org.bukkit.inventory.ItemStack(id, amount, (short)data)); - } - - @Override - public ItemStack clone(final ItemStack stack) - { - return new BukkitItemStack(((BukkitItemStack)stack).getItemStack().clone()); - } - } - - - private interface Excludes - { - org.bukkit.Material getType(); - } - @Delegate(excludes = - { - Excludes.class - }) - @Getter - private final org.bukkit.inventory.ItemStack itemStack; - - public BukkitItemStack(final org.bukkit.inventory.ItemStack itemStack) - { - super(); - this.itemStack = itemStack; - } - - @Override - public void addEnchantment(Enchantment enchantment, int level) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Material getType() - { - return Material.get(itemStack.getTypeId()); - } - - @Override - public void setType(Material type) - { - itemStack.setTypeId(type.getId()); - } - - @Override - public void setType(int id) - { - itemStack.setTypeId(id); - } - - @Override - public boolean isAir() - { - return itemStack.getTypeId() == 0; - } -} diff --git a/Essentials/src/net/ess3/bukkit/BukkitLocation.java b/Essentials/src/net/ess3/bukkit/BukkitLocation.java deleted file mode 100644 index 21021873c..000000000 --- a/Essentials/src/net/ess3/bukkit/BukkitLocation.java +++ /dev/null @@ -1,63 +0,0 @@ -package net.ess3.bukkit; - -import net.ess3.api.server.World; -import net.ess3.api.server.Location; -import lombok.Delegate; -import lombok.Getter; - - -public class BukkitLocation extends Location -{ - public static class BukkitLocationFactory implements LocationFactory - { - private final org.bukkit.Server server; - - public BukkitLocationFactory(org.bukkit.Server server) - { - this.server = server; - } - - @Override - public Location create(String worldName, double x, double y, double z, double yaw, double pitch) - { - org.bukkit.World world = server.getWorld(worldName); - return new BukkitLocation(new org.bukkit.Location(world, x, y, z, (float)yaw, (float)pitch)); - } - - @Override - public Location create(World world, double x, double y, double z, double yaw, double pitch) - { - return new BukkitLocation(new org.bukkit.Location(((BukkitWorld)world).getBukkitWorld(), x, y, z, (float)yaw, (float)pitch)); - } - } - - - private interface Excludes - { - org.bukkit.World getWorld(); - } - @Delegate(excludes = - { - Excludes.class - }) - @Getter - private final org.bukkit.Location bukkitLocation; - - public BukkitLocation(org.bukkit.Location bukkitLocation) - { - this.bukkitLocation = bukkitLocation; - } - - @Override - public World getWorld() - { - return new BukkitWorld(bukkitLocation.getWorld()); - } - - @Override - public double distanceSquared(final Location location) - { - return bukkitLocation.distanceSquared(((BukkitLocation)location).getBukkitLocation()); - } - -} diff --git a/Essentials/src/net/ess3/bukkit/BukkitMaterial.java b/Essentials/src/net/ess3/bukkit/BukkitMaterial.java index 84a6e7145..268413a54 100644 --- a/Essentials/src/net/ess3/bukkit/BukkitMaterial.java +++ b/Essentials/src/net/ess3/bukkit/BukkitMaterial.java @@ -1,125 +1,57 @@ package net.ess3.bukkit; -import java.util.EnumMap; -import lombok.Delegate; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Material; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; -public class BukkitMaterial extends Material +public class BukkitMaterial { - private static EnumMap<org.bukkit.Material, BukkitMaterial> materials = new EnumMap<org.bukkit.Material, BukkitMaterial>(org.bukkit.Material.class); - - static - { - for (org.bukkit.Material material : org.bukkit.Material.values()) - { - materials.put(material, new BukkitMaterial(material)); - } - } - - @Override - public int getId() - { - return this.material.getId(); - } - - @Override - public int getMaxStackSize() - { - return this.material.getMaxStackSize(); - } - - private interface Excludes { - short getMaxDurability(); - } - @Delegate(excludes={Excludes.class}) - private final org.bukkit.Material material; - - private BukkitMaterial(final org.bukkit.Material material) - { - this.material = material; - } - - @Override - protected Material getMaterialByName(final String name) - { - final org.bukkit.Material mat = org.bukkit.Material.getMaterial(name); - return materials.get(mat); - } - - @Override - protected Material getMaterialById(final int id) - { - final org.bukkit.Material mat = org.bukkit.Material.getMaterial(id); - return materials.get(mat); - } - - @Override - protected Material matchMaterial(String string) - { - final org.bukkit.Material mat = org.bukkit.Material.matchMaterial(string); - return materials.get(mat); - } - - @Override - public String getName() - { - return this.material.toString(); - } - - @Override - public int getMaxDurability() - { - return (short)this.material.getMaxDurability(); - } - - @Override - public ItemStack convertToItem(ItemStack is) + public static ItemStack convertBlockToItem(Material mat, short data) { - switch (org.bukkit.Material.getMaterial(is.getType().getId())) + final ItemStack is = new ItemStack(mat, 1, data); + switch (is.getType()) { case WOODEN_DOOR: - is.setType(org.bukkit.Material.WOOD_DOOR.getId()); + is.setType(org.bukkit.Material.WOOD_DOOR); is.setDurability((short)0); break; case IRON_DOOR_BLOCK: - is.setType(org.bukkit.Material.IRON_DOOR.getId()); + is.setType(org.bukkit.Material.IRON_DOOR); is.setDurability((short)0); break; case SIGN_POST: case WALL_SIGN: - is.setType(org.bukkit.Material.SIGN.getId()); + is.setType(org.bukkit.Material.SIGN); is.setDurability((short)0); break; case CROPS: - is.setType(org.bukkit.Material.SEEDS.getId()); + is.setType(org.bukkit.Material.SEEDS); is.setDurability((short)0); break; case CAKE_BLOCK: - is.setType(org.bukkit.Material.CAKE.getId()); + is.setType(org.bukkit.Material.CAKE); is.setDurability((short)0); break; case BED_BLOCK: - is.setType(org.bukkit.Material.BED.getId()); + is.setType(org.bukkit.Material.BED); is.setDurability((short)0); break; case REDSTONE_WIRE: - is.setType(org.bukkit.Material.REDSTONE.getId()); + is.setType(org.bukkit.Material.REDSTONE); is.setDurability((short)0); break; case REDSTONE_TORCH_OFF: case REDSTONE_TORCH_ON: - is.setType(org.bukkit.Material.REDSTONE_TORCH_ON.getId()); + is.setType(org.bukkit.Material.REDSTONE_TORCH_ON); is.setDurability((short)0); break; case DIODE_BLOCK_OFF: case DIODE_BLOCK_ON: - is.setType(org.bukkit.Material.DIODE.getId()); + is.setType(org.bukkit.Material.DIODE); is.setDurability((short)0); break; case DOUBLE_STEP: - is.setType(org.bukkit.Material.STEP.getId()); + is.setType(org.bukkit.Material.STEP); break; case TORCH: case RAILS: @@ -147,10 +79,10 @@ public class BukkitMaterial extends Material case FIRE: return null; case PUMPKIN_STEM: - is.setType(org.bukkit.Material.PUMPKIN_SEEDS.getId()); + is.setType(org.bukkit.Material.PUMPKIN_SEEDS); break; case MELON_STEM: - is.setType(org.bukkit.Material.MELON_SEEDS.getId()); + is.setType(org.bukkit.Material.MELON_SEEDS); break; } return is; diff --git a/Essentials/src/net/ess3/bukkit/BukkitPermission.java b/Essentials/src/net/ess3/bukkit/BukkitPermission.java deleted file mode 100644 index 9c60a10e2..000000000 --- a/Essentials/src/net/ess3/bukkit/BukkitPermission.java +++ /dev/null @@ -1,82 +0,0 @@ -package net.ess3.bukkit; - -import java.util.regex.Pattern; -import lombok.Delegate; -import lombok.Getter; -import net.ess3.api.server.Permission; -import org.bukkit.Bukkit; -import org.bukkit.permissions.PermissionDefault; -import org.bukkit.plugin.PluginManager; - - -public class BukkitPermission extends Permission -{ - public static class BukkitPermissionFactory implements PermissionFactory - { - private static transient final Pattern DOT_PATTERN = Pattern.compile("\\."); - - @Override - public Permission create(String permission, Permission.Default defaultPerm) - { - final PluginManager pluginManager = Bukkit.getServer().getPluginManager(); - final String[] parts = DOT_PATTERN.split(permission); - final StringBuilder builder = new StringBuilder(permission.length()); - org.bukkit.permissions.Permission parent = null; - for (int i = 0; i < parts.length - 1; i++) - { - builder.append(parts[i]).append(".*"); - String permString = builder.toString(); - org.bukkit.permissions.Permission perm = pluginManager.getPermission(permString); - if (perm == null) - { - perm = new org.bukkit.permissions.Permission(permString, PermissionDefault.FALSE); - pluginManager.addPermission(perm); - if (parent != null) - { - parent.getChildren().put(perm.getName(), Boolean.TRUE); - } - parent = perm; - } - builder.deleteCharAt(builder.length() - 1); - } - org.bukkit.permissions.Permission perm = pluginManager.getPermission(permission); - if (perm == null) - { - perm = new org.bukkit.permissions.Permission(permission, getBukkitDefaultPermission(defaultPerm)); - pluginManager.addPermission(perm); - if (parent != null) - { - parent.getChildren().put(perm.getName(), Boolean.TRUE); - } - parent = perm; - } - perm.recalculatePermissibles(); - return new BukkitPermission(perm); - } - } - @Delegate - @Getter - private final org.bukkit.permissions.Permission bukkitPermission; - - public BukkitPermission(org.bukkit.permissions.Permission bukkitPermission) - { - this.bukkitPermission = bukkitPermission; - } - - public static PermissionDefault getBukkitDefaultPermission(final Permission.Default defaultPerm) - { - switch (defaultPerm) - { - case TRUE: - return PermissionDefault.TRUE; - case OP: - return PermissionDefault.OP; - case NOT_OP: - return PermissionDefault.NOT_OP; - case FALSE: - return PermissionDefault.FALSE; - default: - return PermissionDefault.FALSE; - } - } -} diff --git a/Essentials/src/net/ess3/bukkit/BukkitPlayer.java b/Essentials/src/net/ess3/bukkit/BukkitPlayer.java deleted file mode 100644 index 7b357e278..000000000 --- a/Essentials/src/net/ess3/bukkit/BukkitPlayer.java +++ /dev/null @@ -1,213 +0,0 @@ -package net.ess3.bukkit; - -import lombok.Delegate; -import lombok.Getter; -import net.ess3.api.IUser; -import net.ess3.api.server.IInventory; -import net.ess3.api.server.Location; -import net.ess3.api.server.Player; -import net.ess3.api.server.World; -import org.bukkit.GameMode; -import org.bukkit.OfflinePlayer; - - -public class BukkitPlayer extends BukkitCommandSender implements Player -{ - private interface Excludes - { - org.bukkit.World getWorld(); - - org.bukkit.Location getLocation(); - - org.bukkit.Location getEyeLocation(); - - org.bukkit.inventory.ItemStack getItemInHand(); - - org.bukkit.Location getBedSpawnLocation(); - - org.bukkit.inventory.Inventory getInventory(); - - void setTotalExperience(int i); - - int getTotalExperience(); - } - @Delegate(types = - { - org.bukkit.entity.Player.class, org.bukkit.entity.LivingEntity.class - }, excludes = - { - OfflinePlayer.class, org.bukkit.command.CommandSender.class, Excludes.class - }) - @Getter - private transient org.bukkit.entity.Player onlinePlayer; - /** - * a set of data and methods common to both offline and online players. - */ - @Delegate(excludes = - { - Excludes.class - }) - @Getter - private transient OfflinePlayer safePlayer; - private final transient BukkitServer server; - private transient IUser user = null; - - public BukkitPlayer(final OfflinePlayer player, final BukkitServer server) - { - super(player.getPlayer()); - this.server = server; - if (player.isOnline()) - { - - setOnlinePlayer(player.getPlayer()); - } - else - { - setOfflinePlayer(player); - } - } - - public final void setOfflinePlayer(final OfflinePlayer offlinePlayer) - { - safePlayer = offlinePlayer; - onlinePlayer = null; - } - - public final void setOnlinePlayer(final org.bukkit.entity.Player onlinePlayer) - { - safePlayer = this.onlinePlayer = onlinePlayer; - } - - public String getSafeDisplayName() - { - return onlinePlayer == null ? getName() : getDisplayName(); - } - - @Override - public IUser getUser() - { - return user; - } - - @Override - public boolean isPlayer() - { - return true; - } - - @Override - public World getWorld() - { - return server.getWorld(onlinePlayer.getWorld().getName()); - } - - @Override - public Location getLocation() - { - return new BukkitLocation(onlinePlayer.getLocation()); - } - - @Override - public Location getEyeLocation() - { - return new BukkitLocation(onlinePlayer.getEyeLocation()); - } - - @Override - public BukkitItemStack getItemInHand() - { - return new BukkitItemStack(onlinePlayer.getItemInHand()); - } - - @Override - public Location getBedSpawnLocation() - { - return new BukkitLocation(onlinePlayer.getBedSpawnLocation()); - } - - @Override - public IInventory getInventory() - { - return new Inventory(onlinePlayer.getInventory()); - } - - @Override - public void setTotalExperience(final int exp) - { - if (exp < 0) - { - throw new IllegalArgumentException("Experience is negative!"); - } - onlinePlayer.setExp(0); - onlinePlayer.setLevel(0); - onlinePlayer.setTotalExperience(0); - int amount = exp; - while (amount > 0) - { - final int expToLevel = getExpToLevel(); - amount -= expToLevel; - if (amount >= 0) - { - // give until next level - onlinePlayer.giveExp(expToLevel); - } - else - { - // give the rest - amount += expToLevel; - onlinePlayer.giveExp(amount); - amount = 0; - } - } - } - - /*private int getExpToLevel() - { - return getExpToLevel(onlinePlayer.getLevel()); - }*/ - - private static int getExpToLevel(final int level) - { - return 7 + (level * 7 >> 1); - } - - @Override - public int getTotalExperience() - { - int exp = (int) (getExpToLevel() * onlinePlayer.getExp()); - int currentLevel = onlinePlayer.getLevel(); - - while (currentLevel > 0) { - currentLevel--; - exp += getExpToLevel(currentLevel); - } - return exp; - } - - - @Override - public void sendMessage(final String message) - { - onlinePlayer.sendMessage(message); - } - - @Override - public void sendMessage(final String[] string) - { - onlinePlayer.sendMessage(string); - } - - - @Override - public void setCompassTarget(final Location loc) - { - onlinePlayer.setCompassTarget(((BukkitLocation)loc).getBukkitLocation()); - } - - - @Override - public boolean isInSurvivalMode() - { - return onlinePlayer.getGameMode() == GameMode.SURVIVAL; - } -} diff --git a/Essentials/src/net/ess3/bukkit/BukkitPlugin.java b/Essentials/src/net/ess3/bukkit/BukkitPlugin.java index 0d60bee19..34af338d0 100644 --- a/Essentials/src/net/ess3/bukkit/BukkitPlugin.java +++ b/Essentials/src/net/ess3/bukkit/BukkitPlugin.java @@ -1,106 +1,156 @@ package net.ess3.bukkit; -import net.ess3.api.server.Player; -import net.ess3.api.server.Plugin; -import net.ess3.api.server.Location; import java.io.File; -import lombok.Delegate; -import lombok.Getter; -import net.ess3.api.server.Server; +import java.util.logging.Level; +import net.ess3.Essentials; +import static net.ess3.I18n._; +import net.ess3.api.IPlugin; +import org.bukkit.Location; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerRespawnEvent; +import org.bukkit.plugin.PluginManager; +import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPluginLoader; -public class BukkitPlugin implements Plugin -{ - private interface Excludes { - public org.bukkit.Server getServer(); +public class BukkitPlugin extends JavaPlugin implements IPlugin +{ + private Essentials ess; + + @Override + public void onEnable() + { + + final PluginManager pm = this.getServer().getPluginManager(); + //pm.registerEvents(getServer(), this); + ess = new Essentials(getServer(), getLogger(), this); + if (VersionCheck.checkVersion(this)) + { + try + { + ess.onEnable(); + } + catch (RuntimeException ex) + { + if (pm.getPlugin("EssentialsUpdate") == null) + { + getLogger().log(Level.SEVERE, _("essentialsHelp1")); + } + else + { + getLogger().log(Level.SEVERE, _("essentialsHelp2")); + } + getLogger().log(Level.SEVERE, ex.toString()); + pm.registerEvents(new Listener() + { + @EventHandler(priority = EventPriority.LOW) + public void onPlayerJoin(final PlayerJoinEvent event) + { + event.getPlayer().sendMessage("Essentials failed to load, read the log file."); + } + }, this); + for (Player player : getServer().getOnlinePlayers()) + { + player.sendMessage("Essentials failed to load, read the log file."); + } + this.setEnabled(false); + } + } + else + { + this.setEnabled(false); + } + } + + @Override + public void onDisable() + { + if (ess != null) + { + ess.onDisable(); + } } - @Delegate(excludes={Excludes.class}) - @Getter - private final org.bukkit.plugin.Plugin bukkitPlugin; - @Getter - private final Server server; - public BukkitPlugin(final org.bukkit.plugin.Plugin plugin, final Server server) + @Override + public boolean onCommand(final org.bukkit.command.CommandSender sender, final Command command, final String label, final String[] args) { - this.bukkitPlugin = plugin; - this.server = server; + return ess.getCommandHandler().handleCommand(sender, command, label, args); } @Override public int scheduleAsyncDelayedTask(final Runnable run) { - return bukkitPlugin.getServer().getScheduler().scheduleAsyncDelayedTask(bukkitPlugin, run); + return getServer().getScheduler().scheduleAsyncDelayedTask(this, run); } @Override public int scheduleSyncDelayedTask(final Runnable run) { - return bukkitPlugin.getServer().getScheduler().scheduleSyncDelayedTask(bukkitPlugin, run); + return getServer().getScheduler().scheduleSyncDelayedTask(this, run); } @Override public int scheduleSyncDelayedTask(final Runnable run, final long delay) { - return bukkitPlugin.getServer().getScheduler().scheduleSyncDelayedTask(bukkitPlugin, run, delay); + return getServer().getScheduler().scheduleSyncDelayedTask(this, run, delay); } @Override public int scheduleSyncRepeatingTask(final Runnable run, final long delay, final long period) { - return bukkitPlugin.getServer().getScheduler().scheduleSyncRepeatingTask(bukkitPlugin, run, delay, period); + return getServer().getScheduler().scheduleSyncRepeatingTask(this, run, delay, period); } - + @Override public int scheduleAsyncRepeatingTask(final Runnable run, final long delay, final long period) { - return bukkitPlugin.getServer().getScheduler().scheduleAsyncRepeatingTask(bukkitPlugin, run, delay, period); + return getServer().getScheduler().scheduleAsyncRepeatingTask(this, run, delay, period); } - + @Override public File getRootFolder() { - return bukkitPlugin.getDataFolder().getParentFile().getParentFile(); + return getDataFolder().getParentFile().getParentFile(); } @Override public void cancelTask(final int taskId) { - bukkitPlugin.getServer().getScheduler().cancelTask(taskId); + getServer().getScheduler().cancelTask(taskId); } @Override public String getVersion() { - return bukkitPlugin.getDescription().getVersion(); + return getDescription().getVersion(); } @Override public Class getClassByName(final String name) { - final JavaPluginLoader jpl = (JavaPluginLoader)bukkitPlugin.getPluginLoader(); + final JavaPluginLoader jpl = (JavaPluginLoader)this.getPluginLoader(); return jpl.getClassByName(name); } @Override public Location callRespawnEvent(Player player, Location loc, boolean bedSpawn) { - final PlayerRespawnEvent pre = new PlayerRespawnEvent(((BukkitPlayer)player).getOnlinePlayer(), ((BukkitLocation)loc).getBukkitLocation() , bedSpawn); - getBukkitServer().getPluginManager().callEvent(pre); - return new BukkitLocation(pre.getRespawnLocation()); + final PlayerRespawnEvent pre = new PlayerRespawnEvent(player, loc, bedSpawn); + getServer().getPluginManager().callEvent(pre); + return pre.getRespawnLocation(); } @Override public void callSuicideEvent(Player player) { - EntityDamageEvent ede = new EntityDamageEvent(((BukkitPlayer)player).getOnlinePlayer(), EntityDamageEvent.DamageCause.SUICIDE, 1000); - getBukkitServer().getPluginManager().callEvent(ede); - } - - public org.bukkit.Server getBukkitServer() - { - return bukkitPlugin.getServer(); + EntityDamageEvent ede = new EntityDamageEvent(player, EntityDamageEvent.DamageCause.SUICIDE, 1000); + getServer().getPluginManager().callEvent(ede); } } diff --git a/Essentials/src/net/ess3/bukkit/BukkitServer.java b/Essentials/src/net/ess3/bukkit/BukkitServer.java deleted file mode 100644 index d0f548f09..000000000 --- a/Essentials/src/net/ess3/bukkit/BukkitServer.java +++ /dev/null @@ -1,134 +0,0 @@ -package net.ess3.bukkit; - -import java.util.*; -import lombok.Delegate; -import lombok.Getter; -import net.ess3.api.IEssentials; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; -import net.ess3.api.server.Server; -import net.ess3.api.server.World; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerLoginEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.event.world.WorldLoadEvent; -import org.bukkit.event.world.WorldUnloadEvent; -import org.bukkit.plugin.RegisteredServiceProvider; - - -public class BukkitServer implements Server, Listener -{ - private IEssentials ess; - private interface Excludes - { - List<org.bukkit.World> getWorlds(); - - org.bukkit.World getWorld(String name); - - org.bukkit.entity.Player[] getOnlinePlayers(); - - BukkitCommandSender getConsoleSender(); - - org.bukkit.entity.Player getPlayer(String name); - } - @Delegate(excludes = Excludes.class) - private final org.bukkit.Server server; - @Getter - private List<World> worlds; - private Map<String, World> worldsMap; - @Getter - private Collection<Player> onlinePlayers; - private Map<String, Player> onlinePlayersMap; - @Getter - private CommandSender consoleSender; - - public BukkitServer(final org.bukkit.Server server) - { - this.server = server; - consoleSender = new BukkitCommandSender(server.getConsoleSender()); - updateWorlds(); - } - - private void updateWorlds() - { - final ArrayList<World> lworlds = new ArrayList<World>(server.getWorlds().size()); - final HashMap<String, World> lworldsMap = new HashMap<String, World>(); - for (org.bukkit.World world : server.getWorlds()) - { - final BukkitWorld w = new BukkitWorld(world); - lworlds.add(w); - lworldsMap.put(world.getName(), w); - lworldsMap.put(world.getName().toLowerCase(Locale.ENGLISH), w); - } - this.worlds = Collections.unmodifiableList(lworlds); - this.worldsMap = Collections.unmodifiableMap(lworldsMap); - } - - @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) - public synchronized void onWorldLoadEvent(final WorldLoadEvent event) - { - updateWorlds(); - } - - @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) - public synchronized void onWorldUnloadEvent(final WorldUnloadEvent event) - { - updateWorlds(); - } - - @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) - public synchronized void onPlayerLoginEvent(final PlayerLoginEvent event) - { - final HashMap<String, Player> oplayersMap = new HashMap<String, Player>(onlinePlayersMap); - BukkitPlayer p = new BukkitPlayer(event.getPlayer(), this); - - oplayersMap.put(event.getPlayer().getName(), p); - onlinePlayersMap = Collections.unmodifiableMap(oplayersMap); - onlinePlayers = Collections.unmodifiableCollection(oplayersMap.values()); - } - - @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) - public synchronized void onPlayerQuitEvent(final PlayerQuitEvent event) - { - final ArrayList<Player> oplayers = new ArrayList<Player>(onlinePlayers); - final HashMap<String, Player> oplayersMap = new HashMap<String, Player>(onlinePlayersMap); - oplayersMap.remove(event.getPlayer().getName()); - onlinePlayersMap = Collections.unmodifiableMap(oplayersMap); - onlinePlayers = Collections.unmodifiableCollection(oplayersMap.values()); - } - - @Override - public World getWorld(final String name) - { - final World world = worldsMap.get(name); - if (world == null) - { - return worldsMap.get(name.toLowerCase(Locale.ENGLISH)); - } - return world; - } - - @Override - public void dispatchCommand(final CommandSender sender, final String command) - { - server.dispatchCommand(((BukkitCommandSender)sender).getCommandSender(), command); - } - - @Override - public <T> T getServiceProvider(final Class<T> clazz) - { - final RegisteredServiceProvider<T> rsp = server.getServicesManager().getRegistration(clazz); - return rsp.getProvider(); - } - - public Player getPlayer(final org.bukkit.entity.Player player) { - return onlinePlayersMap.get(player.getName()); - } - - @Override - public Player getPlayer(final String playerName) { - return onlinePlayersMap.get(playerName); - } -} diff --git a/Essentials/src/net/ess3/bukkit/BukkitWorld.java b/Essentials/src/net/ess3/bukkit/BukkitWorld.java deleted file mode 100644 index 894a40f85..000000000 --- a/Essentials/src/net/ess3/bukkit/BukkitWorld.java +++ /dev/null @@ -1,53 +0,0 @@ -package net.ess3.bukkit; - -import lombok.Delegate; -import lombok.Getter; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Location; -import net.ess3.api.server.World; -import org.bukkit.TreeType; - -public class BukkitWorld implements World { - private interface Excludes - { - boolean generateTree(Location safeLocation, TreeType tree); - - ItemStack dropItem(Location loc, ItemStack stack); - - Location getSpawnLocation(); - - void dropItemNaturally(Location location, ItemStack overflowStack); - } - @Delegate(excludes = Excludes.class) - @Getter - private final org.bukkit.World bukkitWorld; - - public BukkitWorld(final org.bukkit.World world) - { - this.bukkitWorld = world; - } - - @Override - public boolean generateTree(Location safeLocation, TreeType tree) - { - return bukkitWorld.generateTree(((BukkitLocation)safeLocation).getBukkitLocation(), tree); - } - - @Override - public ItemStack dropItem(Location loc, ItemStack stack) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Location getSpawnLocation() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void dropItemNaturally(Location location, ItemStack overflowStack) - { - throw new UnsupportedOperationException("Not supported yet."); - } -} diff --git a/Essentials/src/net/ess3/bukkit/EssentialsPlugin.java b/Essentials/src/net/ess3/bukkit/EssentialsPlugin.java deleted file mode 100644 index b198fef87..000000000 --- a/Essentials/src/net/ess3/bukkit/EssentialsPlugin.java +++ /dev/null @@ -1,95 +0,0 @@ -package net.ess3.bukkit; - -import java.util.logging.Level; -import net.ess3.Essentials; -import static net.ess3.I18n._; -import net.ess3.api.server.*; -import org.bukkit.command.Command; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.plugin.PluginManager; -import org.bukkit.plugin.java.JavaPlugin; - - -public class EssentialsPlugin extends JavaPlugin -{ - private transient Essentials ess; - - public EssentialsPlugin() - { - Material.setInstance(BukkitMaterial.get(0)); - ItemStack.setFactory(new BukkitItemStack.BukkitItemStackFactory()); - Location.setFactory(new BukkitLocation.BukkitLocationFactory(getServer())); - Permission.setFactory(new BukkitPermission.BukkitPermissionFactory()); - } - - @Override - public void onEnable() - { - - BukkitServer server = new BukkitServer(getServer()); - final PluginManager pm = this.getServer().getPluginManager(); - pm.registerEvents(server, this); - ess = new Essentials(server, getLogger(), new BukkitPlugin(this, server)); - if (VersionCheck.checkVersion(this)) - { - try - { - ess.onEnable(); - } - catch (RuntimeException ex) - { - if (pm.getPlugin("EssentialsUpdate") == null) - { - getLogger().log(Level.SEVERE, _("essentialsHelp1")); - } - else - { - getLogger().log(Level.SEVERE, _("essentialsHelp2")); - } - getLogger().log(Level.SEVERE, ex.toString()); - pm.registerEvents(new Listener() - { - @EventHandler(priority = EventPriority.LOW) - public void onPlayerJoin(final PlayerJoinEvent event) - { - event.getPlayer().sendMessage("Essentials failed to load, read the log file."); - } - }, this); - for (Player player : getServer().getOnlinePlayers()) - { - player.sendMessage("Essentials failed to load, read the log file."); - } - this.setEnabled(false); - } - } - else - { - this.setEnabled(false); - } - } - - @Override - public void onDisable() - { - if (ess != null) - { - ess.onDisable(); - } - } - - @Override - public boolean onCommand(final org.bukkit.command.CommandSender sender, final Command command, final String label, final String[] args) - { - CommandSender commandSender; - if (sender instanceof org.bukkit.entity.Player) { - commandSender = ((BukkitServer)ess.getServer()).getPlayer((org.bukkit.entity.Player)sender); - } else { - commandSender = new BukkitCommandSender(sender); - } - return ess.getCommandHandler().handleCommand(commandSender, command, label, args); - } -} diff --git a/Essentials/src/net/ess3/bukkit/Inventory.java b/Essentials/src/net/ess3/bukkit/Inventory.java deleted file mode 100644 index 47e05f979..000000000 --- a/Essentials/src/net/ess3/bukkit/Inventory.java +++ /dev/null @@ -1,54 +0,0 @@ -package net.ess3.bukkit; - -import net.ess3.api.server.IInventory; -import net.ess3.api.server.ItemStack; -import java.util.Map; -import lombok.Delegate; -import org.bukkit.inventory.PlayerInventory; - -public class Inventory implements IInventory { - @Delegate - private org.bukkit.inventory.PlayerInventory inventory; - - Inventory(PlayerInventory inventory) - { - this.inventory = inventory; - } - - @Override - public boolean containsItem(boolean b, boolean b0, ItemStack itemStack) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Map<Integer, ItemStack> addItem(boolean b, ItemStack itemStack) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean addAllItems(boolean b, ItemStack itemStack) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void removeItem(boolean b, boolean b0, ItemStack itemStack) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Map<Integer, ItemStack> addItem(boolean b, int oversizedStacksize, ItemStack itemStack) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Map<Integer, ItemStack> addItem(ItemStack itemStack) - { - throw new UnsupportedOperationException("Not supported yet."); - } - -} diff --git a/Essentials/src/net/ess3/bukkit/LivingEntities.java b/Essentials/src/net/ess3/bukkit/LivingEntities.java new file mode 100644 index 000000000..0f7fb4970 --- /dev/null +++ b/Essentials/src/net/ess3/bukkit/LivingEntities.java @@ -0,0 +1,47 @@ +package net.ess3.bukkit; + +import java.util.Collections; +import java.util.EnumMap; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; +import java.util.Set; +import static net.ess3.I18n._; +import org.bukkit.entity.EntityType; + + +public class LivingEntities +{ + final private static Map<String, EntityType> entities = new HashMap<String, EntityType>(); + + final private static EnumMap<EntityType, String> entityI18n = new EnumMap<EntityType, String>(EntityType.class); + final private static EnumMap<EntityType, String> entityI18nPlural = new EnumMap<EntityType, String>(EntityType.class); + + static + { + for (EntityType entityType : EntityType.values()) + { + if (entityType.isAlive() && entityType.isSpawnable()) + { + String entityName = entityType.name().toLowerCase(Locale.ENGLISH).replace("_", ""); + entities.put(entityName, entityType); + entityI18n.put(entityType, entityName); + entityI18nPlural.put(entityType,entityName+"Plural"); + } + } + } + + public static Set<String> getLivingEntityList() + { + return Collections.unmodifiableSet(entities.keySet()); + } + + public static EntityType fromName(final String name) + { + return entities.get(name.toLowerCase(Locale.ENGLISH)); + } + + public static String getName(int count, EntityType type) { + return count == 1? _(entityI18n.get(type)):_(entityI18nPlural.get(type)); + } +} diff --git a/Essentials/src/net/ess3/bukkit/Mob.java b/Essentials/src/net/ess3/bukkit/Mob.java deleted file mode 100644 index 0dd0bfab6..000000000 --- a/Essentials/src/net/ess3/bukkit/Mob.java +++ /dev/null @@ -1,116 +0,0 @@ -package net.ess3.bukkit; - -import java.util.*; -import java.util.logging.Level; -import java.util.logging.Logger; -import static net.ess3.I18n._; -import org.bukkit.Location; -import org.bukkit.Server; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; - - -public enum Mob -{ - CHICKEN("Chicken", Enemies.FRIENDLY, EntityType.CHICKEN), - COW("Cow", Enemies.FRIENDLY, EntityType.COW), - CREEPER("Creeper", Enemies.ENEMY, EntityType.CREEPER), - GHAST("Ghast", Enemies.ENEMY, EntityType.GHAST), - GIANT("Giant", Enemies.ENEMY, EntityType.GIANT), - PIG("Pig", Enemies.FRIENDLY, EntityType.PIG), - PIGZOMB("PigZombie", Enemies.NEUTRAL, EntityType.PIG_ZOMBIE), - SHEEP("Sheep", Enemies.FRIENDLY, "", EntityType.SHEEP), - SKELETON("Skeleton", Enemies.ENEMY, EntityType.SKELETON), - SLIME("Slime", Enemies.ENEMY, EntityType.SLIME), - SPIDER("Spider", Enemies.ENEMY, EntityType.SPIDER), - SQUID("Squid", Enemies.FRIENDLY, EntityType.SQUID), - ZOMBIE("Zombie", Enemies.ENEMY, EntityType.ZOMBIE), - WOLF("Wolf", Enemies.NEUTRAL, EntityType.WOLF), - CAVESPIDER("CaveSpider", Enemies.ENEMY, EntityType.CAVE_SPIDER), - ENDERMAN("Enderman", Enemies.ENEMY, "", EntityType.ENDERMAN), - SILVERFISH("Silverfish", Enemies.ENEMY, "", EntityType.SILVERFISH), - ENDERDRAGON("EnderDragon", Enemies.ENEMY, EntityType.ENDER_DRAGON), - VILLAGER("Villager", Enemies.FRIENDLY, EntityType.VILLAGER), - BLAZE("Blaze", Enemies.ENEMY, EntityType.BLAZE), - MUSHROOMCOW("MushroomCow", Enemies.FRIENDLY, EntityType.MUSHROOM_COW), - MAGMACUBE("MagmaCube", Enemies.ENEMY, EntityType.MAGMA_CUBE), - SNOWMAN("Snowman", Enemies.FRIENDLY, "", EntityType.SNOWMAN), - OCELOT("Ocelot", Enemies.NEUTRAL, EntityType.OCELOT), - IRONGOLEM("IronGolem", Enemies.NEUTRAL, EntityType.IRON_GOLEM); - - public static final Logger logger = Logger.getLogger("Minecraft"); - - private Mob(String n, Enemies en, String s, EntityType type) - { - this.suffix = s; - this.name = n; - this.type = en; - this.bukkitType = type; - } - - private Mob(String n, Enemies en, EntityType type) - { - this.name = n; - this.type = en; - this.bukkitType = type; - } - public String suffix = "s"; - final public String name; - final public Enemies type; - final private EntityType bukkitType; - private static final Map<String, Mob> hashMap = new HashMap<String, Mob>(); - - static - { - for (Mob mob : Mob.values()) - { - hashMap.put(mob.name.toLowerCase(Locale.ENGLISH), mob); - } - } - - public static Set<String> getMobList() { - return Collections.unmodifiableSet(hashMap.keySet()); - } - - public LivingEntity spawn(final Player player, final Server server, final Location loc) throws MobException - { - final LivingEntity entity = player.getWorld().spawn(loc, (Class<? extends LivingEntity>)this.bukkitType.getEntityClass()); - if (entity == null) - { - logger.log(Level.WARNING, _("unableToSpawnMob")); - throw new MobException(); - } - return entity; - } - - - public enum Enemies - { - FRIENDLY("friendly"), - NEUTRAL("neutral"), - ENEMY("enemy"); - - private Enemies(final String type) - { - this.type = type; - } - final protected String type; - } - - public EntityType getType() - { - return bukkitType; - } - - public static Mob fromName(final String name) - { - return hashMap.get(name.toLowerCase(Locale.ENGLISH)); - } - - - public static class MobException extends Exception - { - private static final long serialVersionUID = 1L; - } -} diff --git a/Essentials/src/net/ess3/bukkit/PermissionFactory.java b/Essentials/src/net/ess3/bukkit/PermissionFactory.java new file mode 100644 index 000000000..3d8c2da9b --- /dev/null +++ b/Essentials/src/net/ess3/bukkit/PermissionFactory.java @@ -0,0 +1,51 @@ +package net.ess3.bukkit; + +import java.util.regex.Pattern; +import org.bukkit.Bukkit; +import org.bukkit.permissions.Permission; +import org.bukkit.permissions.PermissionDefault; +import org.bukkit.plugin.PluginManager; + + +public class PermissionFactory +{ + private static transient final Pattern DOT_PATTERN = Pattern.compile("\\."); + + public static Permission registerPermission(String permission, PermissionDefault defaultPerm) + { + final PluginManager pluginManager = Bukkit.getServer().getPluginManager(); + final String[] parts = DOT_PATTERN.split(permission); + final StringBuilder builder = new StringBuilder(permission.length()); + Permission parent = null; + for (int i = 0; i < parts.length - 1; i++) + { + builder.append(parts[i]).append(".*"); + String permString = builder.toString(); + Permission perm = pluginManager.getPermission(permString); + if (perm == null) + { + perm = new Permission(permString, PermissionDefault.FALSE); + pluginManager.addPermission(perm); + if (parent != null) + { + parent.getChildren().put(perm.getName(), Boolean.TRUE); + } + parent = perm; + } + builder.deleteCharAt(builder.length() - 1); + } + Permission perm = pluginManager.getPermission(permission); + if (perm == null) + { + perm = new Permission(permission, defaultPerm); + pluginManager.addPermission(perm); + if (parent != null) + { + parent.getChildren().put(perm.getName(), Boolean.TRUE); + } + parent = perm; + } + perm.recalculatePermissibles(); + return perm; + } +} diff --git a/Essentials/src/net/ess3/bukkit/events/BaseEventExecutor.java b/Essentials/src/net/ess3/bukkit/events/BaseEventExecutor.java deleted file mode 100644 index 16397d373..000000000 --- a/Essentials/src/net/ess3/bukkit/events/BaseEventExecutor.java +++ /dev/null @@ -1,21 +0,0 @@ -package net.ess3.bukkit.events; - -import net.ess3.api.server.events.EventListener; -import org.bukkit.event.Event; -import org.bukkit.event.EventException; -import org.bukkit.event.Listener; -import org.bukkit.plugin.EventExecutor; - - -public abstract class BaseEventExecutor implements EventExecutor -{ - protected final EventListener listener; - - public BaseEventExecutor(final EventListener listener) - { - this.listener = listener; - } - - @Override - public abstract void execute(Listener ll, Event event) throws EventException; -} diff --git a/Essentials/src/net/ess3/bukkit/events/BukkitEventFactory.java b/Essentials/src/net/ess3/bukkit/events/BukkitEventFactory.java deleted file mode 100644 index cc36c272d..000000000 --- a/Essentials/src/net/ess3/bukkit/events/BukkitEventFactory.java +++ /dev/null @@ -1,25 +0,0 @@ -package net.ess3.bukkit.events; - -import net.ess3.api.server.Plugin; -import net.ess3.api.server.events.EventFactory; -import net.ess3.api.server.events.EventListener; -import net.ess3.api.server.events.EventPriority; -import net.ess3.api.server.events.EventType; - - -public class BukkitEventFactory implements EventFactory -{ - private Plugin plugin; - - public BukkitEventFactory(Plugin plugin) - { - this.plugin = plugin; - } - - @Override - public void register(EventListener listener, EventType type, EventPriority priority, boolean ignoreCancelled) - { - BukkitListener bukkitListener = new BukkitListener(plugin); - bukkitListener.register(listener, type, priority, ignoreCancelled); - } -} diff --git a/Essentials/src/net/ess3/bukkit/events/BukkitListener.java b/Essentials/src/net/ess3/bukkit/events/BukkitListener.java deleted file mode 100644 index 2bce6e31c..000000000 --- a/Essentials/src/net/ess3/bukkit/events/BukkitListener.java +++ /dev/null @@ -1,70 +0,0 @@ -package net.ess3.bukkit.events; - -import net.ess3.api.server.Plugin; -import net.ess3.api.server.events.EventListener; -import net.ess3.api.server.events.EventPriority; -import net.ess3.api.server.events.EventType; -import net.ess3.bukkit.BukkitPlugin; -import org.bukkit.event.Event; -import org.bukkit.event.Listener; -import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.plugin.EventExecutor; - - -public class BukkitListener implements Listener -{ - private Plugin plugin; - - public BukkitListener(final Plugin plugin) - { - this.plugin = plugin; - } - - public void register(EventListener listener, EventType type, EventPriority priority, boolean ignoreCancelled) - { - Class<? extends Event> event = getEventClass(type); - org.bukkit.event.EventPriority bukkitPriority = getEventPriority(priority); - EventExecutor executor = getEventExecutor(type, listener); - ((BukkitPlugin)plugin).getBukkitServer().getPluginManager().registerEvent(event, this, bukkitPriority, executor, ((BukkitPlugin)plugin).getBukkitPlugin(), ignoreCancelled); - } - - private static Class<? extends Event> getEventClass(final EventType type) - { - switch (type) - { - case PLACE_BLOCK: - return BlockPlaceEvent.class; - } - throw new RuntimeException("Missing Event Class"); - } - - private static org.bukkit.event.EventPriority getEventPriority(final EventPriority priority) - { - switch (priority) - { - case LOWEST: - return org.bukkit.event.EventPriority.LOWEST; - case LOW: - return org.bukkit.event.EventPriority.LOW; - case NORMAL: - return org.bukkit.event.EventPriority.NORMAL; - case HIGH: - return org.bukkit.event.EventPriority.HIGH; - case HIGHEST: - return org.bukkit.event.EventPriority.HIGHEST; - case MONITOR: - return org.bukkit.event.EventPriority.MONITOR; - } - throw new RuntimeException("Missing Event Priority"); - } - - private EventExecutor getEventExecutor(final EventType type, final EventListener listener) - { - switch (type) - { - case PLACE_BLOCK: - return new PlaceBlockExecutor(listener, plugin.getServer()); - } - throw new RuntimeException("Missing Event Executor"); - } -} diff --git a/Essentials/src/net/ess3/bukkit/events/PlaceBlockExecutor.java b/Essentials/src/net/ess3/bukkit/events/PlaceBlockExecutor.java deleted file mode 100644 index 4216da9f3..000000000 --- a/Essentials/src/net/ess3/bukkit/events/PlaceBlockExecutor.java +++ /dev/null @@ -1,32 +0,0 @@ -package net.ess3.bukkit.events; - -import net.ess3.api.ondemand.UserOnDemand; -import net.ess3.api.server.Block; -import net.ess3.api.server.Server; -import net.ess3.api.server.events.EventListener; -import net.ess3.bukkit.BukkitBlockFactory; -import org.bukkit.event.Event; -import org.bukkit.event.EventException; -import org.bukkit.event.Listener; -import org.bukkit.event.block.BlockPlaceEvent; - - -public class PlaceBlockExecutor extends BaseEventExecutor -{ - private final Server server; - public PlaceBlockExecutor(EventListener listener, Server server) - { - super(listener); - this.server = server; - } - - @Override - public void execute(Listener ll, Event event) throws EventException - { - org.bukkit.block.Block bukkitBlock = ((BlockPlaceEvent)event).getBlockPlaced(); - Block block = BukkitBlockFactory.convert(bukkitBlock); - String playername = ((BlockPlaceEvent)event).getPlayer().getName(); - boolean success = listener.onBlockPlace(block, new UserOnDemand(playername, server)); - ((BlockPlaceEvent)event).setCancelled(!success); - } -} diff --git a/Essentials/src/net/ess3/commands/Commandafk.java b/Essentials/src/net/ess3/commands/Commandafk.java index 1daa5b46c..3f15469cc 100644 --- a/Essentials/src/net/ess3/commands/Commandafk.java +++ b/Essentials/src/net/ess3/commands/Commandafk.java @@ -32,7 +32,7 @@ public class Commandafk extends EssentialsCommand //user.sendMessage(_("markedAsNotAway")); if (!user.isHidden()) { - ess.broadcastMessage(user, _("userIsNotAway", user.getDisplayName())); + ess.broadcastMessage(user, _("userIsNotAway", user.getPlayer().getDisplayName())); } user.updateActivity(false); } @@ -41,7 +41,7 @@ public class Commandafk extends EssentialsCommand //user.sendMessage(_("markedAsAway")); if (!user.isHidden()) { - ess.broadcastMessage(user, _("userIsAway", user.getDisplayName())); + ess.broadcastMessage(user, _("userIsAway", user.getPlayer().getDisplayName())); } } } diff --git a/Essentials/src/net/ess3/commands/Commandbackup.java b/Essentials/src/net/ess3/commands/Commandbackup.java index 5cd9737ab..85f423c6f 100644 --- a/Essentials/src/net/ess3/commands/Commandbackup.java +++ b/Essentials/src/net/ess3/commands/Commandbackup.java @@ -2,7 +2,7 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IBackup; -import net.ess3.api.server.CommandSender; +import org.bukkit.command.CommandSender; public class Commandbackup extends EssentialsCommand diff --git a/Essentials/src/net/ess3/commands/Commandbalance.java b/Essentials/src/net/ess3/commands/Commandbalance.java index c5bdaab15..a51083e2f 100644 --- a/Essentials/src/net/ess3/commands/Commandbalance.java +++ b/Essentials/src/net/ess3/commands/Commandbalance.java @@ -2,9 +2,9 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; import net.ess3.permissions.Permissions; import net.ess3.utils.Util; +import org.bukkit.command.CommandSender; public class Commandbalance extends EssentialsCommand diff --git a/Essentials/src/net/ess3/commands/Commandbalancetop.java b/Essentials/src/net/ess3/commands/Commandbalancetop.java index de952eb20..e97e3b514 100644 --- a/Essentials/src/net/ess3/commands/Commandbalancetop.java +++ b/Essentials/src/net/ess3/commands/Commandbalancetop.java @@ -9,7 +9,7 @@ import java.text.DateFormat; import java.util.*; import java.util.Map.Entry; import java.util.concurrent.locks.ReentrantReadWriteLock; -import net.ess3.api.server.CommandSender; +import org.bukkit.command.CommandSender; public class Commandbalancetop extends EssentialsCommand @@ -111,7 +111,7 @@ public class Commandbalancetop extends EssentialsCommand final double userMoney = user.getMoney(); user.updateMoneyCache(userMoney); totalMoney += userMoney; - balances.put(user.getDisplayName(), userMoney); + balances.put(user.getPlayer().getDisplayName(), userMoney); } } diff --git a/Essentials/src/net/ess3/commands/Commandban.java b/Essentials/src/net/ess3/commands/Commandban.java index 85b7ffc1b..91db02db8 100644 --- a/Essentials/src/net/ess3/commands/Commandban.java +++ b/Essentials/src/net/ess3/commands/Commandban.java @@ -6,8 +6,8 @@ import net.ess3.api.IUser; import net.ess3.permissions.Permissions; import net.ess3.user.Ban; import lombok.Cleanup; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class Commandban extends EssentialsCommand @@ -55,13 +55,12 @@ public class Commandban extends EssentialsCommand } user.setBanned(true); - user.kickPlayer(banReason); - for (Player onlinePlayer : server.getOnlinePlayers()) + user.getPlayer().kickPlayer(banReason); + for (Player player : server.getOnlinePlayers()) { - final IUser player = onlinePlayer.getUser(); if (Permissions.BAN_NOTIFY.isAuthorized(player)) { - onlinePlayer.sendMessage(_("playerBanned", senderName, user.getName(), banReason)); + player.sendMessage(_("playerBanned", senderName, user.getName(), banReason)); } } } diff --git a/Essentials/src/net/ess3/commands/Commandbanip.java b/Essentials/src/net/ess3/commands/Commandbanip.java index 0b74e2c66..e773d3a29 100644 --- a/Essentials/src/net/ess3/commands/Commandbanip.java +++ b/Essentials/src/net/ess3/commands/Commandbanip.java @@ -3,7 +3,7 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; import lombok.Cleanup; -import net.ess3.api.server.CommandSender; +import org.bukkit.command.CommandSender; public class Commandbanip extends EssentialsCommand diff --git a/Essentials/src/net/ess3/commands/Commandbigtree.java b/Essentials/src/net/ess3/commands/Commandbigtree.java index 981a81575..fe41b8f96 100644 --- a/Essentials/src/net/ess3/commands/Commandbigtree.java +++ b/Essentials/src/net/ess3/commands/Commandbigtree.java @@ -2,9 +2,9 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.Location; import net.ess3.utils.LocationUtil; //TODO: remove bukkit +import org.bukkit.Location; import org.bukkit.TreeType; @@ -31,9 +31,9 @@ public class Commandbigtree extends EssentialsCommand throw new NotEnoughArgumentsException(); } - final Location loc = LocationUtil.getTarget(user); + final Location loc = LocationUtil.getTarget(user.getPlayer()); final Location safeLocation = LocationUtil.getSafeDestination(loc); - final boolean success = user.getWorld().generateTree(safeLocation, tree); + final boolean success = user.getPlayer().getWorld().generateTree(safeLocation, tree); if (success) { user.sendMessage(_("bigTreeSuccess")); diff --git a/Essentials/src/net/ess3/commands/Commandbreak.java b/Essentials/src/net/ess3/commands/Commandbreak.java index 2ff282708..22b829e6c 100644 --- a/Essentials/src/net/ess3/commands/Commandbreak.java +++ b/Essentials/src/net/ess3/commands/Commandbreak.java @@ -2,8 +2,8 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.Material; import net.ess3.permissions.Permissions; +import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.event.block.BlockBreakEvent; @@ -14,7 +14,7 @@ public class Commandbreak extends EssentialsCommand @Override public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { - final Block block = user.getTargetBlock(null, 20); + final Block block = user.getPlayer().getTargetBlock(null, 20); if (block == null) { throw new NoChargeException(); @@ -29,7 +29,7 @@ public class Commandbreak extends EssentialsCommand } //final List<ItemStack> list = (List<ItemStack>)block.getDrops(); //final BlockBreakEvent event = new BlockBreakEvent(block, user.getBase(), list); - final BlockBreakEvent event = new BlockBreakEvent(block, user.getBase()); + final BlockBreakEvent event = new BlockBreakEvent(block, user.getPlayer()); server.getPluginManager().callEvent(event); if (event.isCancelled()) { diff --git a/Essentials/src/net/ess3/commands/Commandbroadcast.java b/Essentials/src/net/ess3/commands/Commandbroadcast.java index cba57f7c3..c9620cb65 100644 --- a/Essentials/src/net/ess3/commands/Commandbroadcast.java +++ b/Essentials/src/net/ess3/commands/Commandbroadcast.java @@ -1,8 +1,8 @@ package net.ess3.commands; import static net.ess3.I18n._; -import net.ess3.api.server.CommandSender; import net.ess3.utils.Util; +import org.bukkit.command.CommandSender; diff --git a/Essentials/src/net/ess3/commands/Commandburn.java b/Essentials/src/net/ess3/commands/Commandburn.java index d4fe4f5ec..0e2470d56 100644 --- a/Essentials/src/net/ess3/commands/Commandburn.java +++ b/Essentials/src/net/ess3/commands/Commandburn.java @@ -1,8 +1,9 @@ package net.ess3.commands; import static net.ess3.I18n._; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; +import net.ess3.api.IUser; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class Commandburn extends EssentialsCommand @@ -15,10 +16,10 @@ public class Commandburn extends EssentialsCommand throw new NotEnoughArgumentsException(); } - for (Player p : ess.getUserMap().matchUsers(args[0], false, false)) + for (IUser p : ess.getUserMap().matchUsers(args[0], false, false)) { - p.setFireTicks(Integer.parseInt(args[1]) * 20); - sender.sendMessage(_("burnMsg", p.getDisplayName(), Integer.parseInt(args[1]))); + p.getPlayer().setFireTicks(Integer.parseInt(args[1]) * 20); + sender.sendMessage(_("burnMsg", p.getPlayer().getDisplayName(), Integer.parseInt(args[1]))); } } } diff --git a/Essentials/src/net/ess3/commands/Commandclearinventory.java b/Essentials/src/net/ess3/commands/Commandclearinventory.java index 3c91f38a9..deee8b623 100644 --- a/Essentials/src/net/ess3/commands/Commandclearinventory.java +++ b/Essentials/src/net/ess3/commands/Commandclearinventory.java @@ -2,53 +2,33 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; import net.ess3.permissions.Permissions; import java.util.List; -import net.ess3.api.server.Player; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class Commandclearinventory extends EssentialsCommand { - //TODO: Cleanup @Override public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { if (args.length > 0 && Permissions.CLEARINVENTORY_OTHERS.isAuthorized(user)) { - //TODO: Fix fringe user match case. - if (args[0].length() >= 3) + IUser p = ess.getUserMap().matchUser(args[0], false, false); + if (p != null) { - List<Player> online = server.matchPlayer(args[0]); - - if (!online.isEmpty()) - { - for (Player p : online) - { - p.getInventory().clear(); - user.sendMessage(_("inventoryClearedOthers", p.getDisplayName())); - } - return; - } - throw new Exception(_("playerNotFound")); + p.getPlayer().getInventory().clear(); + user.sendMessage(_("inventoryClearedOthers", p.getPlayer().getDisplayName())); } else { - Player p = ess.getUserMap().matchUser(args[0], false, false); - if (p != null) - { - p.getInventory().clear(); - user.sendMessage(_("inventoryClearedOthers", p.getDisplayName())); - } - else - { - throw new Exception(_("playerNotFound")); - } + throw new Exception(_("playerNotFound")); } } else { - user.getInventory().clear(); + user.getPlayer().getInventory().clear(); user.sendMessage(_("inventoryCleared")); } } diff --git a/Essentials/src/net/ess3/commands/Commandcompass.java b/Essentials/src/net/ess3/commands/Commandcompass.java index 8554c4608..82e164d21 100644 --- a/Essentials/src/net/ess3/commands/Commandcompass.java +++ b/Essentials/src/net/ess3/commands/Commandcompass.java @@ -9,7 +9,7 @@ public class Commandcompass extends EssentialsCommand @Override public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { - final int bearing = (int)(user.getLocation().getYaw() + 180 + 360) % 360; + final int bearing = (int)(user.getPlayer().getLocation().getYaw() + 180 + 360) % 360; String dir; if (bearing < 23) { diff --git a/Essentials/src/net/ess3/commands/Commanddelhome.java b/Essentials/src/net/ess3/commands/Commanddelhome.java index fc3e220bc..334404349 100644 --- a/Essentials/src/net/ess3/commands/Commanddelhome.java +++ b/Essentials/src/net/ess3/commands/Commanddelhome.java @@ -5,8 +5,6 @@ import net.ess3.api.IUser; import net.ess3.permissions.Permissions; import java.util.Locale; import lombok.Cleanup; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; public class Commanddelhome extends EssentialsCommand diff --git a/Essentials/src/net/ess3/commands/Commandkillall.java b/Essentials/src/net/ess3/commands/Commandkillall.java index a04eccd7d..dc43e2071 100644 --- a/Essentials/src/net/ess3/commands/Commandkillall.java +++ b/Essentials/src/net/ess3/commands/Commandkillall.java @@ -2,13 +2,13 @@ package net.ess3.commands; import static net.ess3.I18n._; -import net.ess3.bukkit.Mob; +import net.ess3.bukkit.LivingEntities; import java.util.Collections; import java.util.Locale; import static net.ess3.I18n._; import net.ess3.api.server.CommandSender; import net.ess3.api.server.World; -import net.ess3.bukkit.Mob; +import net.ess3.bukkit.LivingEntities; //TODO: remove these import org.bukkit.Chunk; import org.bukkit.entity.*; @@ -78,11 +78,11 @@ public class Commandkillall extends EssentialsCommand Class<? extends Entity> entityClass = null; if (!animals && !monster && !all) { - if (Mob.fromName(killType) == null) + if (LivingEntities.fromName(killType) == null) { throw new Exception(_("invalidMob")); } - entityClass = Mob.fromName(killType).getType().getEntityClass(); + entityClass = LivingEntities.fromName(killType).getType().getEntityClass(); } int numKills = 0; for (Chunk chunk : world.getLoadedChunks()) diff --git a/Essentials/src/net/ess3/commands/Commandkittycannon.java b/Essentials/src/net/ess3/commands/Commandkittycannon.java index 80dd7c4dd..1443b228f 100644 --- a/Essentials/src/net/ess3/commands/Commandkittycannon.java +++ b/Essentials/src/net/ess3/commands/Commandkittycannon.java @@ -4,7 +4,7 @@ package net.ess3.commands; import java.util.Random; import net.ess3.api.IUser; import net.ess3.api.server.Location; -import net.ess3.bukkit.Mob; +import net.ess3.bukkit.LivingEntities; //TODO: remove this import org.bukkit.entity.Ocelot; @@ -16,7 +16,7 @@ public class Commandkittycannon extends EssentialsCommand @Override protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception { - final Mob cat = Mob.OCELOT; + final LivingEntities cat = LivingEntities.OCELOT; final Ocelot ocelot = (Ocelot)cat.spawn(user, server, user.getEyeLocation()); if (ocelot == null) { diff --git a/Essentials/src/net/ess3/commands/Commandspawner.java b/Essentials/src/net/ess3/commands/Commandspawner.java index 57eaec651..7b5acaf43 100644 --- a/Essentials/src/net/ess3/commands/Commandspawner.java +++ b/Essentials/src/net/ess3/commands/Commandspawner.java @@ -1,7 +1,7 @@ package net.ess3.commands; import static net.ess3.I18n._; -import net.ess3.bukkit.Mob; +import net.ess3.bukkit.LivingEntities; import net.ess3.economy.Trade; import net.ess3.api.IUser; import net.ess3.permissions.SpawnerPermissions; @@ -21,7 +21,7 @@ public class Commandspawner extends EssentialsCommand { if (args.length < 1 || args[0].length() < 2) { - throw new NotEnoughArgumentsException(_("mobsAvailable", Util.joinList(Mob.getMobList()))); + throw new NotEnoughArgumentsException(_("mobsAvailable", Util.joinList(LivingEntities.getMobList()))); } final Location target = LocationUtil.getTarget(user); @@ -34,8 +34,8 @@ public class Commandspawner extends EssentialsCommand { String name = args[0]; - Mob mob = null; - mob = Mob.fromName(name); + LivingEntities mob = null; + mob = LivingEntities.fromName(name); if (mob == null) { user.sendMessage(_("invalidMob")); diff --git a/Essentials/src/net/ess3/commands/Commandspawnmob.java b/Essentials/src/net/ess3/commands/Commandspawnmob.java index d83749272..21f79a657 100644 --- a/Essentials/src/net/ess3/commands/Commandspawnmob.java +++ b/Essentials/src/net/ess3/commands/Commandspawnmob.java @@ -8,8 +8,8 @@ import static net.ess3.I18n._; import net.ess3.api.ISettings; import net.ess3.api.IUser; import net.ess3.api.server.Location; -import net.ess3.bukkit.Mob; -import net.ess3.bukkit.Mob.MobException; +import net.ess3.bukkit.LivingEntities; +import net.ess3.bukkit.LivingEntities.MobException; import net.ess3.permissions.SpawnmobPermissions; import net.ess3.utils.LocationUtil; import net.ess3.utils.Util; @@ -27,7 +27,7 @@ public class Commandspawnmob extends EssentialsCommand { if (args.length < 1) { - final Set<String> mobList = Mob.getMobList(); + final Set<String> mobList = LivingEntities.getMobList(); final Set<String> availableList = new HashSet<String>(); for (String mob : mobList) { @@ -66,11 +66,11 @@ public class Commandspawnmob extends EssentialsCommand Entity spawnedMob = null; - Mob mob = null; + LivingEntities mob = null; Entity spawnedMount = null; - Mob mobMount = null; + LivingEntities mobMount = null; - mob = Mob.fromName(mobType); + mob = LivingEntities.fromName(mobType); if (mob == null) { throw new Exception(_("invalidMob")); @@ -104,7 +104,7 @@ public class Commandspawnmob extends EssentialsCommand if (mountType != null) { - mobMount = Mob.fromName(mountType); + mobMount = LivingEntities.fromName(mountType); if (mobMount == null) { user.sendMessage(_("invalidMob")); diff --git a/Essentials/src/net/ess3/commands/Commandtppos.java b/Essentials/src/net/ess3/commands/Commandtppos.java index 3cf658f71..72c16d415 100644 --- a/Essentials/src/net/ess3/commands/Commandtppos.java +++ b/Essentials/src/net/ess3/commands/Commandtppos.java @@ -2,10 +2,9 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Location; import net.ess3.economy.Trade; -//TODO: remove bukkit +import org.bukkit.Location; +import org.bukkit.command.CommandSender; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -22,7 +21,7 @@ public class Commandtppos extends EssentialsCommand final int x = Integer.parseInt(args[0]); final int y = Integer.parseInt(args[1]); final int z = Integer.parseInt(args[2]); - final Location location = new Location(user.getWorld(), x, y, z); + final Location location = new Location(user.getPlayer().getWorld(), x, y, z); if (args.length > 3) { location.setYaw((Float.parseFloat(args[3]) + 180 + 360) % 360); @@ -50,7 +49,7 @@ public class Commandtppos extends EssentialsCommand final int x = Integer.parseInt(args[1]); final int y = Integer.parseInt(args[2]); final int z = Integer.parseInt(args[3]); - final Location location = new Location(user.getWorld(), x, y, z); + final Location location = new Location(user.getPlayer().getWorld(), x, y, z); if (args.length > 4) { location.setYaw((Float.parseFloat(args[4]) + 180 + 360) % 360); diff --git a/Essentials/src/net/ess3/commands/Commandtree.java b/Essentials/src/net/ess3/commands/Commandtree.java index b1dc68139..435b37103 100644 --- a/Essentials/src/net/ess3/commands/Commandtree.java +++ b/Essentials/src/net/ess3/commands/Commandtree.java @@ -2,9 +2,8 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.Location; import net.ess3.utils.LocationUtil; -//TODO: remove bukkit +import org.bukkit.Location; import org.bukkit.TreeType; @@ -55,9 +54,9 @@ public class Commandtree extends EssentialsCommand throw new NotEnoughArgumentsException(); } - final Location loc = LocationUtil.getTarget(user); + final Location loc = LocationUtil.getTarget(user.getPlayer()); final Location safeLocation = LocationUtil.getSafeDestination(loc); - final boolean success = user.getWorld().generateTree(safeLocation, tree); + final boolean success = user.getPlayer().getWorld().generateTree(safeLocation, tree); if (success) { user.sendMessage(_("treeSpawned")); diff --git a/Essentials/src/net/ess3/commands/Commandunban.java b/Essentials/src/net/ess3/commands/Commandunban.java index 75d9081bd..9144887d3 100644 --- a/Essentials/src/net/ess3/commands/Commandunban.java +++ b/Essentials/src/net/ess3/commands/Commandunban.java @@ -3,7 +3,7 @@ package net.ess3.commands; import lombok.Cleanup; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; +import org.bukkit.command.CommandSender; public class Commandunban extends EssentialsCommand @@ -16,18 +16,11 @@ public class Commandunban extends EssentialsCommand throw new NotEnoughArgumentsException(); } - try - { - @Cleanup - final IUser player = ess.getUserMap().matchUser(args[0], false, true); - player.acquireWriteLock(); - player.getData().setBan(null); - player.setBanned(false); - sender.sendMessage(_("unbannedPlayer")); - } - catch (NoSuchFieldException e) - { - throw new Exception(_("playerNotFound"), e); - } + @Cleanup + final IUser player = ess.getUserMap().matchUser(args[0], false, true); + player.acquireWriteLock(); + player.getData().setBan(null); + player.setBanned(false); + sender.sendMessage(_("unbannedPlayer")); } } diff --git a/Essentials/src/net/ess3/commands/Commandunbanip.java b/Essentials/src/net/ess3/commands/Commandunbanip.java index 7243eb370..2feaa2e5a 100644 --- a/Essentials/src/net/ess3/commands/Commandunbanip.java +++ b/Essentials/src/net/ess3/commands/Commandunbanip.java @@ -3,7 +3,7 @@ package net.ess3.commands; import lombok.Cleanup; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; +import org.bukkit.command.CommandSender; public class Commandunbanip extends EssentialsCommand diff --git a/Essentials/src/net/ess3/commands/Commandunlimited.java b/Essentials/src/net/ess3/commands/Commandunlimited.java index 9f182a6a7..2a2318a1d 100644 --- a/Essentials/src/net/ess3/commands/Commandunlimited.java +++ b/Essentials/src/net/ess3/commands/Commandunlimited.java @@ -2,13 +2,13 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Material; import net.ess3.permissions.Permissions; import net.ess3.permissions.UnlimitedItemPermissions; import java.util.Locale; import java.util.Set; import lombok.Cleanup; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; public class Commandunlimited extends EssentialsCommand @@ -41,7 +41,7 @@ public class Commandunlimited extends EssentialsCommand final Set<Material> itemList = target.getData().getUnlimited(); for(Material mat : itemList) { - toggleUnlimited(user, target, mat.getName()); + toggleUnlimited(user, target, mat.toString()); } } @@ -68,7 +68,7 @@ public class Commandunlimited extends EssentialsCommand output.append(", "); } first = false; - final String matname = mater.getName().toLowerCase(Locale.ENGLISH).replace("_", ""); + final String matname = mater.toString().toLowerCase(Locale.ENGLISH).replace("_", ""); output.append(matname); } @@ -100,9 +100,9 @@ public class Commandunlimited extends EssentialsCommand if (user != target) { - user.sendMessage(_(message, itemname, target.getDisplayName())); + user.sendMessage(_(message, itemname, target.getPlayer().getDisplayName())); } - target.sendMessage(_(message, itemname, target.getDisplayName())); + target.sendMessage(_(message, itemname, target.getPlayer().getDisplayName())); target.acquireWriteLock(); target.getData().setUnlimited(stack.getType(), enableUnlimited); diff --git a/Essentials/src/net/ess3/commands/Commandwarp.java b/Essentials/src/net/ess3/commands/Commandwarp.java index ff5e0af99..53a86941f 100644 --- a/Essentials/src/net/ess3/commands/Commandwarp.java +++ b/Essentials/src/net/ess3/commands/Commandwarp.java @@ -11,8 +11,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Locale; -//TODO: remove bukkit -import net.ess3.api.server.CommandSender; +import org.bukkit.command.CommandSender; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; diff --git a/Essentials/src/net/ess3/commands/Commandweather.java b/Essentials/src/net/ess3/commands/Commandweather.java index 7ed487873..66931b2a5 100644 --- a/Essentials/src/net/ess3/commands/Commandweather.java +++ b/Essentials/src/net/ess3/commands/Commandweather.java @@ -2,8 +2,8 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.World; +import org.bukkit.World; +import org.bukkit.command.CommandSender; public class Commandweather extends EssentialsCommand @@ -18,7 +18,7 @@ public class Commandweather extends EssentialsCommand } final boolean isStorm = args[0].equalsIgnoreCase("storm"); - final World world = user.getWorld(); + final World world = user.getPlayer().getWorld(); if (args.length > 1) { diff --git a/Essentials/src/net/ess3/commands/Commandwhois.java b/Essentials/src/net/ess3/commands/Commandwhois.java index dee99fdc7..b6eeaa2db 100644 --- a/Essentials/src/net/ess3/commands/Commandwhois.java +++ b/Essentials/src/net/ess3/commands/Commandwhois.java @@ -1,7 +1,5 @@ package net.ess3.commands; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; import java.util.Locale; import lombok.Cleanup; import static net.ess3.I18n._; @@ -12,6 +10,8 @@ import net.ess3.permissions.Permissions; import net.ess3.user.UserData; import net.ess3.utils.DateUtil; import net.ess3.utils.Util; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; @@ -25,7 +25,7 @@ public class Commandwhois extends EssentialsCommand throw new NotEnoughArgumentsException(); } boolean showhidden = false; - if (sender instanceof Player) + if (sender instanceof IUser) { if (Permissions.LIST_HIDDEN.isAuthorized(sender)) { @@ -45,7 +45,7 @@ public class Commandwhois extends EssentialsCommand for (Player onlinePlayer : server.getOnlinePlayers()) { @Cleanup - final IUser user = onlinePlayer.getUser(); + final IUser user = ess.getUserMap().getUser(onlinePlayer); if (user.isHidden() && !showhidden) { @@ -62,22 +62,22 @@ public class Commandwhois extends EssentialsCommand foundPlayer = true; sender.sendMessage(_("whoisTop", user.getName())); user.setDisplayNick(); - sender.sendMessage(_("whoisIs", user.getDisplayName(), user.getName())); - sender.sendMessage(_("whoisHealth", user.getHealth())); - sender.sendMessage(_("whoisExp", SetExpFix.getTotalExperience(user), user.getLevel())); - sender.sendMessage(_("whoisLocation", user.getLocation().getWorld().getName(), user.getLocation().getBlockX(), user.getLocation().getBlockY(), user.getLocation().getBlockZ())); + 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(_("whoisMoney", Util.displayCurrency(user.getMoney(), ess))); - sender.sendMessage(_("whoisIPAddress", user.getAddress().getAddress().toString())); + sender.sendMessage(_("whoisIPAddress", user.getPlayer().getAddress().getAddress().toString())); final String location = user.getData().getGeolocation(); if (location != null && Permissions.GEOIP_SHOW.isAuthorized(sender)) { sender.sendMessage(_("whoisGeoLocation", location)); } - sender.sendMessage(_("whoisGamemode", _(user.getGameMode().toString().toLowerCase(Locale.ENGLISH)))); + sender.sendMessage(_("whoisGamemode", _(user.getPlayer().getGameMode().toString().toLowerCase(Locale.ENGLISH)))); sender.sendMessage(_("whoisGod", (user.isGodModeEnabled() ? _("true") : _("false")))); sender.sendMessage(_("whoisOP", (user.isOp() ? _("true") : _("false")))); - sender.sendMessage(_("whoisFly", user.getAllowFlight() ? _("true") : _("false"), user.isFlying() ? _("flying") : _("notFlying"))); + 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() ? user.getTimestamp(UserData.TimestampType.JAIL) > 0 diff --git a/Essentials/src/net/ess3/commands/Commandworkbench.java b/Essentials/src/net/ess3/commands/Commandworkbench.java index 8c54b172f..c107dfc80 100644 --- a/Essentials/src/net/ess3/commands/Commandworkbench.java +++ b/Essentials/src/net/ess3/commands/Commandworkbench.java @@ -1,20 +1,13 @@ package net.ess3.commands; -import net.ess3.api.server.Server; -import net.ess3.user.User; +import net.ess3.api.IUser; public class Commandworkbench extends EssentialsCommand { - public Commandworkbench() - { - super("workbench"); - } - - @Override - public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception + public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { - user.openWorkbench(null, true); + user.getPlayer().openWorkbench(null, true); } } diff --git a/Essentials/src/net/ess3/commands/Commandworld.java b/Essentials/src/net/ess3/commands/Commandworld.java index 4d8b1420f..bff368964 100644 --- a/Essentials/src/net/ess3/commands/Commandworld.java +++ b/Essentials/src/net/ess3/commands/Commandworld.java @@ -3,11 +3,11 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.economy.Trade; import net.ess3.api.IUser; -import net.ess3.api.server.World; -import net.ess3.api.server.Location; import net.ess3.permissions.WorldPermissions; import java.util.List; //TODO: remove bukkit +import org.bukkit.Location; +import org.bukkit.World; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -36,7 +36,7 @@ public class Commandworld extends EssentialsCommand { return; } - world = user.getWorld() == nether ? worlds.get(0) : nether; + world = user.getPlayer().getWorld() == nether ? worlds.get(0) : nether; } else { @@ -58,11 +58,11 @@ public class Commandworld extends EssentialsCommand } double factor; - if (user.getWorld().getEnvironment() == World.Environment.NETHER && world.getEnvironment() == World.Environment.NORMAL) + if (user.getPlayer().getWorld().getEnvironment() == World.Environment.NETHER && world.getEnvironment() == World.Environment.NORMAL) { factor = 8.0; } - else if (user.getWorld().getEnvironment() == World.Environment.NORMAL && world.getEnvironment() == World.Environment.NETHER) + else if (user.getPlayer().getWorld().getEnvironment() == World.Environment.NORMAL && world.getEnvironment() == World.Environment.NETHER) { factor = 1.0 / 8.0; } @@ -71,8 +71,8 @@ public class Commandworld extends EssentialsCommand factor = 1.0; } - final Location loc = user.getLocation(); - final Location target = Location.create(world, loc.getBlockX() * factor + .5, loc.getBlockY(), loc.getBlockZ() * factor + .5); + final Location loc = user.getPlayer().getLocation(); + final Location target = new Location(world, loc.getBlockX() * factor + .5, loc.getBlockY(), loc.getBlockZ() * factor + .5); final Trade charge = new Trade(commandName, ess); charge.isAffordableFor(user); diff --git a/Essentials/src/net/ess3/commands/Commandworth.java b/Essentials/src/net/ess3/commands/Commandworth.java index deda51c6c..99bed8a21 100644 --- a/Essentials/src/net/ess3/commands/Commandworth.java +++ b/Essentials/src/net/ess3/commands/Commandworth.java @@ -3,9 +3,9 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.utils.Util; import net.ess3.api.IUser; -import net.ess3.api.server.ItemStack; import java.util.Locale; -import net.ess3.api.server.CommandSender; +import org.bukkit.command.CommandSender; +import org.bukkit.inventory.ItemStack; public class Commandworth extends EssentialsCommand @@ -14,7 +14,7 @@ public class Commandworth extends EssentialsCommand @Override public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { - ItemStack iStack = user.getItemInHand(); + ItemStack iStack = user.getPlayer().getItemInHand(); int amount = iStack.getAmount(); if (args.length > 0) diff --git a/Essentials/src/net/ess3/commands/EssentialsCommand.java b/Essentials/src/net/ess3/commands/EssentialsCommand.java index 6afd42f01..5eedf4ce0 100644 --- a/Essentials/src/net/ess3/commands/EssentialsCommand.java +++ b/Essentials/src/net/ess3/commands/EssentialsCommand.java @@ -4,14 +4,12 @@ import static net.ess3.I18n._; import net.ess3.api.IEssentials; import net.ess3.api.IEssentialsModule; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Server; -import net.ess3.api.server.Player; import net.ess3.economy.Trade; import net.ess3.permissions.AbstractSuperpermsPermission; -import java.util.List; import java.util.logging.Logger; +import org.bukkit.Server; import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; public abstract class EssentialsCommand extends AbstractSuperpermsPermission implements IEssentialsCommand diff --git a/Essentials/src/net/ess3/commands/EssentialsCommandHandler.java b/Essentials/src/net/ess3/commands/EssentialsCommandHandler.java index 3d026d5c1..231f7b756 100644 --- a/Essentials/src/net/ess3/commands/EssentialsCommandHandler.java +++ b/Essentials/src/net/ess3/commands/EssentialsCommandHandler.java @@ -5,14 +5,14 @@ import java.util.logging.Level; import java.util.logging.Logger; import static net.ess3.I18n._; import net.ess3.api.*; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; -import net.ess3.api.server.Plugin; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; import org.bukkit.command.PluginCommand; import org.bukkit.command.PluginCommandYamlParser; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; public class EssentialsCommandHandler implements ICommandHandler @@ -101,13 +101,6 @@ public class EssentialsCommandHandler implements ICommandHandler try { - IUser user = null; - if (sender instanceof Player) - { - user = ((Player)sender).getUser(); - LOGGER.log(Level.INFO, String.format("[PLAYER_COMMAND] %s: /%s %s ", ((Player)sender).getName(), commandLabel, EssentialsCommand.getFinalArg(args, 0))); - } - // Check for disabled commands if (disabled) { @@ -136,10 +129,17 @@ public class EssentialsCommandHandler implements ICommandHandler // Check authorization if (sender != null && !cmd.isAuthorized(sender)) { - LOGGER.log(Level.WARNING, _("deniedAccessCommand", user.getName())); - user.sendMessage(_("noAccessCommand")); + LOGGER.log(Level.WARNING, _("deniedAccessCommand", sender.getName())); + sender.sendMessage(_("noAccessCommand")); return true; } + + IUser user = null; + if (sender instanceof Player) + { + user = ess.getUserMap().getUser((Player)sender); + LOGGER.log(Level.INFO, String.format("[PLAYER_COMMAND] %s: /%s %s ", ((Player)sender).getName(), commandLabel, EssentialsCommand.getFinalArg(args, 0))); + } // Run the command try @@ -151,6 +151,7 @@ public class EssentialsCommandHandler implements ICommandHandler else { user.acquireReadLock(); + user.setPlayerCache((Player)sender); try { cmd.run(user, command, commandLabel, args); diff --git a/Essentials/src/net/ess3/commands/IEssentialsCommand.java b/Essentials/src/net/ess3/commands/IEssentialsCommand.java index 2466b4c55..34f1ba020 100644 --- a/Essentials/src/net/ess3/commands/IEssentialsCommand.java +++ b/Essentials/src/net/ess3/commands/IEssentialsCommand.java @@ -4,8 +4,8 @@ import net.ess3.api.IEssentials; import net.ess3.api.IEssentialsModule; import net.ess3.api.IPermission; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; public interface IEssentialsCommand extends IPermission diff --git a/Essentials/src/net/ess3/craftbukkit/SetExpFix.java b/Essentials/src/net/ess3/craftbukkit/SetExpFix.java index 90962bfcb..17efe7514 100644 --- a/Essentials/src/net/ess3/craftbukkit/SetExpFix.java +++ b/Essentials/src/net/ess3/craftbukkit/SetExpFix.java @@ -1,11 +1,13 @@ package net.ess3.craftbukkit; +import org.bukkit.entity.Player; + public class SetExpFix { //This method is used to update both the recorded total experience and displayed total experience. //We reset both types to prevent issues. - public static void setTotalExperience(final IPlayer player, final int exp) + public static void setTotalExperience(final Player player, final int exp) { if (exp < 0) { @@ -37,7 +39,7 @@ public class SetExpFix } } - private static int getExpToLevel(final IPlayer player) + private static int getExpToLevel(final Player player) { return getExpToLevel(player.getLevel()); } @@ -49,7 +51,7 @@ public class SetExpFix //This method is required because the bukkit player.getTotalExperience() method, shows exp that has been 'spent'. //Without this people would be able to use exp and then still sell it. - public static int getTotalExperience(final IPlayer player) + public static int getTotalExperience(final Player player) { int exp = (int)Math.round(getExpToLevel(player) * player.getExp()); int currentLevel = player.getLevel(); diff --git a/Essentials/src/net/ess3/economy/Trade.java b/Essentials/src/net/ess3/economy/Trade.java index 5dc5322e8..c95b4f7ee 100644 --- a/Essentials/src/net/ess3/economy/Trade.java +++ b/Essentials/src/net/ess3/economy/Trade.java @@ -1,10 +1,7 @@ package net.ess3.economy; -import java.io.File; import java.io.FileWriter; import java.io.IOException; -import java.text.DateFormat; -import java.util.Date; import java.util.Locale; import java.util.Map; import java.util.logging.Level; @@ -15,10 +12,10 @@ import net.ess3.api.ChargeException; import net.ess3.api.IEssentials; import net.ess3.api.ISettings; import net.ess3.api.IUser; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Location; import net.ess3.permissions.NoCommandCostPermissions; import net.ess3.permissions.Permissions; +import org.bukkit.Location; +import org.bukkit.inventory.ItemStack; @@ -129,13 +126,13 @@ public class Trade { final ItemStack stack = dropStack.clone(); stack.setAmount(maxStackSize); - itemStacks[i] = user.getWorld().dropItem(loc, stack); + itemStacks[i] = user.getWorld().dropItem(loc, stack).getItemStack(); } if (leftover > 0) { final ItemStack stack = dropStack.clone(); stack.setAmount(leftover); - itemStacks[stacks] = user.getWorld().dropItem(loc, stack); + itemStacks[stacks] = user.getWorld().dropItem(loc, stack).getItemStack(); } } } @@ -143,7 +140,7 @@ public class Trade { success = user.getInventory().addAllItems(true, getItemStack()); } - user.updateInventory(); + user.getPlayer().updateInventory(); } if (getExperience() != null) { diff --git a/Essentials/src/net/ess3/economy/WorthHolder.java b/Essentials/src/net/ess3/economy/WorthHolder.java index fbd20360c..5b1f94736 100644 --- a/Essentials/src/net/ess3/economy/WorthHolder.java +++ b/Essentials/src/net/ess3/economy/WorthHolder.java @@ -1,6 +1,5 @@ package net.ess3.economy; -import net.ess3.api.server.ItemStack; import java.io.File; import java.io.IOException; import java.util.HashMap; @@ -10,6 +9,7 @@ import net.ess3.api.IWorth; import net.ess3.storage.AsyncStorageObjectHolder; import net.ess3.storage.EnchantmentLevel; import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemStack; import org.bukkit.material.MaterialData; diff --git a/Essentials/src/net/ess3/listener/EssentialsBlockListener.java b/Essentials/src/net/ess3/listener/EssentialsBlockListener.java index 9d69aff04..2ef258fb0 100644 --- a/Essentials/src/net/ess3/listener/EssentialsBlockListener.java +++ b/Essentials/src/net/ess3/listener/EssentialsBlockListener.java @@ -1,37 +1,44 @@ package net.ess3.listener; +import lombok.Cleanup; import net.ess3.api.IEssentials; import net.ess3.api.IUser; -import net.ess3.api.ondemand.OnDemand; -import net.ess3.api.server.Block; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.events.EventListener; -import net.ess3.api.server.events.EventPriority; -import net.ess3.api.server.events.EventType; +import net.ess3.bukkit.BukkitMaterial; +import org.bukkit.GameMode; +import org.bukkit.block.Block; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.inventory.ItemStack; -public class EssentialsBlockListener extends EventListener + +public class EssentialsBlockListener implements Listener { private final transient IEssentials ess; public EssentialsBlockListener(final IEssentials ess) { - super(); this.ess = ess; - register(EventType.PLACE_BLOCK, EventPriority.LOW, true); } - @Override - public boolean onBlockPlace(final Block placedBlock, final OnDemand<IUser> user) + @EventHandler(priority = EventPriority.LOW,ignoreCancelled=true) + public void onBlockPlace(final BlockPlaceEvent event) { - final ItemStack itemstack = placedBlock.convertToItem(); - if (placedBlock == null) + final Block block = event.getBlockPlaced(); + final ItemStack itemstack = BukkitMaterial.convertBlockToItem(block.getType(), block.getData()); + if (itemstack == null) { - return true; + return; } + + @Cleanup + final IUser user = ess.getUserMap().getUser(event.getPlayer()); + user.acquireReadLock(); - final boolean unlimitedForUser = user.get().getData().hasUnlimited(itemstack.getType()); - if (unlimitedForUser && user.get().isInSurvivalMode()) + final boolean unlimitedForUser = user.getData().hasUnlimited(itemstack.getType()); + if (unlimitedForUser && user.getPlayer().getGameMode() != GameMode.CREATIVE) { ess.getPlugin().scheduleSyncDelayedTask( new Runnable() @@ -39,11 +46,10 @@ public class EssentialsBlockListener extends EventListener @Override public void run() { - user.get().getInventory().addItem(itemstack); - user.get().updateInventory(); + user.getPlayer().getInventory().addItem(itemstack); + user.getPlayer().updateInventory(); } }); } - return true; } } diff --git a/Essentials/src/net/ess3/listener/EssentialsEntityListener.java b/Essentials/src/net/ess3/listener/EssentialsEntityListener.java index f25376f62..9c8c80803 100644 --- a/Essentials/src/net/ess3/listener/EssentialsEntityListener.java +++ b/Essentials/src/net/ess3/listener/EssentialsEntityListener.java @@ -63,7 +63,7 @@ public class EssentialsEntityListener implements Listener { event.setCancelled(true); } - final ItemStack itemstack = attacker.getItemInHand(); + final ItemStack itemstack = ((Player)eAttack).getItemInHand(); final List<String> commandList = attacker.getData().getPowertool(itemstack.getType()); if (commandList != null && !commandList.isEmpty()) { @@ -71,13 +71,13 @@ public class EssentialsEntityListener implements Listener { if (command != null && !command.isEmpty()) { - ess.scheduleSyncDelayedTask( + ess.getPlugin().scheduleSyncDelayedTask( new Runnable() { @Override public void run() { - attacker.getServer().dispatchCommand(attacker.getBase(), command.replaceAll("\\{player\\}", defender.getName())); + attacker.getServer().dispatchCommand(((Player)eAttack), command.replaceAll("\\{player\\}", defender.getName())); } }); event.setCancelled(true); diff --git a/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java b/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java index 04a12aada..b09cc84cb 100644 --- a/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java +++ b/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java @@ -290,7 +290,7 @@ public class EssentialsPlayerListener implements Listener if (user.getData().hasUnlimited(event.getBucket())) { event.getItemStack().setType(event.getBucket()); - ess.scheduleSyncDelayedTask(new Runnable() + ess.getPlugin().scheduleSyncDelayedTask(new Runnable() { @Override public void run() @@ -424,7 +424,7 @@ public class EssentialsPlayerListener implements Listener else { used = true; - ess.scheduleSyncDelayedTask( + ess.getPlugin().scheduleSyncDelayedTask( new Runnable() { @Override diff --git a/Essentials/src/net/ess3/metrics/Metrics.java b/Essentials/src/net/ess3/metrics/Metrics.java index 643d86d30..0d1258e91 100644 --- a/Essentials/src/net/ess3/metrics/Metrics.java +++ b/Essentials/src/net/ess3/metrics/Metrics.java @@ -30,7 +30,11 @@ import java.net.URLConnection; import java.net.URLEncoder; import java.util.*; import java.util.logging.Level; -import net.ess3.api.server.Plugin; +import org.bukkit.Bukkit; +import org.bukkit.configuration.InvalidConfigurationException; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.PluginDescriptionFile; /** @@ -189,7 +193,7 @@ public class Metrics } // Begin hitting the server with glorious data - taskId = plugin.scheduleAsyncRepeatingTask(new Runnable() + taskId = plugin.getServer().getScheduler().scheduleAsyncRepeatingTask(plugin, new Runnable() { private boolean firstPost = true; @@ -203,7 +207,7 @@ public class Metrics // Disable Task, if it is running and the server owner decided to opt-out if (isOptOut() && taskId > 0) { - plugin.cancelTask(taskId); + plugin.getServer().getScheduler().cancelTask(taskId); taskId = -1; } } @@ -300,7 +304,7 @@ public class Metrics // Disable Task, if it is running if (taskId >= 0) { - this.plugin.cancelTask(taskId); + this.plugin.getServer().getScheduler().cancelTask(taskId); taskId = -1; } } diff --git a/Essentials/src/net/ess3/permissions/AbstractSuperpermsPermission.java b/Essentials/src/net/ess3/permissions/AbstractSuperpermsPermission.java index 327299b99..14710a995 100644 --- a/Essentials/src/net/ess3/permissions/AbstractSuperpermsPermission.java +++ b/Essentials/src/net/ess3/permissions/AbstractSuperpermsPermission.java @@ -1,9 +1,11 @@ package net.ess3.permissions; +import net.ess3.bukkit.PermissionFactory; import net.ess3.api.IPermission; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Permission; import net.ess3.utils.Util; +import org.bukkit.command.CommandSender; +import org.bukkit.permissions.Permission; +import org.bukkit.permissions.PermissionDefault; public abstract class AbstractSuperpermsPermission implements IPermission @@ -21,7 +23,7 @@ public abstract class AbstractSuperpermsPermission implements IPermission } else { - return null;// Util.registerPermission(getPermission(), getPermissionDefault()); + return PermissionFactory.registerPermission(getPermissionName(), getPermissionDefault()); } } @@ -31,9 +33,9 @@ public abstract class AbstractSuperpermsPermission implements IPermission */ @Override - public Permission.Default getPermissionDefault() + public PermissionDefault getPermissionDefault() { - return Permission.Default.OP; + return PermissionDefault.OP; } diff --git a/Essentials/src/net/ess3/permissions/GivePermissions.java b/Essentials/src/net/ess3/permissions/GivePermissions.java index a3ced5155..8064c0715 100644 --- a/Essentials/src/net/ess3/permissions/GivePermissions.java +++ b/Essentials/src/net/ess3/permissions/GivePermissions.java @@ -1,15 +1,14 @@ package net.ess3.permissions; -import net.ess3.api.IPermission; -import net.ess3.api.server.Material; -import net.ess3.api.server.Permission; -import java.util.HashMap; +import java.util.EnumMap; import java.util.Locale; -import java.util.Map; +import net.ess3.api.IPermission; +import org.bukkit.Material; +import org.bukkit.permissions.PermissionDefault; public class GivePermissions { - private static Map<Material, IPermission> permissions = new HashMap<Material, IPermission>(); + private static EnumMap<Material, IPermission> permissions = new EnumMap<Material, IPermission>(Material.class); public static IPermission getPermission(final Material mat) { @@ -19,9 +18,9 @@ public class GivePermissions { perm = new BasePermission("essentials.give.item-", mat.toString().toLowerCase(Locale.ENGLISH).replace("_", "")) { @Override - public Permission.Default getPermissionDefault() + public PermissionDefault getPermissionDefault() { - return Permission.Default.TRUE; + return PermissionDefault.TRUE; } }; permissions.put(mat, perm); diff --git a/Essentials/src/net/ess3/permissions/ItemPermissions.java b/Essentials/src/net/ess3/permissions/ItemPermissions.java index c0d4b587d..959f78444 100644 --- a/Essentials/src/net/ess3/permissions/ItemPermissions.java +++ b/Essentials/src/net/ess3/permissions/ItemPermissions.java @@ -1,17 +1,16 @@ package net.ess3.permissions; -import net.ess3.api.IPermission; -import net.ess3.api.server.Material; -import net.ess3.api.server.Permission; -import java.util.HashMap; +import java.util.EnumMap; import java.util.Locale; -import java.util.Map; +import net.ess3.api.IPermission; +import org.bukkit.Material; +import org.bukkit.permissions.PermissionDefault; public class ItemPermissions { - private static Map<Material, IPermission> permissions = new HashMap<Material, IPermission>(); + private static EnumMap<Material, IPermission> permissions = new EnumMap<Material, IPermission>(Material.class); public static IPermission getPermission(final Material mat) { @@ -21,9 +20,9 @@ public class ItemPermissions perm = new BasePermission("essentials.itemspawn.item-", mat.toString().toLowerCase(Locale.ENGLISH).replace("_", "")) { @Override - public Permission.Default getPermissionDefault() + public PermissionDefault getPermissionDefault() { - return Permission.Default.TRUE; + return PermissionDefault.TRUE; } }; permissions.put(mat, perm); diff --git a/Essentials/src/net/ess3/permissions/KitPermissions.java b/Essentials/src/net/ess3/permissions/KitPermissions.java index fb02392c0..c01768fa6 100644 --- a/Essentials/src/net/ess3/permissions/KitPermissions.java +++ b/Essentials/src/net/ess3/permissions/KitPermissions.java @@ -1,10 +1,10 @@ package net.ess3.permissions; import net.ess3.api.IPermission; -import net.ess3.api.server.Permission; import java.util.HashMap; import java.util.Locale; import java.util.Map; +import org.bukkit.permissions.PermissionDefault; public class KitPermissions @@ -19,9 +19,9 @@ public class KitPermissions perm = new BasePermission("essentials.kit.", kitName.toLowerCase(Locale.ENGLISH)) { @Override - public Permission.Default getPermissionDefault() + public PermissionDefault getPermissionDefault() { - return Permission.Default.TRUE; + return PermissionDefault.TRUE; } }; permissions.put(kitName, perm); diff --git a/Essentials/src/net/ess3/permissions/Permissions.java b/Essentials/src/net/ess3/permissions/Permissions.java index 1571b1107..b550d9ca3 100644 --- a/Essentials/src/net/ess3/permissions/Permissions.java +++ b/Essentials/src/net/ess3/permissions/Permissions.java @@ -1,9 +1,11 @@ package net.ess3.permissions; +import net.ess3.bukkit.PermissionFactory; import java.util.Locale; import net.ess3.api.IPermission; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Permission; +import org.bukkit.command.CommandSender; +import org.bukkit.permissions.Permission; +import org.bukkit.permissions.PermissionDefault; public enum Permissions implements IPermission @@ -22,7 +24,7 @@ public enum Permissions implements IPermission CHAT_SPY, CLEARINVENTORY_OTHERS, DELHOME_OTHERS, - ECO_LOAN(Permission.Default.FALSE), + ECO_LOAN(PermissionDefault.FALSE), EXP_GIVE, EXP_GIVE_OTHERS, EXP_SET, @@ -31,8 +33,8 @@ public enum Permissions implements IPermission FEED_OTHERS, FLY_OTHERS, GAMEMODE_OTHERS, - GEOIP_HIDE(Permission.Default.FALSE), - GEOIP_SHOW(Permission.Default.TRUE), + GEOIP_HIDE(PermissionDefault.FALSE), + GEOIP_SHOW(PermissionDefault.TRUE), GETPOS_OTHERS, GOD_OTHERS, HEAL_COOLDOWN_BYPASS, @@ -58,7 +60,7 @@ public enum Permissions implements IPermission NICK_COLOR, NICK_OTHERS, NOGOD_OVERRIDE, - OVERSIZEDSTACKS(Permission.Default.FALSE), + OVERSIZEDSTACKS(PermissionDefault.FALSE), POWERTOOL_APPEND, PTIME_OTHERS, PVPDELAY_EXEMPT, @@ -84,21 +86,21 @@ public enum Permissions implements IPermission TPAHERE, TPOHERE, UNLIMITED_OTHERS, - WARP_LIST(Permission.Default.TRUE), + WARP_LIST(PermissionDefault.TRUE), WARP_HIDDEN, WARP_OTHERS, VANISH_SEE_OTHERS; private static final String base = "essentials."; private final String permission; - private final Permission.Default defaultPerm; + private final PermissionDefault defaultPerm; private transient Permission bukkitPerm = null; private Permissions() { - this(Permission.Default.OP); + this(PermissionDefault.OP); } - private Permissions(final Permission.Default defaultPerm) + private Permissions(final PermissionDefault defaultPerm) { permission = base + toString().toLowerCase(Locale.ENGLISH).replace('_', '.'); this.defaultPerm = defaultPerm; @@ -121,13 +123,13 @@ public enum Permissions implements IPermission } else { - return Permission.create(getPermissionName(), getPermissionDefault()); + return PermissionFactory.registerPermission(getPermissionName(), getPermissionDefault()); } } @Override - public Permission.Default getPermissionDefault() + public PermissionDefault getPermissionDefault() { return this.defaultPerm; } diff --git a/Essentials/src/net/ess3/permissions/UnlimitedItemPermissions.java b/Essentials/src/net/ess3/permissions/UnlimitedItemPermissions.java index 4387e6ba2..b43fd85cb 100644 --- a/Essentials/src/net/ess3/permissions/UnlimitedItemPermissions.java +++ b/Essentials/src/net/ess3/permissions/UnlimitedItemPermissions.java @@ -1,14 +1,13 @@ package net.ess3.permissions; -import net.ess3.api.IPermission; -import net.ess3.api.server.Material; -import java.util.HashMap; +import java.util.EnumMap; import java.util.Locale; -import java.util.Map; +import net.ess3.api.IPermission; +import org.bukkit.Material; public class UnlimitedItemPermissions { - private static Map<Material, IPermission> permissions = new HashMap<Material, IPermission>(); + private static EnumMap<Material, IPermission> permissions = new EnumMap<Material, IPermission>(Material.class); public static IPermission getPermission(final Material mat) { diff --git a/Essentials/src/net/ess3/permissions/WarpPermissions.java b/Essentials/src/net/ess3/permissions/WarpPermissions.java index fe977ccce..f8d146b61 100644 --- a/Essentials/src/net/ess3/permissions/WarpPermissions.java +++ b/Essentials/src/net/ess3/permissions/WarpPermissions.java @@ -1,10 +1,10 @@ package net.ess3.permissions; import net.ess3.api.IPermission; -import net.ess3.api.server.Permission; import java.util.HashMap; import java.util.Locale; import java.util.Map; +import org.bukkit.permissions.PermissionDefault; public class WarpPermissions @@ -19,9 +19,9 @@ public class WarpPermissions perm = new BasePermission("essentials.warp.", warpName.toLowerCase(Locale.ENGLISH)) { @Override - public Permission.Default getPermissionDefault() + public PermissionDefault getPermissionDefault() { - return Permission.Default.TRUE; + return PermissionDefault.TRUE; } }; permissions.put(warpName, perm); diff --git a/Essentials/src/net/ess3/ranks/GMGroups.java b/Essentials/src/net/ess3/ranks/GMGroups.java index ef5ff0a60..3cda0003a 100644 --- a/Essentials/src/net/ess3/ranks/GMGroups.java +++ b/Essentials/src/net/ess3/ranks/GMGroups.java @@ -6,7 +6,6 @@ import net.ess3.api.IEssentials; import net.ess3.api.IRanks; import net.ess3.api.ISettings; import net.ess3.api.IUser; -import net.ess3.bukkit.BukkitPlayer; import net.ess3.utils.Util; import org.anjocaido.groupmanager.GroupManager; import org.anjocaido.groupmanager.permissions.AnjoPermissionsHandler; @@ -25,7 +24,7 @@ public class GMGroups implements IRanks { @Override public double getHealCooldown(IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer()); if (handler == null) { return 0; @@ -36,7 +35,7 @@ public class GMGroups implements IRanks { @Override public double getTeleportCooldown(IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer()); if (handler == null) { return 0; @@ -47,7 +46,7 @@ public class GMGroups implements IRanks { @Override public double getTeleportDelay(IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer()); if (handler == null) { return 0; @@ -58,7 +57,7 @@ public class GMGroups implements IRanks { @Override public String getPrefix(IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer()); if (handler == null) { return null; @@ -69,7 +68,7 @@ public class GMGroups implements IRanks { @Override public String getSuffix(IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer()); if (handler == null) { return null; @@ -80,7 +79,7 @@ public class GMGroups implements IRanks { @Override public int getHomeLimit(IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer()); if (handler == null) { return 0; @@ -105,7 +104,7 @@ public class GMGroups implements IRanks { private String getRawChatFormat(final IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer()); if (handler != null) { String chatformat = handler.getPermissionString(player.getName(), "chatformat"); @@ -123,7 +122,7 @@ public class GMGroups implements IRanks { @Override public String getMainGroup(IUser player) { - final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); + final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer()); if (handler == null) { return null; @@ -134,7 +133,7 @@ public class GMGroups implements IRanks { @Override public boolean inGroup(IUser player, String groupname) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getName()); if (handler == null) { return false; diff --git a/Essentials/src/net/ess3/ranks/VaultGroups.java b/Essentials/src/net/ess3/ranks/VaultGroups.java index ab0a32755..76bad31eb 100644 --- a/Essentials/src/net/ess3/ranks/VaultGroups.java +++ b/Essentials/src/net/ess3/ranks/VaultGroups.java @@ -6,9 +6,9 @@ import net.ess3.api.IEssentials; import net.ess3.api.IRanks; import net.ess3.api.ISettings; import net.ess3.api.IUser; -import net.ess3.bukkit.BukkitPlayer; import net.ess3.utils.Util; import net.milkbowl.vault.chat.Chat; +import org.bukkit.plugin.RegisteredServiceProvider; public class VaultGroups implements IRanks @@ -19,47 +19,52 @@ public class VaultGroups implements IRanks { this.ess = ess; } + + private <T> T getServiceProvider(Class<T> clazz) { + RegisteredServiceProvider<T> provider = ess.getServer().getServicesManager().getRegistration(clazz); + return provider.getProvider(); + } @Override public double getHealCooldown(IUser player) { - Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPlayerInfoDouble(((BukkitPlayer)player.getBase()).getPlayer(), "healcooldown", 0); + Chat chat = getServiceProvider(Chat.class); + return chat.getPlayerInfoDouble(player.getPlayer(), "healcooldown", 0); } @Override public double getTeleportCooldown(IUser player) { - Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPlayerInfoDouble(((BukkitPlayer)player.getBase()).getPlayer(), "teleportcooldown", 0); + Chat chat = getServiceProvider(Chat.class); + return chat.getPlayerInfoDouble(player.getPlayer(), "teleportcooldown", 0); } @Override public double getTeleportDelay(IUser player) { - Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPlayerInfoDouble(((BukkitPlayer)player.getBase()).getPlayer(), "teleportdelay", 0); + Chat chat = getServiceProvider(Chat.class); + return chat.getPlayerInfoDouble(player.getPlayer(), "teleportdelay", 0); } @Override public String getPrefix(IUser player) { - Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPlayerPrefix(((BukkitPlayer)player.getBase()).getPlayer()); + Chat chat = getServiceProvider(Chat.class); + return chat.getPlayerPrefix(player.getPlayer()); } @Override public String getSuffix(IUser player) { - Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPlayerSuffix(((BukkitPlayer)player.getBase()).getPlayer()); + Chat chat = getServiceProvider(Chat.class); + return chat.getPlayerSuffix(player.getPlayer()); } @Override public int getHomeLimit(IUser player) { - Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPlayerInfoInteger(((BukkitPlayer)player.getBase()).getPlayer(), "homes", 0); + Chat chat = getServiceProvider(Chat.class); + return chat.getPlayerInfoInteger(player.getPlayer(), "homes", 0); } @Override @@ -79,8 +84,8 @@ public class VaultGroups implements IRanks private String getRawChatFormat(final IUser player) { - Chat chat = ess.getServer().getServiceProvider(Chat.class); - String chatformat = chat.getPlayerInfoString(((BukkitPlayer)player.getBase()).getPlayer(), "chatformat", ""); + Chat chat = getServiceProvider(Chat.class); + String chatformat = chat.getPlayerInfoString(player.getPlayer(), "chatformat", ""); if (chatformat != null && !chatformat.isEmpty()) { return chatformat; @@ -95,15 +100,15 @@ public class VaultGroups implements IRanks @Override public String getMainGroup(IUser player) { - Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPrimaryGroup(((BukkitPlayer)player.getBase()).getPlayer()); + Chat chat = getServiceProvider(Chat.class); + return chat.getPrimaryGroup(player.getPlayer().getPlayer()); } @Override public boolean inGroup(IUser player, String groupname) { - Chat chat = ess.getServer().getServiceProvider(Chat.class); - for (String group : chat.getPlayerGroups(((BukkitPlayer)player.getBase()).getPlayer())) + Chat chat = getServiceProvider(Chat.class); + for (String group : chat.getPlayerGroups(player.getPlayer())) { if (group.equalsIgnoreCase(groupname)) { diff --git a/Essentials/src/net/ess3/settings/Kit.java b/Essentials/src/net/ess3/settings/Kit.java index 19b4b0275..822209eda 100644 --- a/Essentials/src/net/ess3/settings/Kit.java +++ b/Essentials/src/net/ess3/settings/Kit.java @@ -4,9 +4,9 @@ import java.util.ArrayList; import java.util.List; import lombok.Data; import lombok.EqualsAndHashCode; -import net.ess3.api.server.ItemStack; import net.ess3.storage.ListType; import net.ess3.storage.StorageObject; +import org.bukkit.inventory.ItemStack; @Data diff --git a/Essentials/src/net/ess3/settings/SpawnsHolder.java b/Essentials/src/net/ess3/settings/SpawnsHolder.java index bca2e8815..f35d46ac4 100644 --- a/Essentials/src/net/ess3/settings/SpawnsHolder.java +++ b/Essentials/src/net/ess3/settings/SpawnsHolder.java @@ -11,7 +11,7 @@ import net.ess3.api.IEssentialsModule; import net.ess3.api.ISettings; import net.ess3.api.IUser; import net.ess3.storage.AsyncStorageObjectHolder; -import net.ess3.storage.Location.WorldNotLoadedException; +import net.ess3.storage.StoredLocation.WorldNotLoadedException; import net.ess3.utils.textreader.IText; import net.ess3.utils.textreader.KeywordReplacer; import net.ess3.utils.textreader.SimpleTextInput; @@ -187,6 +187,8 @@ public class SpawnsHolder extends AsyncStorageObjectHolder<Spawns> implements IE unlock(); } } + + //TODO: Why is this stuff here in the settings folder? private void registerListeners() { @@ -198,7 +200,7 @@ public class SpawnsHolder extends AsyncStorageObjectHolder<Spawns> implements IE { ((SpawnPlayerListener)ll).onPlayerRespawn((PlayerRespawnEvent)event); } - }, ess); + }, ess.getPlugin()); ess.getServer().getPluginManager().registerEvent(PlayerJoinEvent.class, playerListener, getRespawnPriority(), new EventExecutor() { @Override @@ -206,7 +208,7 @@ public class SpawnsHolder extends AsyncStorageObjectHolder<Spawns> implements IE { ((SpawnPlayerListener)ll).onPlayerJoin((PlayerJoinEvent)event); } - }, ess); + }, ess.getPlugin()); } diff --git a/Essentials/src/net/ess3/settings/Warp.java b/Essentials/src/net/ess3/settings/Warp.java index 963a5420a..2dced7328 100644 --- a/Essentials/src/net/ess3/settings/Warp.java +++ b/Essentials/src/net/ess3/settings/Warp.java @@ -2,7 +2,7 @@ package net.ess3.settings; import lombok.Data; import lombok.EqualsAndHashCode; -import net.ess3.storage.Location; +import net.ess3.storage.StoredLocation; import net.ess3.storage.StorageObject; @Data @@ -10,5 +10,5 @@ import net.ess3.storage.StorageObject; public class Warp implements StorageObject { private String name; - private Location location; + private StoredLocation location; } diff --git a/Essentials/src/net/ess3/storage/AbstractDelayedYamlFileReader.java b/Essentials/src/net/ess3/storage/AbstractDelayedYamlFileReader.java index 9dc010640..e92709dea 100644 --- a/Essentials/src/net/ess3/storage/AbstractDelayedYamlFileReader.java +++ b/Essentials/src/net/ess3/storage/AbstractDelayedYamlFileReader.java @@ -32,7 +32,7 @@ public abstract class AbstractDelayedYamlFileReader<T extends StorageObject> imp } else { - ess.getPlugin().scheduleAsyncDelayedTask(this); + ess.getPlugin().getServer().getScheduler().scheduleAsyncDelayedTask(ess.getPlugin(), this); } } diff --git a/Essentials/src/net/ess3/storage/BukkitConstructor.java b/Essentials/src/net/ess3/storage/BukkitConstructor.java index 23a88325f..e72aaea79 100644 --- a/Essentials/src/net/ess3/storage/BukkitConstructor.java +++ b/Essentials/src/net/ess3/storage/BukkitConstructor.java @@ -6,11 +6,12 @@ import java.util.Locale; import java.util.Map; import java.util.regex.Pattern; import net.ess3.Essentials; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Material; -import net.ess3.api.server.Plugin; +import net.ess3.api.IPlugin; +import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemStack; import org.bukkit.material.MaterialData; +import org.bukkit.plugin.Plugin; import org.yaml.snakeyaml.TypeDescription; import org.yaml.snakeyaml.constructor.Constructor; import org.yaml.snakeyaml.error.YAMLException; @@ -21,9 +22,9 @@ import org.yaml.snakeyaml.nodes.*; public class BukkitConstructor extends Constructor { private final transient Pattern NUMPATTERN = Pattern.compile("\\d+"); - private final transient Plugin plugin; + private final transient IPlugin plugin; - public BukkitConstructor(final Class clazz, final Plugin plugin) + public BukkitConstructor(final Class clazz, final IPlugin plugin) { super(clazz); this.plugin = plugin; @@ -44,11 +45,11 @@ public class BukkitConstructor extends Constructor if (NUMPATTERN.matcher(val).matches()) { final int typeId = Integer.parseInt(val); - mat = Material.get(typeId); + mat = Material.getMaterial(typeId); } else { - mat = Material.match(val); + mat = Material.matchMaterial(val); } return mat; } @@ -68,11 +69,11 @@ public class BukkitConstructor extends Constructor if (NUMPATTERN.matcher(split[0]).matches()) { final int typeId = Integer.parseInt(split[0]); - mat = Material.get(typeId); + mat = Material.getMaterial(typeId); } else { - mat = Material.match(split[0]); + mat = Material.matchMaterial(split[0]); } if (mat == null) { @@ -106,11 +107,11 @@ public class BukkitConstructor extends Constructor if (NUMPATTERN.matcher(split2[0]).matches()) { final int typeId = Integer.parseInt(split2[0]); - mat = Material.get(typeId); + mat = Material.getMaterial(typeId); } else { - mat = Material.match(split2[0]); + mat = Material.matchMaterial(split2[0]); } if (mat == null) { @@ -126,7 +127,7 @@ public class BukkitConstructor extends Constructor { size = Integer.parseInt(split1[1]); } - final ItemStack stack = ItemStack.create(mat, size, data); + final ItemStack stack = new ItemStack(mat, size, data); if (split1.length > 2) { for (int i = 2; i < split1.length; i++) diff --git a/Essentials/src/net/ess3/storage/Location.java b/Essentials/src/net/ess3/storage/Location.java deleted file mode 100644 index 06210504b..000000000 --- a/Essentials/src/net/ess3/storage/Location.java +++ /dev/null @@ -1,115 +0,0 @@ -package net.ess3.storage; - -import java.lang.ref.WeakReference; -import java.util.UUID; -import org.bukkit.Bukkit; -import org.bukkit.World; - - -public class Location -{ - private WeakReference<org.bukkit.Location> location; - private final String worldname; - private UUID worldUID = null; - private final double x; - private final double y; - private final double z; - private final float yaw; - private final float pitch; - - public Location(org.bukkit.Location loc) - { - location = new WeakReference<org.bukkit.Location>(loc); - worldname = loc.getWorld().getName(); - worldUID = loc.getWorld().getUID(); - x = loc.getX(); - y = loc.getY(); - z = loc.getZ(); - yaw = loc.getYaw(); - pitch = loc.getPitch(); - } - - public Location(String worldname, double x, double y, double z, float yaw, float pitch) - { - this.worldname = worldname; - this.x = x; - this.y = y; - this.z = z; - this.yaw = yaw; - this.pitch = pitch; - } - - public Location(String worldname, double x, double y, double z) - { - this.worldname = worldname; - this.x = x; - this.y = y; - this.z = z; - this.yaw = 0f; - this.pitch = 0f; - } - - public org.bukkit.Location getBukkitLocation() throws WorldNotLoadedException - { - - org.bukkit.Location loc = location == null ? null : location.get(); - if (loc == null) - { - World world = null; - if (worldUID != null) - { - world = Bukkit.getWorld(worldUID); - } - if (world == null) - { - world = Bukkit.getWorld(worldname); - } - if (world == null) - { - throw new WorldNotLoadedException(worldname); - } - loc = new org.bukkit.Location(world, getX(), getY(), getZ(), getYaw(), getPitch()); - location = new WeakReference<org.bukkit.Location>(loc); - } - return loc; - } - - public String getWorldName() - { - return worldname; - } - - public double getX() - { - return x; - } - - public double getY() - { - return y; - } - - public double getZ() - { - return z; - } - - public float getYaw() - { - return yaw; - } - - public float getPitch() - { - return pitch; - } - - - public static class WorldNotLoadedException extends Exception - { - public WorldNotLoadedException(String worldname) - { - super("World " + worldname + " is not loaded."); - } - } -} diff --git a/Essentials/src/net/ess3/storage/StorageObjectMap.java b/Essentials/src/net/ess3/storage/StorageObjectMap.java index 1e88a8fd3..bec082e31 100644 --- a/Essentials/src/net/ess3/storage/StorageObjectMap.java +++ b/Essentials/src/net/ess3/storage/StorageObjectMap.java @@ -80,7 +80,7 @@ public abstract class StorageObjectMap<I> extends CacheLoader<String, I> impleme { try { - return (I)cache.get(name.toLowerCase(Locale.ENGLISH)); + return (I)cache.get(name); } catch (ExecutionException ex) { diff --git a/Essentials/src/net/ess3/storage/StoredLocation.java b/Essentials/src/net/ess3/storage/StoredLocation.java index 974204bf6..5e0394c0e 100644 --- a/Essentials/src/net/ess3/storage/StoredLocation.java +++ b/Essentials/src/net/ess3/storage/StoredLocation.java @@ -1,8 +1,8 @@ package net.ess3.storage; import java.lang.ref.WeakReference; -import net.ess3.api.server.Location; -import net.ess3.api.server.World; +import org.bukkit.Bukkit; +import org.bukkit.Location; public class StoredLocation @@ -52,7 +52,7 @@ public class StoredLocation Location loc = location == null ? null : location.get(); if (loc == null) { - loc = Location.create(worldname, getX(), getY(), getZ(), getYaw(), getPitch()); + loc = new Location(Bukkit.getWorld(worldname), getX(), getY(), getZ(), getYaw(), getPitch()); location = new WeakReference<Location>(loc); } return loc; diff --git a/Essentials/src/net/ess3/storage/YamlStorageReader.java b/Essentials/src/net/ess3/storage/YamlStorageReader.java index 603765e69..03e40fe1e 100644 --- a/Essentials/src/net/ess3/storage/YamlStorageReader.java +++ b/Essentials/src/net/ess3/storage/YamlStorageReader.java @@ -1,10 +1,10 @@ package net.ess3.storage; -import net.ess3.api.server.Plugin; import java.io.Reader; import java.lang.reflect.Field; import java.util.*; import java.util.concurrent.locks.ReentrantLock; +import net.ess3.api.IPlugin; import org.yaml.snakeyaml.TypeDescription; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.Constructor; @@ -15,9 +15,9 @@ 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 final Reader reader; - private transient final Plugin plugin; + private transient final IPlugin plugin; - public YamlStorageReader(final Reader reader, final Plugin plugin) + public YamlStorageReader(final Reader reader, final IPlugin plugin) { this.reader = reader; this.plugin = plugin; diff --git a/Essentials/src/net/ess3/user/PlayerNotFoundException.java b/Essentials/src/net/ess3/user/PlayerNotFoundException.java new file mode 100644 index 000000000..2c658aa0b --- /dev/null +++ b/Essentials/src/net/ess3/user/PlayerNotFoundException.java @@ -0,0 +1,11 @@ +package net.ess3.user; + +import static net.ess3.I18n._; + +public class PlayerNotFoundException extends Exception { + + public PlayerNotFoundException() + { + super(_("playerNotFound")); + } +} diff --git a/Essentials/src/net/ess3/user/TooManyMatchesException.java b/Essentials/src/net/ess3/user/TooManyMatchesException.java index d55e6b6c4..65fbdb78f 100644 --- a/Essentials/src/net/ess3/user/TooManyMatchesException.java +++ b/Essentials/src/net/ess3/user/TooManyMatchesException.java @@ -1,5 +1,46 @@ package net.ess3.user; -public class TooManyMatchesException extends Exception { +import java.util.Collections; +import java.util.Set; +import static net.ess3.I18n._; +import net.ess3.api.IUser; + +public class TooManyMatchesException extends Exception +{ + private final Set<IUser> matches; + + public TooManyMatchesException() + { + super(); + matches = Collections.emptySet(); + } + + public TooManyMatchesException(Set<IUser> users) + { + super(); + this.matches = users; + } + + @Override + public String getMessage() + { + if (!matches.isEmpty()) + { + StringBuilder builder = new StringBuilder(matches.size() * 16); + for (IUser iUser : matches) + { + if (builder.length() > 0) + { + builder.append(", "); + } + builder.append(iUser.getPlayer().getDisplayName()); + } + return _("tooManyMatchesWithList", builder.toString()); + } + else + { + return _("tooManyMatches"); + } + } } diff --git a/Essentials/src/net/ess3/user/User.java b/Essentials/src/net/ess3/user/User.java index b959e36bc..bc5187205 100644 --- a/Essentials/src/net/ess3/user/User.java +++ b/Essentials/src/net/ess3/user/User.java @@ -1,10 +1,9 @@ package net.ess3.user; -import net.ess3.Console; +import java.lang.ref.WeakReference; import static net.ess3.I18n._; import net.ess3.Teleport; import net.ess3.api.*; -import net.ess3.api.server.*; import net.ess3.economy.register.Method; import net.ess3.permissions.Permissions; import net.ess3.utils.DateUtil; @@ -17,6 +16,12 @@ import java.util.concurrent.atomic.AtomicBoolean; import lombok.Cleanup; import lombok.Getter; import lombok.Setter; +import net.ess3.Console; +import org.bukkit.Location; +import org.bukkit.OfflinePlayer; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; public class User extends UserBase implements IUser @@ -44,13 +49,43 @@ public class User extends UserBase implements IUser private boolean invSee = false; private transient Location afkPosition; private AtomicBoolean gotMailInfo = new AtomicBoolean(false); + private WeakReference<Player> playerCache; - public User(final Player base, final IEssentials ess) + public User(final OfflinePlayer base, final IEssentials ess) { super(base, ess); teleport = new Teleport(this, ess); } + @Override + public void setPlayerCache(final Player player) + { + playerCache = new WeakReference<Player>(player); + } + + private void destroyPlayerCache() + { + playerCache = null; + } + + @Override + public void close() + { + super.close(); + destroyPlayerCache(); + } + + @Override + public Player getPlayer() + { + Player player = playerCache == null ? null : playerCache.get(); + if (player == null) + { + player = super.getPlayer(); + } + return player; + } + public void example() { // Cleanup will call close at the end of the function @@ -77,12 +112,6 @@ public class User extends UserBase implements IUser } @Override - public void update(final Player base) - { - super.update(base); - } - - @Override public void checkCooldown(final UserData.TimestampType cooldownType, final double cooldown, final boolean set, final IPermission bypassPermission) throws CooldownException { final Calendar now = new GregorianCalendar(); @@ -124,7 +153,7 @@ public class User extends UserBase implements IUser sendMessage(_("addedToAccount", Util.displayCurrency(value, ess))); if (initiator != null) { - initiator.sendMessage(_("addedToOthersAccount", Util.displayCurrency(value, ess), this.getDisplayName())); + initiator.sendMessage(_("addedToOthersAccount", Util.displayCurrency(value, ess), this.getPlayer().getDisplayName())); } } finally @@ -144,8 +173,8 @@ public class User extends UserBase implements IUser { setMoney(getMoney() - value); reciever.setMoney(reciever.getMoney() + value); - sendMessage(_("moneySentTo", Util.displayCurrency(value, ess), reciever.getDisplayName())); - reciever.sendMessage(_("moneyRecievedFrom", Util.displayCurrency(value, ess), getDisplayName())); + sendMessage(_("moneySentTo", Util.displayCurrency(value, ess), reciever.getPlayer().getDisplayName())); + reciever.sendMessage(_("moneyRecievedFrom", Util.displayCurrency(value, ess), getPlayer().getDisplayName())); } else { @@ -170,18 +199,18 @@ public class User extends UserBase implements IUser sendMessage(_("takenFromAccount", Util.displayCurrency(value, ess))); if (initiator != null) { - initiator.sendMessage(_("takenFromOthersAccount", Util.displayCurrency(value, ess), this.getDisplayName())); + initiator.sendMessage(_("takenFromOthersAccount", Util.displayCurrency(value, ess), this.getPlayer().getDisplayName())); } } public void setHome() { - setHome("home", getLocation()); + setHome("home", getPlayer().getLocation()); } public void setHome(final String name) { - setHome(name, getLocation()); + setHome(name, getPlayer().getLocation()); } @Override @@ -190,13 +219,14 @@ public class User extends UserBase implements IUser acquireWriteLock(); try { - getData().setLastLocation(new net.ess3.storage.StoredLocation(getLocation())); + getData().setLastLocation(new net.ess3.storage.StoredLocation(getPlayer().getLocation())); } finally { unlock(); } } + public String getNick(boolean addprefixsuffix) { acquireReadLock(); @@ -228,7 +258,7 @@ public class User extends UserBase implements IUser { displayname = displayname.replace("{SUFFIX}", groups.getSuffix(this)); } - displayname = displayname.replace("{WORLDNAME}", this.getWorld().getName()); + displayname = displayname.replace("{WORLDNAME}", this.getPlayer().getWorld().getName()); displayname = displayname.replace('&', '\u00a7'); displayname = displayname.concat("\u00a7f"); @@ -244,7 +274,7 @@ public class User extends UserBase implements IUser public void setDisplayNick() { String name = getNick(true); - setDisplayName(name); + getPlayer().setDisplayName(name); if (name.length() > 16) { name = getNick(false); @@ -255,7 +285,7 @@ public class User extends UserBase implements IUser } try { - setPlayerListName(name); + getPlayer().setPlayerListName(name); } catch (IllegalArgumentException e) { @@ -264,12 +294,6 @@ public class User extends UserBase implements IUser } @Override - public String getDisplayName() - { - return super.getDisplayName() == null ? super.getName() : super.getDisplayName(); - } - - @Override public void updateDisplayName() { @Cleanup @@ -330,10 +354,10 @@ public class User extends UserBase implements IUser acquireWriteLock(); try { - this.setSleepingIgnored(Permissions.SLEEPINGIGNORED.isAuthorized(this) ? true : set); + this.getPlayer().setSleepingIgnored(Permissions.SLEEPINGIGNORED.isAuthorized(this) ? true : set); if (set && !getData().isAfk()) { - afkPosition = getLocation(); + afkPosition = getPlayer().getLocation(); } getData().setAfk(set); } @@ -347,7 +371,7 @@ public class User extends UserBase implements IUser public boolean toggleAfk() { final boolean now = super.toggleAfk(); - this.setSleepingIgnored(Permissions.SLEEPINGIGNORED.isAuthorized(this) ? true : now); + this.getPlayer().setSleepingIgnored(Permissions.SLEEPINGIGNORED.isAuthorized(this) ? true : now); return now; } @@ -441,7 +465,7 @@ public class User extends UserBase implements IUser getData().setAfk(false); if (broadcast && !hidden) { - ess.broadcastMessage(this, _("userIsNotAway", getDisplayName())); + ess.broadcastMessage(this, _("userIsNotAway", getPlayer().getDisplayName())); } } lastActivity = System.currentTimeMillis(); @@ -466,13 +490,12 @@ public class User extends UserBase implements IUser { final String kickReason = _("autoAfkKickReason", autoafkkick / 60.0); lastActivity = 0; - kickPlayer(kickReason); + getPlayer().kickPlayer(kickReason); - for (IPlayer player : ess.getServer().getOnlinePlayers()) + for (Player player : ess.getServer().getOnlinePlayers()) { - final IUser user = player.getUser(); - if (Permissions.KICK_NOTIFY.isAuthorized(user)) + if (Permissions.KICK_NOTIFY.isAuthorized(player)) { player.sendMessage(_("playerKicked", Console.NAME, getName(), kickReason)); } @@ -487,7 +510,7 @@ public class User extends UserBase implements IUser setAfk(true); if (!hidden) { - ess.broadcastMessage(this, _("userIsAway", getDisplayName())); + ess.broadcastMessage(this, _("userIsAway", getPlayer().getDisplayName())); } } } @@ -513,7 +536,7 @@ public class User extends UserBase implements IUser final ISettings settings = ess.getSettings(); settings.acquireReadLock(); return (getData().isGodmode() - && !settings.getData().getWorldOptions(getLocation().getWorld().getName()).isGodmode()) + && !settings.getData().getWorldOptions(getPlayer().getLocation().getWorld().getName()).isGodmode()) || (getData().isAfk() && settings.getData().getCommands().getAfk().isFreezeAFKPlayers()); } finally @@ -521,40 +544,40 @@ public class User extends UserBase implements IUser unlock(); } } - + @Override public void updateCompass() { try { - Location loc = getHome(getLocation()); + Location loc = getHome(getPlayer().getLocation()); if (loc == null) { loc = getBedSpawnLocation(); } if (loc != null) { - setCompassTarget(loc); + getPlayer().setCompassTarget(loc); } } catch (Exception ex) { // Ignore } - } + } @Override public int compareTo(final IUser t) { - return Util.stripColor(this.getDisplayName()).compareTo(Util.stripColor(t.getDisplayName())); + return Util.stripColor(this.getPlayer().getDisplayName()).compareTo(Util.stripColor(t.getPlayer().getDisplayName())); } @Override public void requestTeleport(IUser player, boolean here) { - teleportRequestTime = System.currentTimeMillis(); - teleportRequester = player; - tpRequestHere = here; + teleportRequestTime = System.currentTimeMillis(); + teleportRequester = player; + tpRequestHere = here; } @Override @@ -589,7 +612,7 @@ public class User extends UserBase implements IUser { sendMessage(_("InvFull")); } - updateInventory(); + getPlayer().updateInventory(); } @Override @@ -607,14 +630,14 @@ public class User extends UserBase implements IUser { sendMessage(_("InvFull")); } - updateInventory(); + getPlayer().updateInventory(); } private boolean giveItemStack(ItemStack itemStack, Boolean canSpew) throws ChargeException { boolean spew = false; - if (itemStack == null || itemStack.isAir()) + if (itemStack == null || itemStack.getTypeId() == 0) { return spew; } @@ -627,17 +650,17 @@ public class User extends UserBase implements IUser settings.acquireReadLock(); int oversizedStackSize = settings.getData().getGeneral().getOversizedStacksize(); - overfilled = getInventory().addItem(true, oversizedStackSize, itemStack); + overfilled = getPlayer().getInventory().addItem(true, oversizedStackSize, itemStack); } else { - overfilled = getInventory().addItem(true, itemStack); + overfilled = getPlayer().getInventory().addItem(true, itemStack); } if (canSpew) { for (ItemStack overflowStack : overfilled.values()) { - getWorld().dropItemNaturally(getLocation(), overflowStack); + getPlayer().getWorld().dropItemNaturally(getPlayer().getLocation(), overflowStack); spew = true; } } @@ -720,7 +743,7 @@ public class User extends UserBase implements IUser { if (!Permissions.VANISH_SEE_OTHERS.isAuthorized(ess.getUserMap().getUser(p))) { - p.hidePlayer(getBase()); + p.hidePlayer(getPlayer()); } } setHidden(true); @@ -730,7 +753,7 @@ public class User extends UserBase implements IUser { for (Player p : ess.getServer().getOnlinePlayers()) { - p.showPlayer(getBase()); + p.showPlayer(getPlayer()); } setHidden(false); ess.getVanishedPlayers().remove(getName()); @@ -738,13 +761,6 @@ public class User extends UserBase implements IUser } @Override - public void setName(String name) - { - //todo - //throw new UnsupportedOperationException("Not supported yet."); - } - - @Override public void toggleVanished() { final boolean set = !vanished; diff --git a/Essentials/src/net/ess3/user/UserBase.java b/Essentials/src/net/ess3/user/UserBase.java index 9d0598fd1..2b0b7ae21 100644 --- a/Essentials/src/net/ess3/user/UserBase.java +++ b/Essentials/src/net/ess3/user/UserBase.java @@ -1,53 +1,150 @@ package net.ess3.user; -import net.ess3.utils.Util; +import java.io.File; +import java.io.IOException; +import java.util.*; +import lombok.Cleanup; +import lombok.Delegate; import net.ess3.api.IEssentials; import net.ess3.api.ISettings; +import net.ess3.api.IUser; import net.ess3.api.InvalidNameException; -import net.ess3.api.server.Player; -import net.ess3.api.server.Location; +import net.ess3.permissions.Permissions; import net.ess3.storage.AsyncStorageObjectHolder; import net.ess3.storage.IStorageObjectHolder; import net.ess3.storage.StoredLocation.WorldNotLoadedException; -import java.io.File; -import java.io.IOException; -import java.util.*; -import lombok.Cleanup; -import lombok.Delegate; +import net.ess3.utils.Util; +import org.bukkit.Location; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.permissions.Permission; +import org.bukkit.permissions.PermissionAttachment; +import org.bukkit.permissions.PermissionAttachmentInfo; +import org.bukkit.plugin.Plugin; -public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implements Player, IStorageObjectHolder<UserData> +public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implements OfflinePlayer, CommandSender, IStorageObjectHolder<UserData> { @Delegate - protected Player base; + protected final OfflinePlayer offlinePlayer; - public UserBase(final Player base, final IEssentials ess) + public UserBase(final OfflinePlayer base, final IEssentials ess) { super(ess, UserData.class); - this.base = base; + this.offlinePlayer = base; onReload(); } + + @Override + public void sendMessage(String string) + { + Player player = offlinePlayer.getPlayer(); + if (player != null) { + player.sendMessage(string); + } + } + + @Override + public void sendMessage(String[] strings) + { + Player player = offlinePlayer.getPlayer(); + if (player != null) { + player.sendMessage(strings); + } + } + + @Override + public Server getServer() + { + return ess.getServer(); + } + + @Override + public boolean isPermissionSet(String string) + { + Player player = offlinePlayer.getPlayer(); + if (player != null) { + return player.isPermissionSet(string); + } else { + return false; + } + } + + @Override + public boolean isPermissionSet(Permission prmsn) + { + Player player = offlinePlayer.getPlayer(); + if (player != null) { + return player.isPermissionSet(prmsn); + } else { + return false; + } + } + + @Override + public boolean hasPermission(String string) + { + Player player = offlinePlayer.getPlayer(); + if (player != null) { + return player.hasPermission(string); + } else { + return false; + } + } + + @Override + public boolean hasPermission(Permission prmsn) + { + Player player = offlinePlayer.getPlayer(); + if (player != null) { + return player.hasPermission(prmsn); + } else { + return false; + } + } - public final Player getBase() + @Override + public PermissionAttachment addAttachment(Plugin plugin, String string, boolean bln) { - return base; + throw new UnsupportedOperationException("Not supported yet."); } - public final Player setBase(final Player base) + @Override + public PermissionAttachment addAttachment(Plugin plugin) { - return this.base = base; + throw new UnsupportedOperationException("Not supported yet."); } - public void update(final Player base) + @Override + public PermissionAttachment addAttachment(Plugin plugin, String string, boolean bln, int i) { - setBase(base); + throw new UnsupportedOperationException("Not supported yet."); } + @Override + public PermissionAttachment addAttachment(Plugin plugin, int i) + { + throw new UnsupportedOperationException("Not supported yet."); + } + @Override + public void removeAttachment(PermissionAttachment pa) + { + throw new UnsupportedOperationException("Not supported yet."); + } - public void dispose() + @Override + public void recalculatePermissions() + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Set<PermissionAttachmentInfo> getEffectivePermissions() { - this.base = null; + throw new UnsupportedOperationException("Not supported yet."); } @Override @@ -321,7 +418,7 @@ public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implem } try { - return getData().getHomes().get(Util.sanitizeKey(name)).getBukkitLocation(); + return getData().getHomes().get(Util.sanitizeKey(name)).getStoredLocation(); } catch (WorldNotLoadedException ex) { diff --git a/Essentials/src/net/ess3/user/UserData.java b/Essentials/src/net/ess3/user/UserData.java index 20fb9abb7..e5e71099c 100644 --- a/Essentials/src/net/ess3/user/UserData.java +++ b/Essentials/src/net/ess3/user/UserData.java @@ -3,8 +3,8 @@ package net.ess3.user; import java.util.*; import lombok.Data; import lombok.EqualsAndHashCode; -import net.ess3.api.server.Material; import net.ess3.storage.*; +import org.bukkit.Material; diff --git a/Essentials/src/net/ess3/user/UserMap.java b/Essentials/src/net/ess3/user/UserMap.java index 3a8e3684b..e821e7785 100644 --- a/Essentials/src/net/ess3/user/UserMap.java +++ b/Essentials/src/net/ess3/user/UserMap.java @@ -9,9 +9,9 @@ import net.ess3.api.IEssentials; import net.ess3.api.IUser; import net.ess3.api.IUserMap; import net.ess3.api.InvalidNameException; -import net.ess3.api.server.Player; import net.ess3.storage.StorageObjectMap; import net.ess3.utils.Util; +import org.bukkit.entity.Player; public class UserMap extends StorageObjectMap<IUser> implements IUserMap @@ -36,19 +36,28 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap @Override public IUser load(final String name) throws Exception { - for (Player player : ess.getServer().getOnlinePlayers()) + String lowercaseName = name.toLowerCase(Locale.ENGLISH); + if (!lowercaseName.equals(name)) { - if (player.getName().equalsIgnoreCase(name)) + IUser user = getUser(lowercaseName); + if (user == null) { - keys.add(name.toLowerCase(Locale.ENGLISH)); - return new User(player, ess); + throw new Exception("User not found!"); + } + else + { + return user; } } + Player player = ess.getServer().getPlayerExact(name); + if (player != null) { + return new User(ess.getServer().getOfflinePlayer(player.getName()), ess); + } final File userFile = getUserFile(name); if (userFile.exists()) { keys.add(name.toLowerCase(Locale.ENGLISH)); - return new User(Bukkit.getOfflinePlayer(name), ess); + return new User(ess.getServer().getOfflinePlayer(name), ess); } throw new Exception("User not found!"); } @@ -80,36 +89,27 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap @Override public IUser getUser(final Player player) { - if (player instanceof IUser) - { - return (IUser)player; - } - IUser user = getUser(player.getName()); - + IUser user = getObject(player.getName()); if (user == null) { user = new User(player, ess); } - else - { - ((User)user).update(player); - } return user; } @Override - public IUser matchUser(final String name, final boolean includeHidden, final boolean includeOffline) throws TooManyMatchesException + public IUser matchUser(final String name, final boolean includeHidden, final boolean includeOffline) throws TooManyMatchesException, PlayerNotFoundException { final Set<IUser> users = matchUsers(name, includeHidden, includeOffline); - if (users == null || users.isEmpty()) + if (users.isEmpty()) { - return null; + throw new PlayerNotFoundException(); } else { if (users.size() > 1) { - throw new TooManyMatchesException(); + throw new TooManyMatchesException(users); } else { @@ -147,7 +147,7 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap for (Player player : ess.getServer().getOnlinePlayers()) { if (player.getName().equalsIgnoreCase(searchString) - && (includeHidden || (includeOffline && player.getUser().isHidden()))) + && (includeHidden || (includeOffline && getUser(player).isHidden()))) { match = player; break; @@ -157,49 +157,50 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap { if (multimatching || multisearch) { - result.add(match.getUser()); + result.add(getUser(match)); } else { - return Collections.singleton(match.getUser()); + return Collections.singleton(getUser(match)); } } for (Player player : ess.getServer().getOnlinePlayers()) { - final String nickname = player.getUser().getData().getNickname(); + final String nickname = getUser(player).getData().getNickname(); if (nickname != null && !nickname.isEmpty() && nickname.equalsIgnoreCase(searchString) - && (includeHidden || (includeOffline && player.getUser().isHidden()))) + && (includeHidden || (includeOffline && getUser(player).isHidden()))) { if (multimatching || multisearch) { - result.add(player.getUser()); + result.add(getUser(player)); } else { - return Collections.singleton(player.getUser()); + return Collections.singleton(getUser(player)); } } } if (includeOffline) { + IUser matchu = null; for (String playerName : getAllUniqueUsers()) { if (playerName.equals(searchString)) { - match = getUser(playerName); + matchu = getUser(playerName); break; } } - if (match != null) + if (matchu != null) { if (multimatching || multisearch) { - result.add(match.getUser()); + result.add(matchu); } else { - return Collections.singleton(match.getUser()); + return Collections.singleton(matchu); } } } @@ -208,17 +209,17 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap for (Player player : ess.getServer().getOnlinePlayers()) { if (player.getName().toLowerCase(Locale.ENGLISH).startsWith(searchString) - && (includeHidden || (includeOffline && player.getUser().isHidden()))) + && (includeHidden || (includeOffline && getUser(player).isHidden()))) { - result.add(player.getUser()); + result.add(getUser(player)); break; } - final String nickname = player.getUser().getData().getNickname(); + final String nickname = getUser(player).getData().getNickname(); if (nickname != null && !nickname.isEmpty() && nickname.toLowerCase(Locale.ENGLISH).startsWith(searchString) - && (includeHidden || (includeOffline && player.getUser().isHidden()))) + && (includeHidden || (includeOffline && getUser(player).isHidden()))) { - result.add(player.getUser()); + result.add(getUser(player)); break; } } diff --git a/Essentials/src/net/ess3/utils/Util.java b/Essentials/src/net/ess3/utils/Util.java index 273cd4679..9fa50f0df 100644 --- a/Essentials/src/net/ess3/utils/Util.java +++ b/Essentials/src/net/ess3/utils/Util.java @@ -291,45 +291,6 @@ public final class Util } basePerm.recalculatePermissibles(); } - private static transient final Pattern DOT_PATTERN = Pattern.compile("\\."); - - public static Permission registerPermission(String permission, PermissionDefault defaultPerm) - { - final PluginManager pluginManager = Bukkit.getServer().getPluginManager(); - final String[] parts = DOT_PATTERN.split(permission); - final StringBuilder builder = new StringBuilder(permission.length()); - Permission parent = null; - for (int i = 0; i < parts.length - 1; i++) - { - builder.append(parts[i]).append(".*"); - String permString = builder.toString(); - Permission perm = pluginManager.getPermission(permString); - if (perm == null) - { - perm = new Permission(permString, PermissionDefault.FALSE); - pluginManager.addPermission(perm); - if (parent != null) - { - parent.getChildren().put(perm.getName(), Boolean.TRUE); - } - parent = perm; - } - builder.deleteCharAt(builder.length() - 1); - } - Permission perm = pluginManager.getPermission(permission); - if (perm == null) - { - perm = new Permission(permission, defaultPerm); - pluginManager.addPermission(perm); - if (parent != null) - { - parent.getChildren().put(perm.getName(), Boolean.TRUE); - } - parent = perm; - } - perm.recalculatePermissibles(); - return perm; - } private static transient final Pattern URL_PATTERN = Pattern.compile("((?:(?:https?)://)?[\\w-_\\.]{2,})\\.([a-z]{2,3}(?:/\\S+)?)"); private static transient final Pattern VANILLA_PATTERN = Pattern.compile("\u00A7+[0-9A-FK-ORa-fk-or]"); private static transient final Pattern REPLACE_PATTERN = Pattern.compile("&([0-9a-fk-or])"); diff --git a/Essentials/src/net/ess3/utils/textreader/KeywordReplacer.java b/Essentials/src/net/ess3/utils/textreader/KeywordReplacer.java index 5b0a5066f..dc58ecc5e 100644 --- a/Essentials/src/net/ess3/utils/textreader/KeywordReplacer.java +++ b/Essentials/src/net/ess3/utils/textreader/KeywordReplacer.java @@ -2,9 +2,6 @@ package net.ess3.utils.textreader; import net.ess3.api.IEssentials; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; -import net.ess3.api.server.World; import net.ess3.utils.DescParseTickFormat; import java.text.DateFormat; import java.util.ArrayList; @@ -12,6 +9,9 @@ import java.util.Date; import java.util.List; import java.util.Map; import lombok.Cleanup; +import org.bukkit.World; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; @@ -35,7 +35,7 @@ public class KeywordReplacer implements IText String worlds, online, unique, playerlist, date, time; String worldTime12, worldTime24, worldDate, plugins; String userName, address, version; - if (sender.isPlayer()) + if (sender instanceof Player) { @Cleanup final IUser user = ((Player)sender).getUser(); diff --git a/Essentials/src/net/ess3/utils/textreader/TextInput.java b/Essentials/src/net/ess3/utils/textreader/TextInput.java index b0a0707af..d0c208467 100644 --- a/Essentials/src/net/ess3/utils/textreader/TextInput.java +++ b/Essentials/src/net/ess3/utils/textreader/TextInput.java @@ -4,6 +4,12 @@ import java.io.*; import java.lang.ref.SoftReference; import java.util.*; import java.util.logging.Level; +import net.ess3.api.IEssentials; +import net.ess3.api.IUser; +import net.ess3.api.InvalidNameException; +import net.ess3.utils.Util; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class TextInput implements IText @@ -18,11 +24,11 @@ public class TextInput implements IText { File file = null; - if (sender.isPlayer()) + if (sender instanceof Player) { try { - final IUser user = ((Player)sender).getUser(); + final IUser user = ess.getUserMap().getUser((Player)sender); file = new File(ess.getPlugin().getDataFolder(), filename + "_" + Util.sanitizeFileName(user.getName()) + ".txt"); if (!file.exists()) { diff --git a/Essentials/src/net/ess3/utils/textreader/TextPager.java b/Essentials/src/net/ess3/utils/textreader/TextPager.java index 099d9bbb7..88f00125c 100644 --- a/Essentials/src/net/ess3/utils/textreader/TextPager.java +++ b/Essentials/src/net/ess3/utils/textreader/TextPager.java @@ -5,7 +5,7 @@ import java.util.Locale; import java.util.Map; import net.ess3.I18n; import static net.ess3.I18n._; -import net.ess3.api.server.CommandSender; +import org.bukkit.command.CommandSender; public class TextPager |