package com.earth2me.essentials; import com.avaje.ebean.config.ServerConfig; import com.earth2me.essentials.OfflinePlayer; import com.earth2me.essentials.craftbukkit.FakeWorld; import java.awt.image.BufferedImage; import java.io.File; import java.util.*; import java.util.concurrent.Callable; import java.util.concurrent.Future; import java.util.logging.Logger; import net.ess3.api.IEssentials; import org.bukkit.*; import org.bukkit.Warning.WarningState; import org.bukkit.World.Environment; import org.bukkit.command.CommandSender; import org.bukkit.command.ConsoleCommandSender; import org.bukkit.command.PluginCommand; import org.bukkit.conversations.Conversation; import org.bukkit.conversations.ConversationAbandonedEvent; import org.bukkit.entity.Player; import org.bukkit.event.Event; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryType; import org.bukkit.help.HelpMap; import org.bukkit.inventory.*; import org.bukkit.map.MapView; import org.bukkit.permissions.Permissible; import org.bukkit.permissions.Permission; import org.bukkit.permissions.PermissionAttachment; import org.bukkit.permissions.PermissionAttachmentInfo; import org.bukkit.plugin.EventExecutor; import org.bukkit.plugin.InvalidDescriptionException; import org.bukkit.plugin.InvalidPluginException; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginLoader; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.ServicesManager; import org.bukkit.plugin.UnknownDependencyException; import org.bukkit.plugin.messaging.Messenger; import org.bukkit.scheduler.BukkitScheduler; import org.bukkit.scheduler.BukkitTask; import org.bukkit.scheduler.BukkitWorker; import org.bukkit.scoreboard.ScoreboardManager; import org.bukkit.util.CachedServerIcon; public class FakeServer implements Server { private List players = new ArrayList(); private final List worlds = new ArrayList(); public FakeServer() { if (Bukkit.getServer() == null) { Bukkit.setServer(this); } } @Override public String getName() { return "Essentials Fake Server"; } @Override public String getVersion() { return "1.0"; } @Override public Player[] getOnlinePlayers() { return players.toArray(new Player[0]); } public void setOnlinePlayers(List players) { this.players = players; } @Override public int getMaxPlayers() { return 100; } @Override public int getPort() { return 25565; } @Override public String getIp() { return "127.0.0.1"; } @Override public String getServerName() { return "Test Server"; } @Override public String getServerId() { return "Test Server"; } @Override public int broadcastMessage(String string) { int i = 0; for (Player player : players) { player.sendMessage(string); i++; } return i; } @Override public String getUpdateFolder() { return "update"; } @Override public File getUpdateFolderFile() { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isHardcore() { throw new UnsupportedOperationException("Not supported yet."); } @Override public Player getPlayer(String string) { for (Player player : players) { if (player.getName().equalsIgnoreCase(string)) { return player; } } return null; } @Override public List matchPlayer(String string) { List matches = new ArrayList(); for (Player player : players) { if (player.getName().substring(0, Math.min(player.getName().length(), string.length())).equalsIgnoreCase(string)) { matches.add(player); } } return matches; } @Override public PluginManager getPluginManager() { return new PluginManager() { @Override public void registerInterface(Class loader) throws IllegalArgumentException { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public Plugin getPlugin(String name) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public Plugin[] getPlugins() { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public boolean isPluginEnabled(String name) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public boolean isPluginEnabled(Plugin plugin) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public Plugin loadPlugin(File file) throws InvalidPluginException, InvalidDescriptionException, UnknownDependencyException { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public Plugin[] loadPlugins(File directory) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public void disablePlugins() { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public void clearPlugins() { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public void callEvent(Event event) throws IllegalStateException { Logger.getLogger("Minecraft").info("Called event " + event.getEventName()); } @Override public void registerEvents(Listener listener, Plugin plugin) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public void registerEvent(Class event, Listener listener, EventPriority priority, EventExecutor executor, Plugin plugin) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public void registerEvent(Class event, Listener listener, EventPriority priority, EventExecutor executor, Plugin plugin, boolean ignoreCancelled) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public void enablePlugin(Plugin plugin) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public void disablePlugin(Plugin plugin) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public Permission getPermission(String name) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public void addPermission(Permission perm) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public void removePermission(Permission perm) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public void removePermission(String name) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public Set getDefaultPermissions(boolean op) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public void recalculatePermissionDefaults(Permission perm) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public void subscribeToPermission(String permission, Permissible permissible) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public void unsubscribeFromPermission(String permission, Permissible permissible) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public Set getPermissionSubscriptions(String permission) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public void subscribeToDefaultPerms(boolean op, Permissible permissible) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public void unsubscribeFromDefaultPerms(boolean op, Permissible permissible) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public Set getDefaultPermSubscriptions(boolean op) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public Set getPermissions() { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public boolean useTimings() { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } }; } @Override public BukkitScheduler getScheduler() { return new BukkitScheduler() { @Override public int scheduleSyncDelayedTask(Plugin plugin, Runnable r, long l) { throw new UnsupportedOperationException("Not supported yet."); } @Override public int scheduleSyncDelayedTask(Plugin plugin, Runnable r) { throw new UnsupportedOperationException("Not supported yet."); } @Override public int scheduleSyncRepeatingTask(Plugin plugin, Runnable r, long l, long l1) { throw new UnsupportedOperationException("Not supported yet."); } @Override public int scheduleAsyncRepeatingTask(Plugin plugin, Runnable r, long l, long l1) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Future callSyncMethod(Plugin plugin, Callable clbl) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void cancelTask(int i) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void cancelTasks(Plugin plugin) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void cancelAllTasks() { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isCurrentlyRunning(int i) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isQueued(int i) { throw new UnsupportedOperationException("Not supported yet."); } @Override public List getActiveWorkers() { throw new UnsupportedOperationException("Not supported yet."); } @Override public List getPendingTasks() { throw new UnsupportedOperationException("Not supported yet."); } @Override public BukkitTask runTask(Plugin plugin, Runnable r) throws IllegalArgumentException { throw new UnsupportedOperationException("Not supported yet."); } @Override public BukkitTask runTaskAsynchronously(Plugin plugin, Runnable r) throws IllegalArgumentException { r.run(); return null; } @Override public BukkitTask runTaskLater(Plugin plugin, Runnable r, long l) throws IllegalArgumentException { throw new UnsupportedOperationException("Not supported yet."); } @Override public BukkitTask runTaskLaterAsynchronously(Plugin plugin, Runnable r, long l) throws IllegalArgumentException { r.run(); return null; } @Override public BukkitTask runTaskTimer(Plugin plugin, Runnable r, long l, long l1) throws IllegalArgumentException { throw new UnsupportedOperationException("Not supported yet."); } @Override public BukkitTask runTaskTimerAsynchronously(Plugin plugin, Runnable r, long l, long l1) throws IllegalArgumentException { throw new UnsupportedOperationException("Not supported yet."); } @Override public int scheduleAsyncDelayedTask(Plugin plugin, Runnable r, long l) { throw new UnsupportedOperationException("Not supported yet."); } @Override public int scheduleAsyncDelayedTask(Plugin plugin, Runnable r) { throw new UnsupportedOperationException("Not supported yet."); } }; } @Override public ServicesManager getServicesManager() { throw new UnsupportedOperationException("Not supported yet."); } @Override public List getWorlds() { return worlds; } public World createWorld(String string, Environment e) { World w = new FakeWorld(string, e); worlds.add(w); return w; } public World createWorld(String string, Environment e, long l) { World w = new FakeWorld(string, e); worlds.add(w); return w; } @Override public World getWorld(String string) { for (World world : worlds) { if (world.getName().equalsIgnoreCase(string)) { return world; } } return null; } @Override public void reload() { } @Override public Logger getLogger() { return Logger.getLogger("Minecraft"); } @Override public PluginCommand getPluginCommand(String string) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void savePlayers() { } @Override public boolean dispatchCommand(CommandSender cs, String string) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void configureDbConfig(ServerConfig sc) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean addRecipe(Recipe recipe) { throw new UnsupportedOperationException("Not supported yet."); } public void addPlayer(Player base1) { players.add(base1); } public OfflinePlayer createPlayer(String name, IEssentials ess) { OfflinePlayer player = new OfflinePlayer(name, ess); player.setLocation(new Location(worlds.get(0), 0, 0, 0, 0, 0)); return player; } @Override public World createWorld(WorldCreator creator) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean unloadWorld(String string, boolean bln) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean unloadWorld(World world, boolean bln) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Map getCommandAliases() { throw new UnsupportedOperationException("Not supported yet."); } @Override public int getSpawnRadius() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void setSpawnRadius(int i) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean getOnlineMode() { throw new UnsupportedOperationException("Not supported yet."); } public World getWorld(long l) { throw new UnsupportedOperationException("Not supported yet."); } @Override public World getWorld(UUID uuid) { throw new UnsupportedOperationException("Not supported yet."); } @Override public int getViewDistance() { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean getAllowNether() { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean hasWhitelist() { throw new UnsupportedOperationException("Not supported yet."); } @Override public MapView getMap(short s) { throw new UnsupportedOperationException("Not supported yet."); } @Override public MapView createMap(World world) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean getAllowFlight() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void setWhitelist(boolean bln) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Set getWhitelistedPlayers() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void reloadWhitelist() { throw new UnsupportedOperationException("Not supported yet."); } @Override public Player getPlayerExact(String string) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void shutdown() { throw new UnsupportedOperationException("Not supported yet."); } @Override public int broadcast(String string, String string1) { throw new UnsupportedOperationException("Not supported yet."); } @Override public org.bukkit.OfflinePlayer getOfflinePlayer(final String string) { return new org.bukkit.OfflinePlayer() { @Override public boolean isOnline() { return false; } @Override public String getName() { return string; } @Override public boolean isBanned() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void setBanned(boolean bln) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isWhitelisted() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void setWhitelisted(boolean bln) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Player getPlayer() { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isOp() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void setOp(boolean bln) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Map serialize() { throw new UnsupportedOperationException("Not supported yet."); } @Override public long getFirstPlayed() { throw new UnsupportedOperationException("Not supported yet."); } @Override public long getLastPlayed() { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean hasPlayedBefore() { throw new UnsupportedOperationException("Not supported yet."); } @Override public Location getBedSpawnLocation() { throw new UnsupportedOperationException("Not supported yet."); } }; } @Override public Set getIPBans() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void banIP(String string) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void unbanIP(String string) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Set getBannedPlayers() { throw new UnsupportedOperationException("Not supported yet."); } @Override public GameMode getDefaultGameMode() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void setDefaultGameMode(GameMode gamemode) { throw new UnsupportedOperationException("Not supported yet."); } @Override public ConsoleCommandSender getConsoleSender() { return new ConsoleCommandSender() { @Override public void sendMessage(String message) { System.out.println("Console message: " + message); } @Override public void sendMessage(String[] messages) { for (String message : messages) { System.out.println("Console message: " + message); } } @Override public Server getServer() { throw new UnsupportedOperationException("Not supported yet."); } @Override public String getName() { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isPermissionSet(String name) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isPermissionSet(Permission perm) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean hasPermission(String name) { return true; } @Override public boolean hasPermission(Permission perm) { throw new UnsupportedOperationException("Not supported yet."); } @Override public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value) { throw new UnsupportedOperationException("Not supported yet."); } @Override public PermissionAttachment addAttachment(Plugin plugin) { throw new UnsupportedOperationException("Not supported yet."); } @Override public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value, int ticks) { throw new UnsupportedOperationException("Not supported yet."); } @Override public PermissionAttachment addAttachment(Plugin plugin, int ticks) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void removeAttachment(PermissionAttachment attachment) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void recalculatePermissions() { throw new UnsupportedOperationException("Not supported yet."); } @Override public Set getEffectivePermissions() { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isOp() { return true; } @Override public void setOp(boolean value) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isConversing() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void acceptConversationInput(String input) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean beginConversation(Conversation conversation) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void abandonConversation(Conversation conversation) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void abandonConversation(Conversation conversation, ConversationAbandonedEvent details) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void sendRawMessage(String message) { throw new UnsupportedOperationException("Not supported yet."); } }; } @Override public Set getOperators() { throw new UnsupportedOperationException("Not supported yet."); } @Override public String getBukkitVersion() { return "Essentials Fake-Server"; } @Override public File getWorldContainer() { throw new UnsupportedOperationException("Not supported yet."); } @Override public OfflinePlayer[] getOfflinePlayers() { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean getAllowEnd() { throw new UnsupportedOperationException("Not supported yet."); } @Override public Messenger getMessenger() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void sendPluginMessage(Plugin plugin, String string, byte[] bytes) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Set getListeningPluginChannels() { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean useExactLoginLocation() { throw new UnsupportedOperationException("Not supported yet."); } @Override public int getTicksPerAnimalSpawns() { throw new UnsupportedOperationException("Not supported yet."); } @Override public int getTicksPerMonsterSpawns() { throw new UnsupportedOperationException("Not supported yet."); } @Override public List getRecipesFor(ItemStack is) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Iterator recipeIterator() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void clearRecipes() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void resetRecipes() { throw new UnsupportedOperationException("Not supported yet."); } @Override public HelpMap getHelpMap() { throw new UnsupportedOperationException("Not supported yet."); } @Override public Inventory createInventory(InventoryHolder ih, InventoryType it) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Inventory createInventory(InventoryHolder ih, int i) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Inventory createInventory(InventoryHolder ih, int i, String string) { throw new UnsupportedOperationException("Not supported yet."); } @Override public String getWorldType() { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean getGenerateStructures() { throw new UnsupportedOperationException("Not supported yet."); } @Override public long getConnectionThrottle() { throw new UnsupportedOperationException("Not supported yet."); } @Override public int getMonsterSpawnLimit() { throw new UnsupportedOperationException("Not supported yet."); } @Override public int getAnimalSpawnLimit() { throw new UnsupportedOperationException("Not supported yet."); } @Override public int getWaterAnimalSpawnLimit() { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isPrimaryThread() { throw new UnsupportedOperationException("Not supported yet."); } @Override public String getMotd() { throw new UnsupportedOperationException("Not supported yet."); } @Override public WarningState getWarningState() { throw new UnsupportedOperationException("Not supported yet."); } @Override public int getAmbientSpawnLimit() { throw new UnsupportedOperationException("Not supported yet."); } @Override public String getShutdownMessage() { throw new UnsupportedOperationException("Not supported yet."); } @Override public ItemFactory getItemFactory() { throw new UnsupportedOperationException("Not supported yet."); } @Override public ScoreboardManager getScoreboardManager() { throw new UnsupportedOperationException("Not supported yet."); } @Override public CachedServerIcon getServerIcon() { throw new UnsupportedOperationException("Not supported yet."); } @Override public CachedServerIcon loadServerIcon(File file) throws IllegalArgumentException, Exception { throw new UnsupportedOperationException("Not supported yet."); } @Override public CachedServerIcon loadServerIcon(BufferedImage bufferedImage) throws IllegalArgumentException, Exception { throw new UnsupportedOperationException("Not supported yet."); } }