diff options
author | snowleo <schneeleo@gmail.com> | 2012-07-22 11:28:14 +0200 |
---|---|---|
committer | snowleo <schneeleo@gmail.com> | 2012-07-22 11:28:14 +0200 |
commit | dd8ddd15a156aaf289249d880650abb20b91af90 (patch) | |
tree | c6a9a11f86e059e69cd2e6e7f8268f689030097d | |
parent | ff39c63f8301e92599921fc68a23fa9f78ddcd0f (diff) | |
download | Essentials-dd8ddd15a156aaf289249d880650abb20b91af90.tar Essentials-dd8ddd15a156aaf289249d880650abb20b91af90.tar.gz Essentials-dd8ddd15a156aaf289249d880650abb20b91af90.tar.lz Essentials-dd8ddd15a156aaf289249d880650abb20b91af90.tar.xz Essentials-dd8ddd15a156aaf289249d880650abb20b91af90.zip |
Fix more stuff in 3.0
39 files changed, 483 insertions, 173 deletions
diff --git a/Essentials/src/net/ess3/Essentials.java b/Essentials/src/net/ess3/Essentials.java index 3e38a123e..41550ce32 100644 --- a/Essentials/src/net/ess3/Essentials.java +++ b/Essentials/src/net/ess3/Essentials.java @@ -18,8 +18,8 @@ package net.ess3; import net.ess3.api.server.Player; -import net.ess3.api.server.IPlugin; -import net.ess3.api.server.IServer; +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; @@ -76,11 +76,11 @@ public class Essentials implements IEssentials private transient ICommandHandler commandHandler; private transient Economy economy; @Getter - private final IServer server; + private final Server server; @Getter private final Logger logger; @Getter - private final IPlugin plugin; + private final Plugin plugin; public static boolean testing; private transient Metrics metrics; @Getter @@ -88,7 +88,7 @@ public class Essentials implements IEssentials @Getter private transient List<String> vanishedPlayers = new ArrayList<String>(); - public Essentials(final IServer server, final Logger logger, final IPlugin plugin) + public Essentials(final Server server, final Logger logger, final Plugin plugin) { this.server = server; this.logger = logger; diff --git a/Essentials/src/net/ess3/EssentialsTimer.java b/Essentials/src/net/ess3/EssentialsTimer.java index 82e708047..9066e2f0c 100644 --- a/Essentials/src/net/ess3/EssentialsTimer.java +++ b/Essentials/src/net/ess3/EssentialsTimer.java @@ -2,10 +2,10 @@ package net.ess3; import java.util.*; import java.util.logging.Level; -import static net.ess3.I18n._; 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; diff --git a/Essentials/src/net/ess3/api/IEssentials.java b/Essentials/src/net/ess3/api/IEssentials.java index c6cdc8739..2993ad212 100644 --- a/Essentials/src/net/ess3/api/IEssentials.java +++ b/Essentials/src/net/ess3/api/IEssentials.java @@ -1,7 +1,7 @@ package net.ess3.api; -import net.ess3.api.server.IPlugin; -import net.ess3.api.server.IServer; +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.listener.TntExplodeListener; @@ -59,11 +59,11 @@ public interface IEssentials extends IComponent IEconomy getEconomy(); - IServer getServer(); + Server getServer(); Logger getLogger(); - IPlugin getPlugin(); + Plugin getPlugin(); List<String> getVanishedPlayers(); diff --git a/Essentials/src/net/ess3/api/server/IPlayer.java b/Essentials/src/net/ess3/api/server/IPlayer.java deleted file mode 100644 index 4ae44a480..000000000 --- a/Essentials/src/net/ess3/api/server/IPlayer.java +++ /dev/null @@ -1,5 +0,0 @@ -package net.ess3.api.server; - -public interface IPlayer { - -} diff --git a/Essentials/src/net/ess3/api/server/IPlugin.java b/Essentials/src/net/ess3/api/server/Plugin.java index d1f8719f1..6b2019d2e 100644 --- a/Essentials/src/net/ess3/api/server/IPlugin.java +++ b/Essentials/src/net/ess3/api/server/Plugin.java @@ -2,9 +2,10 @@ package net.ess3.api.server; import java.io.File; import java.io.InputStream; +import java.util.logging.Logger; -public interface IPlugin +public interface Plugin { int scheduleAsyncDelayedTask(final Runnable run); @@ -13,6 +14,8 @@ public interface IPlugin 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(); @@ -29,4 +32,6 @@ public interface IPlugin Location callRespawnEvent(Player player, Location loc, boolean bedSpawn); void callSuicideEvent(Player player); + + Logger getLogger(); } diff --git a/Essentials/src/net/ess3/api/server/IServer.java b/Essentials/src/net/ess3/api/server/Server.java index 8bd23bb9d..a0110eb6b 100644 --- a/Essentials/src/net/ess3/api/server/IServer.java +++ b/Essentials/src/net/ess3/api/server/Server.java @@ -4,7 +4,7 @@ import java.util.Collection; import java.util.List; -public interface IServer +public interface Server { List<World> getWorlds(); diff --git a/Essentials/src/net/ess3/api/server/World.java b/Essentials/src/net/ess3/api/server/World.java index 9f1487635..5648ea7ac 100644 --- a/Essentials/src/net/ess3/api/server/World.java +++ b/Essentials/src/net/ess3/api/server/World.java @@ -24,5 +24,5 @@ public interface World { long getTime(); - void setSpawnLocation(int blockX, int blockY, int blockZ); + boolean setSpawnLocation(int blockX, int blockY, int blockZ); } diff --git a/Essentials/src/net/ess3/backup/Backup.java b/Essentials/src/net/ess3/backup/Backup.java index 3aea269e4..534b5655e 100644 --- a/Essentials/src/net/ess3/backup/Backup.java +++ b/Essentials/src/net/ess3/backup/Backup.java @@ -5,7 +5,7 @@ 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.IServer; +import net.ess3.api.server.Server; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; @@ -16,7 +16,7 @@ import lombok.Cleanup; public class Backup implements Runnable, IBackup { - private transient final IServer server; + private transient final Server server; private transient final IEssentials ess; private transient final AtomicBoolean running = new AtomicBoolean(false); private transient int taskId = -1; diff --git a/Essentials/src/net/ess3/bukkit/BukkitPermission.java b/Essentials/src/net/ess3/bukkit/BukkitPermission.java index 49f705ccc..9c60a10e2 100644 --- a/Essentials/src/net/ess3/bukkit/BukkitPermission.java +++ b/Essentials/src/net/ess3/bukkit/BukkitPermission.java @@ -1,9 +1,9 @@ package net.ess3.bukkit; -import net.ess3.api.server.Permission; 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; diff --git a/Essentials/src/net/ess3/bukkit/BukkitPlayer.java b/Essentials/src/net/ess3/bukkit/BukkitPlayer.java index 588ad242d..f5ac075df 100644 --- a/Essentials/src/net/ess3/bukkit/BukkitPlayer.java +++ b/Essentials/src/net/ess3/bukkit/BukkitPlayer.java @@ -1,9 +1,12 @@ package net.ess3.bukkit; -import net.ess3.api.IUser; -import net.ess3.api.server.*; 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.OfflinePlayer; import org.bukkit.entity.LivingEntity; @@ -46,9 +49,9 @@ public class BukkitPlayer extends BukkitCommandSender implements Player }) @Getter private transient OfflinePlayer safePlayer; - private final transient IServer server; + private final transient BukkitServer server; - public BukkitPlayer(final OfflinePlayer player, final IServer server) + public BukkitPlayer(final OfflinePlayer player, final BukkitServer server) { super(player.getPlayer()); this.server = server; @@ -157,10 +160,10 @@ public class BukkitPlayer extends BukkitCommandSender implements Player } } - private int getExpToLevel() + /*private int getExpToLevel() { return getExpToLevel(onlinePlayer.getLevel()); - } + }*/ private static int getExpToLevel(final int level) { diff --git a/Essentials/src/net/ess3/bukkit/Plugin.java b/Essentials/src/net/ess3/bukkit/BukkitPlugin.java index ea3f85366..8e600b936 100644 --- a/Essentials/src/net/ess3/bukkit/Plugin.java +++ b/Essentials/src/net/ess3/bukkit/BukkitPlugin.java @@ -1,7 +1,7 @@ package net.ess3.bukkit; import net.ess3.api.server.Player; -import net.ess3.api.server.IPlugin; +import net.ess3.api.server.Plugin; import net.ess3.api.server.Location; import java.io.File; import lombok.Delegate; @@ -10,12 +10,12 @@ import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.plugin.java.JavaPluginLoader; -public class Plugin implements IPlugin +public class BukkitPlugin implements Plugin { @Delegate private final org.bukkit.plugin.Plugin plugin; - public Plugin(final org.bukkit.plugin.Plugin plugin) + public BukkitPlugin(final org.bukkit.plugin.Plugin plugin) { this.plugin = plugin; } @@ -45,6 +45,12 @@ public class Plugin implements IPlugin } @Override + public int scheduleAsyncRepeatingTask(final Runnable run, final long delay, final long period) + { + return plugin.getServer().getScheduler().scheduleAsyncRepeatingTask(plugin, run, delay, period); + } + + @Override public File getRootFolder() { return plugin.getDataFolder().getParentFile().getParentFile(); diff --git a/Essentials/src/net/ess3/bukkit/Server.java b/Essentials/src/net/ess3/bukkit/BukkitServer.java index e59d7d4f9..65add8be0 100644 --- a/Essentials/src/net/ess3/bukkit/Server.java +++ b/Essentials/src/net/ess3/bukkit/BukkitServer.java @@ -1,13 +1,13 @@ 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.IServer; +import net.ess3.api.server.Server; import net.ess3.api.server.World; -import java.util.*; -import lombok.Delegate; -import lombok.Getter; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; @@ -18,7 +18,7 @@ import org.bukkit.event.world.WorldUnloadEvent; import org.bukkit.plugin.RegisteredServiceProvider; -public class Server implements IServer, Listener +public class BukkitServer implements Server, Listener { private IEssentials ess; private interface Excludes @@ -38,11 +38,11 @@ public class Server implements IServer, Listener private Map<String, World> worldsMap; @Getter private Collection<Player> onlinePlayers; - private Map<org.bukkit.entity.Player, Player> onlinePlayersMap; + private Map<String, Player> onlinePlayersMap; @Getter private CommandSender consoleSender; - public Server(final org.bukkit.Server server) + public BukkitServer(final org.bukkit.Server server) { this.server = server; consoleSender = new BukkitCommandSender(server.getConsoleSender()); @@ -79,9 +79,9 @@ public class Server implements IServer, Listener @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public synchronized void onPlayerLoginEvent(final PlayerLoginEvent event) { - final HashMap<org.bukkit.entity.Player, Player> oplayersMap = new HashMap<org.bukkit.entity.Player, Player>(onlinePlayersMap); + final HashMap<String, Player> oplayersMap = new HashMap<String, Player>(onlinePlayersMap); BukkitPlayer p = new BukkitPlayer(event.getPlayer(), this); - oplayersMap.put(event.getPlayer(), p); + oplayersMap.put(event.getPlayer().getName(), p); onlinePlayersMap = Collections.unmodifiableMap(oplayersMap); onlinePlayers = Collections.unmodifiableCollection(oplayersMap.values()); } @@ -90,8 +90,8 @@ public class Server implements IServer, Listener public synchronized void onPlayerQuitEvent(final PlayerQuitEvent event) { final ArrayList<Player> oplayers = new ArrayList<Player>(onlinePlayers); - final HashMap<org.bukkit.entity.Player, Player> oplayersMap = new HashMap<org.bukkit.entity.Player, Player>(onlinePlayersMap); - oplayersMap.remove(event.getPlayer()); + final HashMap<String, Player> oplayersMap = new HashMap<String, Player>(onlinePlayersMap); + oplayersMap.remove(event.getPlayer().getName()); onlinePlayersMap = Collections.unmodifiableMap(oplayersMap); onlinePlayers = Collections.unmodifiableCollection(oplayersMap.values()); } diff --git a/Essentials/src/net/ess3/bukkit/BukkitWorld.java b/Essentials/src/net/ess3/bukkit/BukkitWorld.java index d754de4c9..1215dd433 100644 --- a/Essentials/src/net/ess3/bukkit/BukkitWorld.java +++ b/Essentials/src/net/ess3/bukkit/BukkitWorld.java @@ -1,5 +1,6 @@ package net.ess3.bukkit; +import java.util.List; import net.ess3.api.server.World; import net.ess3.api.server.ItemStack; import net.ess3.api.server.Location; @@ -8,14 +9,23 @@ import lombok.Getter; import org.bukkit.TreeType; public class BukkitWorld implements World { - @Delegate + 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; - world.getT } @Override @@ -41,5 +51,4 @@ public class BukkitWorld implements World { { throw new UnsupportedOperationException("Not supported yet."); } - } diff --git a/Essentials/src/net/ess3/bukkit/EssentialsPlugin.java b/Essentials/src/net/ess3/bukkit/EssentialsPlugin.java index 4f262f329..e4aba2ecf 100644 --- a/Essentials/src/net/ess3/bukkit/EssentialsPlugin.java +++ b/Essentials/src/net/ess3/bukkit/EssentialsPlugin.java @@ -30,10 +30,10 @@ public class EssentialsPlugin extends JavaPlugin public void onEnable() { - Server server = new Server(getServer()); + BukkitServer server = new BukkitServer(getServer()); final PluginManager pm = this.getServer().getPluginManager(); pm.registerEvents(server, this); - ess = new Essentials(server, getLogger(), new Plugin(this)); + ess = new Essentials(server, getLogger(), new BukkitPlugin(this)); if (VersionCheck.checkVersion(this)) { try @@ -86,7 +86,7 @@ public class EssentialsPlugin extends JavaPlugin { CommandSender commandSender; if (sender instanceof org.bukkit.entity.Player) { - commandSender = ((Server)ess.getServer()).getPlayer((org.bukkit.entity.Player)sender); + commandSender = ((BukkitServer)ess.getServer()).getPlayer((org.bukkit.entity.Player)sender); } else { commandSender = new BukkitCommandSender(sender); } diff --git a/Essentials/src/net/ess3/bukkit/Inventory.java b/Essentials/src/net/ess3/bukkit/Inventory.java index 30ddaae52..47e05f979 100644 --- a/Essentials/src/net/ess3/bukkit/Inventory.java +++ b/Essentials/src/net/ess3/bukkit/Inventory.java @@ -45,4 +45,10 @@ public class Inventory implements IInventory { 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/commands/Commandantioch.java b/Essentials/src/net/ess3/commands/Commandantioch.java index 7dd8e2b41..edeaef6a9 100644 --- a/Essentials/src/net/ess3/commands/Commandantioch.java +++ b/Essentials/src/net/ess3/commands/Commandantioch.java @@ -6,7 +6,7 @@ import net.ess3.utils.LocationUtil; import org.bukkit.entity.TNTPrimed; - +//TODO: Remove this? public class Commandantioch extends EssentialsCommand { @Override diff --git a/Essentials/src/net/ess3/commands/Commandbalance.java b/Essentials/src/net/ess3/commands/Commandbalance.java index a35b86182..196425be5 100644 --- a/Essentials/src/net/ess3/commands/Commandbalance.java +++ b/Essentials/src/net/ess3/commands/Commandbalance.java @@ -1,10 +1,10 @@ package net.ess3.commands; import static net.ess3.I18n._; -import net.ess3.utils.Util; import net.ess3.api.IUser; import net.ess3.api.server.CommandSender; import net.ess3.permissions.Permissions; +import net.ess3.utils.Util; public class Commandbalance extends EssentialsCommand @@ -16,7 +16,7 @@ public class Commandbalance extends EssentialsCommand { throw new NotEnoughArgumentsException(); } - sender.sendMessage(_("balance", Util.displayCurrency(getPlayer(args, 0, true).getMoney(), ess))); + sender.sendMessage(_("balance", Util.displayCurrency(ess.getUserMap().matchUser(args[0], true, false).getMoney(), ess))); } @Override @@ -25,7 +25,7 @@ public class Commandbalance extends EssentialsCommand final double bal = (args.length < 1 || !Permissions.BALANCE_OTHERS.isAuthorized(user) ? user - : getPlayer(args, 0, true)).getMoney(); + : ess.getUserMap().matchUser(args[0], true, false)).getMoney(); user.sendMessage(_("balance", Util.displayCurrency(bal, ess))); } } diff --git a/Essentials/src/net/ess3/commands/Commandfly.java b/Essentials/src/net/ess3/commands/Commandfly.java index 9d587bdb2..d29ca23e6 100644 --- a/Essentials/src/net/ess3/commands/Commandfly.java +++ b/Essentials/src/net/ess3/commands/Commandfly.java @@ -4,7 +4,7 @@ import static net.ess3.I18n._; import net.ess3.api.IUser; import net.ess3.api.server.CommandSender; import net.ess3.api.server.Player; -import net.ess3.api.server.IServer; +import net.ess3.api.server.Server; import net.ess3.permissions.Permissions; @@ -39,7 +39,7 @@ public class Commandfly extends EssentialsCommand user.sendMessage(_("flyMode", _(user.getAllowFlight() ? "enabled" : "disabled"), user.getDisplayName())); } - private void flyOtherPlayers(final IServer server, final CommandSender sender, final String[] args) + private void flyOtherPlayers(final Server server, final CommandSender sender, final String[] args) { for (Player matchPlayer : ess.getUserMap().matchUsers(args[0],true,true)) { diff --git a/Essentials/src/net/ess3/commands/Commandnick.java b/Essentials/src/net/ess3/commands/Commandnick.java index 1d844e54d..fad5bc348 100644 --- a/Essentials/src/net/ess3/commands/Commandnick.java +++ b/Essentials/src/net/ess3/commands/Commandnick.java @@ -7,7 +7,7 @@ import net.ess3.api.ISettings; import net.ess3.api.IUser; import net.ess3.api.server.CommandSender; import net.ess3.api.server.Player; -import net.ess3.api.server.IServer; +import net.ess3.api.server.Server; import net.ess3.permissions.Permissions; import net.ess3.utils.Util; @@ -78,7 +78,7 @@ public class Commandnick extends EssentialsCommand } } - private void resetAllNicknames(final IServer server) + private void resetAllNicknames(final Server server) { for (Player player : server.getOnlinePlayers()) { diff --git a/Essentials/src/net/ess3/commands/Commandtp.java b/Essentials/src/net/ess3/commands/Commandtp.java index 45cdf5870..7fbfd1b54 100644 --- a/Essentials/src/net/ess3/commands/Commandtp.java +++ b/Essentials/src/net/ess3/commands/Commandtp.java @@ -5,6 +5,7 @@ import net.ess3.Console; import static net.ess3.I18n._; import net.ess3.api.ISettings; import net.ess3.api.IUser; +import net.ess3.api.server.CommandSender; import net.ess3.economy.Trade; import net.ess3.permissions.Permissions; import net.ess3.permissions.WorldPermissions; diff --git a/Essentials/src/net/ess3/commands/Commandwarp.java b/Essentials/src/net/ess3/commands/Commandwarp.java index c470a3a77..ab2eee92b 100644 --- a/Essentials/src/net/ess3/commands/Commandwarp.java +++ b/Essentials/src/net/ess3/commands/Commandwarp.java @@ -12,6 +12,7 @@ import java.util.Iterator; import java.util.List; import java.util.Locale; //TODO: remove bukkit +import net.ess3.api.server.CommandSender; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -36,7 +37,7 @@ public class Commandwarp extends EssentialsCommand IUser otherUser = null; if (args.length == 2 && Permissions.WARP_OTHERS.isAuthorized(user)) { - otherUser = ess.getUserMap().getUser(server.getPlayer(args[1])); + otherUser = ess.getUserMap().matchUser(args[1],Permissions.WARP_HIDDEN.isAuthorized(user), true); if (otherUser == null) { throw new Exception(_("playerNotFound")); @@ -57,7 +58,7 @@ public class Commandwarp extends EssentialsCommand warpList(sender, args); throw new NoChargeException(); } - IUser otherUser = ess.getUserMap().getUser(server.getPlayer(args[1])); + IUser otherUser = ess.getUserMap().matchUser(args[1],Permissions.WARP_HIDDEN.isAuthorized(sender), true); if (otherUser == null) { throw new Exception(_("playerNotFound")); diff --git a/Essentials/src/net/ess3/commands/EssentialsCommand.java b/Essentials/src/net/ess3/commands/EssentialsCommand.java index 8425bebd5..6afd42f01 100644 --- a/Essentials/src/net/ess3/commands/EssentialsCommand.java +++ b/Essentials/src/net/ess3/commands/EssentialsCommand.java @@ -5,7 +5,7 @@ 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.IServer; +import net.ess3.api.server.Server; import net.ess3.api.server.Player; import net.ess3.economy.Trade; import net.ess3.permissions.AbstractSuperpermsPermission; @@ -19,7 +19,7 @@ public abstract class EssentialsCommand extends AbstractSuperpermsPermission imp protected transient String commandName; protected transient IEssentials ess; protected transient IEssentialsModule module; - protected transient IServer server; + protected transient Server server; protected transient Logger logger; private transient String permission; @@ -38,7 +38,7 @@ public abstract class EssentialsCommand extends AbstractSuperpermsPermission imp this.module = module; } - protected IUser getPlayer(final String[] args, final int pos) throws NoSuchFieldException, NotEnoughArgumentsException + /*protected IUser getPlayer(final String[] args, final int pos) throws NoSuchFieldException, NotEnoughArgumentsException { return getPlayer(args, pos, false); } @@ -81,7 +81,7 @@ public abstract class EssentialsCommand extends AbstractSuperpermsPermission imp } } throw new NoSuchFieldException(_("playerNotFound")); - } + }*/ @Override public final void run(final IUser user, final Command cmd, final String commandLabel, final String[] args) throws Exception diff --git a/Essentials/src/net/ess3/commands/EssentialsCommandHandler.java b/Essentials/src/net/ess3/commands/EssentialsCommandHandler.java index dd2e1cddb..3d026d5c1 100644 --- a/Essentials/src/net/ess3/commands/EssentialsCommandHandler.java +++ b/Essentials/src/net/ess3/commands/EssentialsCommandHandler.java @@ -5,13 +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.PluginCommand; import org.bukkit.command.PluginCommandYamlParser; -import org.bukkit.entity.Player; -import org.bukkit.plugin.Plugin; public class EssentialsCommandHandler implements ICommandHandler @@ -63,6 +64,7 @@ public class EssentialsCommandHandler implements ICommandHandler { settings.unlock(); } + // TODO: Move this stuff to bukkit workarounds // Allow plugins to override the command via onCommand if (!overridden && (!commandLabel.startsWith("e") || commandLabel.equalsIgnoreCase(command.getName()))) { @@ -102,7 +104,7 @@ public class EssentialsCommandHandler implements ICommandHandler IUser user = null; if (sender instanceof Player) { - user = ess.getUserMap().getUser((Player)sender); + user = ((Player)sender).getUser(); LOGGER.log(Level.INFO, String.format("[PLAYER_COMMAND] %s: /%s %s ", ((Player)sender).getName(), commandLabel, EssentialsCommand.getFinalArg(args, 0))); } @@ -202,6 +204,7 @@ public class EssentialsCommandHandler implements ICommandHandler { } + //TODO: Move this stuff to bukkit workarounds public final void addPlugin(final Plugin plugin) { if (plugin.getDescription().getMain().contains("com.earth2me.essentials")) diff --git a/Essentials/src/net/ess3/economy/Trade.java b/Essentials/src/net/ess3/economy/Trade.java index 85d8e53f3..5dc5322e8 100644 --- a/Essentials/src/net/ess3/economy/Trade.java +++ b/Essentials/src/net/ess3/economy/Trade.java @@ -1,14 +1,5 @@ package net.ess3.economy; -import static net.ess3.I18n._; -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 java.io.File; import java.io.FileWriter; import java.io.IOException; @@ -19,6 +10,15 @@ import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; import lombok.Cleanup; +import static net.ess3.I18n._; +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; diff --git a/Essentials/src/net/ess3/metrics/Metrics.java b/Essentials/src/net/ess3/metrics/Metrics.java index 415938dea..643d86d30 100644 --- a/Essentials/src/net/ess3/metrics/Metrics.java +++ b/Essentials/src/net/ess3/metrics/Metrics.java @@ -30,11 +30,7 @@ import java.net.URLConnection; import java.net.URLEncoder; import java.util.*; import java.util.logging.Level; -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; +import net.ess3.api.server.Plugin; /** @@ -193,7 +189,7 @@ public class Metrics } // Begin hitting the server with glorious data - taskId = plugin.getServer().getScheduler().scheduleAsyncRepeatingTask(plugin, new Runnable() + taskId = plugin.scheduleAsyncRepeatingTask(new Runnable() { private boolean firstPost = true; @@ -207,7 +203,7 @@ public class Metrics // Disable Task, if it is running and the server owner decided to opt-out if (isOptOut() && taskId > 0) { - plugin.getServer().getScheduler().cancelTask(taskId); + plugin.cancelTask(taskId); taskId = -1; } } @@ -223,7 +219,7 @@ public class Metrics } catch (IOException e) { - Bukkit.getLogger().log(Level.INFO, "[Metrics] " + e.getMessage()); + plugin.getLogger().log(Level.INFO, "[Metrics] " + e.getMessage()); } } }, 0, PING_INTERVAL * 1200); @@ -246,12 +242,12 @@ public class Metrics } catch (IOException ex) { - Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage()); + plugin.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage()); return true; } catch (InvalidConfigurationException ex) { - Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage()); + plugin.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage()); return true; } return configuration.getBoolean("opt-out", false); @@ -304,7 +300,7 @@ public class Metrics // Disable Task, if it is running if (taskId >= 0) { - this.plugin.getServer().getScheduler().cancelTask(taskId); + this.plugin.cancelTask(taskId); taskId = -1; } } @@ -323,7 +319,7 @@ public class Metrics data.append(encode("guid")).append('=').append(encode(guid)); encodeDataPair(data, "version", description.getVersion()); encodeDataPair(data, "server", Bukkit.getVersion()); - encodeDataPair(data, "players", Integer.toString(Bukkit.getServer().getOnlinePlayers().length)); + encodeDataPair(data, "players", Integer.toString(plugin.getServer().getOnlinePlayers().length)); encodeDataPair(data, "revision", String.valueOf(REVISION)); // If we're pinging, append it diff --git a/Essentials/src/net/ess3/permissions/Permissions.java b/Essentials/src/net/ess3/permissions/Permissions.java index f80a79f8d..1571b1107 100644 --- a/Essentials/src/net/ess3/permissions/Permissions.java +++ b/Essentials/src/net/ess3/permissions/Permissions.java @@ -85,6 +85,7 @@ public enum Permissions implements IPermission TPOHERE, UNLIMITED_OTHERS, WARP_LIST(Permission.Default.TRUE), + WARP_HIDDEN, WARP_OTHERS, VANISH_SEE_OTHERS; private static final String base = "essentials."; diff --git a/Essentials/src/net/ess3/ranks/GMGroups.java b/Essentials/src/net/ess3/ranks/GMGroups.java index 650ebac11..ef5ff0a60 100644 --- a/Essentials/src/net/ess3/ranks/GMGroups.java +++ b/Essentials/src/net/ess3/ranks/GMGroups.java @@ -6,6 +6,7 @@ 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; @@ -24,7 +25,7 @@ public class GMGroups implements IRanks { @Override public double getHealCooldown(IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getBase()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); if (handler == null) { return 0; @@ -35,7 +36,7 @@ public class GMGroups implements IRanks { @Override public double getTeleportCooldown(IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getBase()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); if (handler == null) { return 0; @@ -46,7 +47,7 @@ public class GMGroups implements IRanks { @Override public double getTeleportDelay(IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getBase()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); if (handler == null) { return 0; @@ -57,7 +58,7 @@ public class GMGroups implements IRanks { @Override public String getPrefix(IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getBase()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); if (handler == null) { return null; @@ -68,7 +69,7 @@ public class GMGroups implements IRanks { @Override public String getSuffix(IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getBase()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); if (handler == null) { return null; @@ -79,7 +80,7 @@ public class GMGroups implements IRanks { @Override public int getHomeLimit(IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getBase()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); if (handler == null) { return 0; @@ -104,7 +105,7 @@ public class GMGroups implements IRanks { private String getRawChatFormat(final IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getBase()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); if (handler != null) { String chatformat = handler.getPermissionString(player.getName(), "chatformat"); @@ -122,7 +123,7 @@ public class GMGroups implements IRanks { @Override public String getMainGroup(IUser player) { - final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getBase()); + final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); if (handler == null) { return null; @@ -133,7 +134,7 @@ public class GMGroups implements IRanks { @Override public boolean inGroup(IUser player, String groupname) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getBase()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); if (handler == null) { return false; diff --git a/Essentials/src/net/ess3/ranks/VaultGroups.java b/Essentials/src/net/ess3/ranks/VaultGroups.java index d9558d62f..ab0a32755 100644 --- a/Essentials/src/net/ess3/ranks/VaultGroups.java +++ b/Essentials/src/net/ess3/ranks/VaultGroups.java @@ -6,6 +6,7 @@ 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; @@ -23,42 +24,42 @@ public class VaultGroups implements IRanks public double getHealCooldown(IUser player) { Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPlayerInfoDouble(player.getBase(), "healcooldown", 0); + return chat.getPlayerInfoDouble(((BukkitPlayer)player.getBase()).getPlayer(), "healcooldown", 0); } @Override public double getTeleportCooldown(IUser player) { Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPlayerInfoDouble(player.getBase(), "teleportcooldown", 0); + return chat.getPlayerInfoDouble(((BukkitPlayer)player.getBase()).getPlayer(), "teleportcooldown", 0); } @Override public double getTeleportDelay(IUser player) { Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPlayerInfoDouble(player.getBase(), "teleportdelay", 0); + return chat.getPlayerInfoDouble(((BukkitPlayer)player.getBase()).getPlayer(), "teleportdelay", 0); } @Override public String getPrefix(IUser player) { Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPlayerPrefix(player.getBase()); + return chat.getPlayerPrefix(((BukkitPlayer)player.getBase()).getPlayer()); } @Override public String getSuffix(IUser player) { Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPlayerSuffix(player.getBase()); + return chat.getPlayerSuffix(((BukkitPlayer)player.getBase()).getPlayer()); } @Override public int getHomeLimit(IUser player) { Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPlayerInfoInteger(player.getBase(), "homes", 0); + return chat.getPlayerInfoInteger(((BukkitPlayer)player.getBase()).getPlayer(), "homes", 0); } @Override @@ -79,7 +80,7 @@ public class VaultGroups implements IRanks private String getRawChatFormat(final IUser player) { Chat chat = ess.getServer().getServiceProvider(Chat.class); - String chatformat = chat.getPlayerInfoString(player.getBase(), "chatformat", ""); + String chatformat = chat.getPlayerInfoString(((BukkitPlayer)player.getBase()).getPlayer(), "chatformat", ""); if (chatformat != null && !chatformat.isEmpty()) { return chatformat; @@ -95,14 +96,14 @@ public class VaultGroups implements IRanks public String getMainGroup(IUser player) { Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPrimaryGroup(player.getBase()); + return chat.getPrimaryGroup(((BukkitPlayer)player.getBase()).getPlayer()); } @Override public boolean inGroup(IUser player, String groupname) { Chat chat = ess.getServer().getServiceProvider(Chat.class); - for (String group : chat.getPlayerGroups(player.getBase())) + for (String group : chat.getPlayerGroups(((BukkitPlayer)player.getBase()).getPlayer())) { if (group.equalsIgnoreCase(groupname)) { diff --git a/Essentials/src/net/ess3/storage/BukkitConstructor.java b/Essentials/src/net/ess3/storage/BukkitConstructor.java index 81fe3daa2..23a88325f 100644 --- a/Essentials/src/net/ess3/storage/BukkitConstructor.java +++ b/Essentials/src/net/ess3/storage/BukkitConstructor.java @@ -5,8 +5,11 @@ import java.util.List; 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 org.bukkit.enchantments.Enchantment; -import org.bukkit.inventory.ItemStack; import org.bukkit.material.MaterialData; import org.yaml.snakeyaml.TypeDescription; import org.yaml.snakeyaml.constructor.Constructor; @@ -18,9 +21,9 @@ import org.yaml.snakeyaml.nodes.*; public class BukkitConstructor extends Constructor { private final transient Pattern NUMPATTERN = Pattern.compile("\\d+"); - private final transient IPlugin plugin; + private final transient Plugin plugin; - public BukkitConstructor(final Class clazz, final IPlugin plugin) + public BukkitConstructor(final Class clazz, final Plugin plugin) { super(clazz); this.plugin = plugin; @@ -41,11 +44,11 @@ public class BukkitConstructor extends Constructor if (NUMPATTERN.matcher(val).matches()) { final int typeId = Integer.parseInt(val); - mat = Material.getMaterial(typeId); + mat = Material.get(typeId); } else { - mat = Material.matchMaterial(val); + mat = Material.match(val); } return mat; } @@ -103,11 +106,11 @@ public class BukkitConstructor extends Constructor if (NUMPATTERN.matcher(split2[0]).matches()) { final int typeId = Integer.parseInt(split2[0]); - mat = Material.getMaterial(typeId); + mat = Material.get(typeId); } else { - mat = Material.matchMaterial(split2[0]); + mat = Material.match(split2[0]); } if (mat == null) { @@ -123,7 +126,7 @@ public class BukkitConstructor extends Constructor { size = Integer.parseInt(split1[1]); } - final ItemStack stack = new ItemStack(mat, size, data); + final ItemStack stack = ItemStack.create(mat, size, data); if (split1.length > 2) { for (int i = 2; i < split1.length; i++) diff --git a/Essentials/src/net/ess3/storage/YamlStorageReader.java b/Essentials/src/net/ess3/storage/YamlStorageReader.java index dc5c24d91..603765e69 100644 --- a/Essentials/src/net/ess3/storage/YamlStorageReader.java +++ b/Essentials/src/net/ess3/storage/YamlStorageReader.java @@ -1,6 +1,6 @@ package net.ess3.storage; -import net.ess3.api.server.IPlugin; +import net.ess3.api.server.Plugin; import java.io.Reader; import java.lang.reflect.Field; import java.util.*; @@ -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 IPlugin plugin; + private transient final Plugin plugin; - public YamlStorageReader(final Reader reader, final IPlugin plugin) + public YamlStorageReader(final Reader reader, final Plugin plugin) { this.reader = reader; this.plugin = plugin; diff --git a/Essentials/src/net/ess3/user/UserData.java b/Essentials/src/net/ess3/user/UserData.java index 3582eaa89..20fb9abb7 100644 --- a/Essentials/src/net/ess3/user/UserData.java +++ b/Essentials/src/net/ess3/user/UserData.java @@ -1,10 +1,10 @@ package net.ess3.user; -import net.ess3.api.server.Material; -import net.ess3.storage.*; import java.util.*; import lombok.Data; import lombok.EqualsAndHashCode; +import net.ess3.api.server.Material; +import net.ess3.storage.*; diff --git a/Essentials/src/net/ess3/user/UserMap.java b/Essentials/src/net/ess3/user/UserMap.java index cc34536b3..3a8e3684b 100644 --- a/Essentials/src/net/ess3/user/UserMap.java +++ b/Essentials/src/net/ess3/user/UserMap.java @@ -1,15 +1,17 @@ package net.ess3.user; import java.io.File; +import java.util.Collections; +import java.util.LinkedHashSet; import java.util.Locale; import java.util.Set; 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 org.bukkit.Bukkit; -import org.bukkit.entity.Player; +import net.ess3.utils.Util; public class UserMap extends StorageObjectMap<IUser> implements IUserMap @@ -94,4 +96,158 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap } return user; } + + @Override + public IUser matchUser(final String name, final boolean includeHidden, final boolean includeOffline) throws TooManyMatchesException + { + final Set<IUser> users = matchUsers(name, includeHidden, includeOffline); + if (users == null || users.isEmpty()) + { + return null; + } + else + { + if (users.size() > 1) + { + throw new TooManyMatchesException(); + } + else + { + return users.iterator().next(); + } + } + } + + @Override + public Set<IUser> matchUsers(final String name, final boolean includeHidden, final boolean includeOffline) + { + final String colorlessName = Util.stripColor(name); + final String[] search = colorlessName.split(","); + final boolean multisearch = search.length > 1; + final Set<IUser> result = new LinkedHashSet<IUser>(); + final String nicknamePrefix = Util.stripColor(getNickNamePrefix()); + for (String searchString : search) + { + if (searchString.isEmpty()) + { + continue; + } + + if (searchString.startsWith(nicknamePrefix)) + { + searchString = searchString.substring(nicknamePrefix.length()); + } + searchString = searchString.toLowerCase(Locale.ENGLISH); + final boolean multimatching = searchString.endsWith("*"); + if (multimatching) + { + searchString = searchString.substring(0, searchString.length() - 1); + } + Player match = null; + for (Player player : ess.getServer().getOnlinePlayers()) + { + if (player.getName().equalsIgnoreCase(searchString) + && (includeHidden || (includeOffline && player.getUser().isHidden()))) + { + match = player; + break; + } + } + if (match != null) + { + if (multimatching || multisearch) + { + result.add(match.getUser()); + } + else + { + return Collections.singleton(match.getUser()); + } + } + for (Player player : ess.getServer().getOnlinePlayers()) + { + final String nickname = player.getUser().getData().getNickname(); + if (nickname != null && !nickname.isEmpty() + && nickname.equalsIgnoreCase(searchString) + && (includeHidden || (includeOffline && player.getUser().isHidden()))) + { + if (multimatching || multisearch) + { + result.add(player.getUser()); + } + else + { + return Collections.singleton(player.getUser()); + } + } + } + if (includeOffline) + { + for (String playerName : getAllUniqueUsers()) + { + if (playerName.equals(searchString)) + { + match = getUser(playerName); + break; + } + } + if (match != null) + { + if (multimatching || multisearch) + { + result.add(match.getUser()); + } + else + { + return Collections.singleton(match.getUser()); + } + } + } + if (multimatching || match == null) + { + for (Player player : ess.getServer().getOnlinePlayers()) + { + if (player.getName().toLowerCase(Locale.ENGLISH).startsWith(searchString) + && (includeHidden || (includeOffline && player.getUser().isHidden()))) + { + result.add(player.getUser()); + break; + } + final String nickname = player.getUser().getData().getNickname(); + if (nickname != null && !nickname.isEmpty() + && nickname.toLowerCase(Locale.ENGLISH).startsWith(searchString) + && (includeHidden || (includeOffline && player.getUser().isHidden()))) + { + result.add(player.getUser()); + break; + } + } + if (includeOffline) + { + for (String playerName : getAllUniqueUsers()) + { + if (playerName.startsWith(searchString)) + { + result.add(getUser(playerName)); + break; + } + } + } + } + } + return result; + } + + private String getNickNamePrefix() + { + ess.getSettings().acquireReadLock(); + try + { + return ess.getSettings().getData().getChat().getNicknamePrefix(); + } + finally + { + ess.getSettings().unlock(); + } + } } diff --git a/Essentials/test/com/earth2me/essentials/testserver/World.java b/Essentials/test/com/earth2me/essentials/testserver/World.java deleted file mode 100644 index d1994c479..000000000 --- a/Essentials/test/com/earth2me/essentials/testserver/World.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.earth2me.essentials.testserver; - -import net.ess3.api.server.Location; -import org.bukkit.TreeType; - -public class World implements World { - - @Override - public String getName() - { - return "TestWorld"; - } - - @Override - public boolean generateTree(Location safeLocation, TreeType tree) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getHighestBlockYAt(int topX, int topZ) - { - throw new UnsupportedOperationException("Not supported yet."); - } - -} diff --git a/Essentials/test/com/earth2me/essentials/EssentialsTest.java b/Essentials/test/net/ess3/EssentialsTest.java index 39ce92d25..7257a33ad 100644 --- a/Essentials/test/com/earth2me/essentials/EssentialsTest.java +++ b/Essentials/test/net/ess3/EssentialsTest.java @@ -1,14 +1,15 @@ -package com.earth2me.essentials; +package net.ess3; -import com.earth2me.essentials.testserver.Plugin; -import com.earth2me.essentials.testserver.Server; import java.util.logging.Logger; import junit.framework.TestCase; -import net.ess3.Essentials; +import net.ess3.testserver.TestPlugin; +import net.ess3.testserver.TestServer; +import net.ess3.testserver.TestWorld; public abstract class EssentialsTest extends TestCase { - protected final transient Server server; - protected final transient Plugin plugin; + protected final transient TestServer server; + protected final transient TestPlugin plugin; + protected final transient TestWorld world; protected final transient Logger logger; protected final transient Essentials ess; @@ -17,8 +18,9 @@ public abstract class EssentialsTest extends TestCase { { super(testName); logger = Logger.getLogger(this.getName()); - server = new Server(); - plugin = new Plugin(); + server = new TestServer(); + world = (TestWorld)server.getWorlds().get(0); + plugin = new TestPlugin(); ess = new Essentials(server, logger, plugin); Essentials.testing = true; ess.onEnable(); diff --git a/Essentials/test/net/ess3/StorageTest.java b/Essentials/test/net/ess3/StorageTest.java index 3ed119d37..4ba1e6400 100644 --- a/Essentials/test/net/ess3/StorageTest.java +++ b/Essentials/test/net/ess3/StorageTest.java @@ -1,16 +1,13 @@ package net.ess3; import java.io.*; - +import net.ess3.api.server.Location; import net.ess3.settings.Settings; import net.ess3.storage.ObjectLoadException; import net.ess3.storage.StorageObject; import net.ess3.storage.YamlStorageReader; import net.ess3.storage.YamlStorageWriter; import net.ess3.utils.ExecuteTimer; -import org.bukkit.Location; -import org.bukkit.World; -import org.bukkit.World.Environment; import org.junit.Test; @@ -65,8 +62,6 @@ public class StorageTest extends EssentialsTest { try { - FakeServer server = new FakeServer(); - World world = server.createWorld("testWorld", Environment.NORMAL); ExecuteTimer ext = new ExecuteTimer(); ext.start(); final ByteArrayInputStream bais = new ByteArrayInputStream(new byte[0]); @@ -80,7 +75,7 @@ public class StorageTest extends EssentialsTest for (int j = 0; j < 10000; j++) { - userdata.getHomes().put("home", new net.ess3.storage.StoredLocation(new Location(world, j, j, j))); + userdata.getHomes().put("home", new net.ess3.storage.StoredLocation(Location.create(world, j, j, j))); } ext.mark("change home 10000 times"); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); diff --git a/Essentials/test/com/earth2me/essentials/testserver/Player.java b/Essentials/test/net/ess3/testserver/TestPlayer.java index 6e18abb88..70b8d0e11 100644 --- a/Essentials/test/com/earth2me/essentials/testserver/Player.java +++ b/Essentials/test/net/ess3/testserver/TestPlayer.java @@ -1,9 +1,9 @@ -package com.earth2me.essentials.testserver; +package net.ess3.testserver; import net.ess3.api.IUser; import net.ess3.api.server.*; -public class Player implements Player { +public class TestPlayer implements Player { @Override public IUser getUser() @@ -42,7 +42,7 @@ public class Player implements Player { } @Override - public World getWorld() + public TestWorld getWorld() { throw new UnsupportedOperationException("Not supported yet."); } @@ -149,4 +149,52 @@ public class Player implements Player { throw new UnsupportedOperationException("Not supported yet."); } + @Override + public void setTotalExperience(int exp) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public int getTotalExperience() + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void setDisplayName(String name) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void setPlayerListName(String name) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void setSleepingIgnored(boolean b) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public boolean isBanned() + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void setCompassTarget(Location loc) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void damage(int value) + { + throw new UnsupportedOperationException("Not supported yet."); + } + } diff --git a/Essentials/test/com/earth2me/essentials/testserver/Plugin.java b/Essentials/test/net/ess3/testserver/TestPlugin.java index cb5334da5..9645c7902 100644 --- a/Essentials/test/com/earth2me/essentials/testserver/Plugin.java +++ b/Essentials/test/net/ess3/testserver/TestPlugin.java @@ -1,10 +1,13 @@ -package com.earth2me.essentials.testserver; +package net.ess3.testserver; -import net.ess3.api.server.IPlugin; import java.io.File; import java.io.InputStream; +import java.util.logging.Logger; +import net.ess3.api.server.Location; +import net.ess3.api.server.Player; +import net.ess3.api.server.Plugin; -public class Plugin implements IPlugin { +public class TestPlugin implements Plugin { @Override public int scheduleAsyncDelayedTask(Runnable run) @@ -66,4 +69,28 @@ public class Plugin implements IPlugin { throw new UnsupportedOperationException("Not supported yet."); } + @Override + public int scheduleAsyncRepeatingTask(Runnable run, long delay, long period) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Location callRespawnEvent(Player player, Location loc, boolean bedSpawn) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void callSuicideEvent(Player player) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Logger getLogger() + { + throw new UnsupportedOperationException("Not supported yet."); + } + } diff --git a/Essentials/test/com/earth2me/essentials/testserver/Server.java b/Essentials/test/net/ess3/testserver/TestServer.java index eb9a74bdb..b46d13dd8 100644 --- a/Essentials/test/com/earth2me/essentials/testserver/Server.java +++ b/Essentials/test/net/ess3/testserver/TestServer.java @@ -1,16 +1,16 @@ -package com.earth2me.essentials.testserver; +package net.ess3.testserver; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; -import net.ess3.api.server.IServer; -import net.ess3.api.server.World; import java.util.Collection; import java.util.Collections; import java.util.List; +import net.ess3.api.server.CommandSender; +import net.ess3.api.server.Player; +import net.ess3.api.server.Server; +import net.ess3.api.server.World; -public class Server implements IServer { +public class TestServer implements Server { - public Server() + public TestServer() { } @@ -19,7 +19,7 @@ public class Server implements IServer { @Override public List<World> getWorlds() { - return Collections.<World>singletonList(new World()); + return Collections.<World>singletonList(new TestWorld()); } @Override diff --git a/Essentials/test/net/ess3/testserver/TestWorld.java b/Essentials/test/net/ess3/testserver/TestWorld.java new file mode 100644 index 000000000..ce258004d --- /dev/null +++ b/Essentials/test/net/ess3/testserver/TestWorld.java @@ -0,0 +1,77 @@ +package net.ess3.testserver; + +import java.util.UUID; +import net.ess3.api.server.ItemStack; +import net.ess3.api.server.Location; +import net.ess3.api.server.World; +import org.bukkit.TreeType; + +public class TestWorld implements World { + + @Override + public String getName() + { + return "TestWorld"; + } + + @Override + public boolean generateTree(Location safeLocation, TreeType tree) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public int getHighestBlockYAt(int topX, int topZ) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public ItemStack dropItem(Location loc, ItemStack stack) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public UUID getUID() + { + 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."); + } + + @Override + public void setStorm(boolean b) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void setWeatherDuration(int i) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public long getTime() + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public boolean setSpawnLocation(int blockX, int blockY, int blockZ) + { + throw new UnsupportedOperationException("Not supported yet."); + } + +} |