summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsnowleo <schneeleo@gmail.com>2012-07-22 11:28:14 +0200
committersnowleo <schneeleo@gmail.com>2012-07-22 11:28:14 +0200
commitdd8ddd15a156aaf289249d880650abb20b91af90 (patch)
treec6a9a11f86e059e69cd2e6e7f8268f689030097d
parentff39c63f8301e92599921fc68a23fa9f78ddcd0f (diff)
downloadEssentials-dd8ddd15a156aaf289249d880650abb20b91af90.tar
Essentials-dd8ddd15a156aaf289249d880650abb20b91af90.tar.gz
Essentials-dd8ddd15a156aaf289249d880650abb20b91af90.tar.lz
Essentials-dd8ddd15a156aaf289249d880650abb20b91af90.tar.xz
Essentials-dd8ddd15a156aaf289249d880650abb20b91af90.zip
Fix more stuff in 3.0
-rw-r--r--Essentials/src/net/ess3/Essentials.java10
-rw-r--r--Essentials/src/net/ess3/EssentialsTimer.java2
-rw-r--r--Essentials/src/net/ess3/api/IEssentials.java8
-rw-r--r--Essentials/src/net/ess3/api/server/IPlayer.java5
-rw-r--r--Essentials/src/net/ess3/api/server/Plugin.java (renamed from Essentials/src/net/ess3/api/server/IPlugin.java)7
-rw-r--r--Essentials/src/net/ess3/api/server/Server.java (renamed from Essentials/src/net/ess3/api/server/IServer.java)2
-rw-r--r--Essentials/src/net/ess3/api/server/World.java2
-rw-r--r--Essentials/src/net/ess3/backup/Backup.java4
-rw-r--r--Essentials/src/net/ess3/bukkit/BukkitPermission.java2
-rw-r--r--Essentials/src/net/ess3/bukkit/BukkitPlayer.java15
-rw-r--r--Essentials/src/net/ess3/bukkit/BukkitPlugin.java (renamed from Essentials/src/net/ess3/bukkit/Plugin.java)12
-rw-r--r--Essentials/src/net/ess3/bukkit/BukkitServer.java (renamed from Essentials/src/net/ess3/bukkit/Server.java)22
-rw-r--r--Essentials/src/net/ess3/bukkit/BukkitWorld.java15
-rw-r--r--Essentials/src/net/ess3/bukkit/EssentialsPlugin.java6
-rw-r--r--Essentials/src/net/ess3/bukkit/Inventory.java6
-rw-r--r--Essentials/src/net/ess3/commands/Commandantioch.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandbalance.java6
-rw-r--r--Essentials/src/net/ess3/commands/Commandfly.java4
-rw-r--r--Essentials/src/net/ess3/commands/Commandnick.java4
-rw-r--r--Essentials/src/net/ess3/commands/Commandtp.java1
-rw-r--r--Essentials/src/net/ess3/commands/Commandwarp.java5
-rw-r--r--Essentials/src/net/ess3/commands/EssentialsCommand.java8
-rw-r--r--Essentials/src/net/ess3/commands/EssentialsCommandHandler.java9
-rw-r--r--Essentials/src/net/ess3/economy/Trade.java18
-rw-r--r--Essentials/src/net/ess3/metrics/Metrics.java20
-rw-r--r--Essentials/src/net/ess3/permissions/Permissions.java1
-rw-r--r--Essentials/src/net/ess3/ranks/GMGroups.java19
-rw-r--r--Essentials/src/net/ess3/ranks/VaultGroups.java19
-rw-r--r--Essentials/src/net/ess3/storage/BukkitConstructor.java19
-rw-r--r--Essentials/src/net/ess3/storage/YamlStorageReader.java6
-rw-r--r--Essentials/src/net/ess3/user/UserData.java4
-rw-r--r--Essentials/src/net/ess3/user/UserMap.java160
-rw-r--r--Essentials/test/com/earth2me/essentials/testserver/World.java26
-rw-r--r--Essentials/test/net/ess3/EssentialsTest.java (renamed from Essentials/test/com/earth2me/essentials/EssentialsTest.java)18
-rw-r--r--Essentials/test/net/ess3/StorageTest.java9
-rw-r--r--Essentials/test/net/ess3/testserver/TestPlayer.java (renamed from Essentials/test/com/earth2me/essentials/testserver/Player.java)54
-rw-r--r--Essentials/test/net/ess3/testserver/TestPlugin.java (renamed from Essentials/test/com/earth2me/essentials/testserver/Plugin.java)33
-rw-r--r--Essentials/test/net/ess3/testserver/TestServer.java (renamed from Essentials/test/com/earth2me/essentials/testserver/Server.java)16
-rw-r--r--Essentials/test/net/ess3/testserver/TestWorld.java77
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.");
+ }
+
+}