package com.earth2me.essentials; import com.earth2me.essentials.craftbukkit.FakeWorld; import org.bukkit.BanList; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Keyed; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.Server; import org.bukkit.Statistic; import org.bukkit.StructureType; import org.bukkit.Tag; import org.bukkit.UnsafeValues; import org.bukkit.Warning.WarningState; import org.bukkit.World; import org.bukkit.World.Environment; import org.bukkit.WorldCreator; import org.bukkit.advancement.Advancement; import org.bukkit.block.data.BlockData; import org.bukkit.boss.BarColor; import org.bukkit.boss.BarFlag; import org.bukkit.boss.BarStyle; import org.bukkit.boss.BossBar; import org.bukkit.boss.KeyedBossBar; 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.Entity; import org.bukkit.entity.EntityType; 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.event.player.PlayerJoinEvent; import org.bukkit.generator.ChunkGenerator; import org.bukkit.help.HelpMap; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemFactory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.Merchant; import org.bukkit.inventory.Recipe; import org.bukkit.loot.LootTable; 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.Plugin; import org.bukkit.plugin.PluginLoader; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.RegisteredListener; import org.bukkit.plugin.ServicesManager; import org.bukkit.plugin.UnknownDependencyException; import org.bukkit.plugin.messaging.Messenger; import org.bukkit.scheduler.BukkitRunnable; 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; import java.awt.image.BufferedImage; import java.io.File; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import java.util.UUID; import java.util.concurrent.Callable; import java.util.concurrent.Future; import java.util.function.Consumer; import java.util.logging.Logger; public class FakeServer implements Server { private final List worlds = new ArrayList<>(); private final PluginManager pluginManager = new FakePluginManager(); private List players = new ArrayList<>(); 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 Collection getOnlinePlayers() { return players; } public void setOnlinePlayers(final 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 int broadcastMessage(final String string) { int i = 0; for (final 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(final String string) { for (final Player player : players) { if (player.getName().equalsIgnoreCase(string)) { return player; } } return null; } @Override public List matchPlayer(final String string) { final List matches = new ArrayList<>(); for (final 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 pluginManager; } @Override public BukkitScheduler getScheduler() { return new BukkitScheduler() { @Override public int scheduleSyncDelayedTask(final Plugin plugin, final Runnable r, final long l) { throw new UnsupportedOperationException("Not supported yet."); } @Override public int scheduleSyncDelayedTask(final Plugin plugin, final BukkitRunnable bukkitRunnable, final long l) { throw new UnsupportedOperationException("Not supported yet."); } @Override public int scheduleSyncDelayedTask(final Plugin plugin, final Runnable r) { throw new UnsupportedOperationException("Not supported yet."); } @Override public int scheduleSyncDelayedTask(final Plugin plugin, final BukkitRunnable bukkitRunnable) { throw new UnsupportedOperationException("Not supported yet."); } @Override public int scheduleSyncRepeatingTask(final Plugin plugin, final Runnable r, final long l, final long l1) { throw new UnsupportedOperationException("Not supported yet."); } @Override public int scheduleSyncRepeatingTask(final Plugin plugin, final BukkitRunnable bukkitRunnable, final long l, final long l1) { throw new UnsupportedOperationException("Not supported yet."); } @Override public int scheduleAsyncRepeatingTask(final Plugin plugin, final Runnable r, final long l, final long l1) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Future callSyncMethod(final Plugin plugin, final Callable clbl) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void cancelTask(final int i) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void cancelTasks(final Plugin plugin) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isCurrentlyRunning(final int i) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isQueued(final 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(final Plugin plugin, final Runnable r) throws IllegalArgumentException { throw new UnsupportedOperationException("Not supported yet."); } @Override public void runTask(final Plugin plugin, final Consumer task) throws IllegalArgumentException { throw new UnsupportedOperationException("Not supported yet."); } @Override public BukkitTask runTask(final Plugin plugin, final BukkitRunnable bukkitRunnable) throws IllegalArgumentException { return null; } @Override public BukkitTask runTaskAsynchronously(final Plugin plugin, final Runnable r) throws IllegalArgumentException { r.run(); return null; } @Override public void runTaskAsynchronously(final Plugin plugin, final Consumer task) throws IllegalArgumentException { throw new UnsupportedOperationException("Not supported yet."); } @Override public BukkitTask runTaskAsynchronously(final Plugin plugin, final BukkitRunnable bukkitRunnable) throws IllegalArgumentException { return null; } @Override public BukkitTask runTaskLater(final Plugin plugin, final Runnable r, final long l) throws IllegalArgumentException { throw new UnsupportedOperationException("Not supported yet."); } @Override public void runTaskLater(final Plugin plugin, final Consumer task, final long delay) throws IllegalArgumentException { throw new UnsupportedOperationException("Not supported yet."); } @Override public BukkitTask runTaskLater(final Plugin plugin, final BukkitRunnable bukkitRunnable, final long l) throws IllegalArgumentException { return null; } @Override public BukkitTask runTaskLaterAsynchronously(final Plugin plugin, final Runnable r, final long l) throws IllegalArgumentException { r.run(); return null; } @Override public void runTaskLaterAsynchronously(final Plugin plugin, final Consumer task, final long delay) throws IllegalArgumentException { throw new UnsupportedOperationException("Not supported yet."); } @Override public BukkitTask runTaskLaterAsynchronously(final Plugin plugin, final BukkitRunnable bukkitRunnable, final long l) throws IllegalArgumentException { return null; } @Override public BukkitTask runTaskTimer(final Plugin plugin, final Runnable r, final long l, final long l1) throws IllegalArgumentException { throw new UnsupportedOperationException("Not supported yet."); } @Override public void runTaskTimer(final Plugin plugin, final Consumer task, final long delay, final long period) throws IllegalArgumentException { throw new UnsupportedOperationException("Not supported yet."); } @Override public BukkitTask runTaskTimer(final Plugin plugin, final BukkitRunnable bukkitRunnable, final long l, final long l1) throws IllegalArgumentException { return null; } @Override public BukkitTask runTaskTimerAsynchronously(final Plugin plugin, final Runnable r, final long l, final long l1) throws IllegalArgumentException { throw new UnsupportedOperationException("Not supported yet."); } @Override public void runTaskTimerAsynchronously(final Plugin plugin, final Consumer task, final long delay, final long period) throws IllegalArgumentException { throw new UnsupportedOperationException("Not supported yet."); } @Override public BukkitTask runTaskTimerAsynchronously(final Plugin plugin, final BukkitRunnable bukkitRunnable, final long l, final long l1) throws IllegalArgumentException { return null; } @Override public int scheduleAsyncDelayedTask(final Plugin plugin, final Runnable r, final long l) { throw new UnsupportedOperationException("Not supported yet."); } @Override public int scheduleAsyncDelayedTask(final Plugin plugin, final 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(final String string, final Environment e) { final World w = new FakeWorld(string, e); worlds.add(w); return w; } public World createWorld(final String string, final Environment e, final long l) { final World w = new FakeWorld(string, e); worlds.add(w); return w; } @Override public World getWorld(final String string) { for (final 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(final String string) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void savePlayers() { } @Override public boolean dispatchCommand(final CommandSender cs, final String string) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean addRecipe(final Recipe recipe) { throw new UnsupportedOperationException("Not supported yet."); } void addPlayer(final Player base1) { players.add(base1); pluginManager.callEvent(new PlayerJoinEvent(base1, null)); } OfflinePlayer createPlayer(final String name) { final OfflinePlayer player = new OfflinePlayer(name, this); player.setLocation(new Location(worlds.get(0), 0, 0, 0, 0, 0)); return player; } @Override public World createWorld(final WorldCreator creator) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean unloadWorld(final String string, final boolean bln) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean unloadWorld(final World world, final 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(final int i) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean getOnlineMode() { throw new UnsupportedOperationException("Not supported yet."); } public World getWorld(final long l) { throw new UnsupportedOperationException("Not supported yet."); } @Override public World getWorld(final UUID uuid) { throw new UnsupportedOperationException("Not supported yet."); } public MapView getMap(final int id) { 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 createMap(final World world) { throw new UnsupportedOperationException("Not supported yet."); } @Override public ItemStack createExplorerMap(final World world, final Location location, final StructureType structureType) { throw new UnsupportedOperationException("Not supported yet."); } @Override public ItemStack createExplorerMap(final World world, final Location location, final StructureType structureType, final int radius, final boolean findUnexplored) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean getAllowFlight() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void setWhitelist(final 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(final String string) { for (final Player player : players) { if (player.getName().equals(string)) { return player; } } return null; } @Override public void shutdown() { throw new UnsupportedOperationException("Not supported yet."); } @Override public int broadcast(final String string, final String string1) { throw new UnsupportedOperationException("Not supported yet."); } @Override public org.bukkit.OfflinePlayer getOfflinePlayer(final String string) { return createOPlayer(string); } private org.bukkit.OfflinePlayer createOPlayer(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 boolean isWhitelisted() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void setWhitelisted(final 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 Map serialize() { throw new UnsupportedOperationException("Not supported yet."); } @Override public long getFirstPlayed() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void setOp(final boolean bln) { 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 UUID getUniqueId() { switch (string) { case "testPlayer1": return UUID.fromString("3c9ebe1a-9098-43fd-bc0c-a369b76817ba"); case "testPlayer2": return UUID.fromString("2c9ebe1a-9098-43fd-bc0c-a369b76817ba"); case "npc1": return null; } throw new UnsupportedOperationException("Not supported yet."); } @Override public void incrementStatistic(final Statistic statistic) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void decrementStatistic(final Statistic statistic) { throw new UnsupportedOperationException("Not supported yet."); } @Override public int getStatistic(final Statistic statistic) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void incrementStatistic(final Statistic statistic, final int amount) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void decrementStatistic(final Statistic statistic, final int amount) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void setStatistic(final Statistic statistic, final int newValue) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void incrementStatistic(final Statistic statistic, final Material material) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void decrementStatistic(final Statistic statistic, final Material material) { throw new UnsupportedOperationException("Not supported yet."); } @Override public int getStatistic(final Statistic statistic, final Material material) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void incrementStatistic(final Statistic statistic, final Material material, final int amount) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void decrementStatistic(final Statistic statistic, final Material material, final int amount) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void setStatistic(final Statistic statistic, final Material material, final int newValue) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void incrementStatistic(final Statistic statistic, final EntityType entityType) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void decrementStatistic(final Statistic statistic, final EntityType entityType) { throw new UnsupportedOperationException("Not supported yet."); } @Override public int getStatistic(final Statistic statistic, final EntityType entityType) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void incrementStatistic(final Statistic statistic, final EntityType entityType, final int amount) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void decrementStatistic(final Statistic statistic, final EntityType entityType, final int amount) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void setStatistic(final Statistic statistic, final EntityType entityType, final int newValue) { throw new UnsupportedOperationException("Not supported yet."); } }; } @Override public Set getIPBans() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void banIP(final String string) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void unbanIP(final 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(final GameMode gamemode) { throw new UnsupportedOperationException("Not supported yet."); } @Override public ConsoleCommandSender getConsoleSender() { return new ConsoleCommandSender() { @Override public void sendMessage(final String message) { System.out.println("Console message: " + message); } @Override public void sendMessage(final String[] messages) { for (final String message : messages) { System.out.println("Console message: " + message); } } @Override public void sendMessage(final UUID uuid, final String message) { sendMessage(message); } @Override public void sendMessage(final UUID uuid, final String[] messages) { sendMessage(messages); } @Override public Server getServer() { throw new UnsupportedOperationException("Not supported yet."); } @Override public String getName() { throw new UnsupportedOperationException("Not supported yet."); } @Override public Spigot spigot() { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isPermissionSet(final String name) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isPermissionSet(final Permission perm) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean hasPermission(final String name) { return true; } @Override public boolean hasPermission(final Permission perm) { throw new UnsupportedOperationException("Not supported yet."); } @Override public PermissionAttachment addAttachment(final Plugin plugin, final String name, final boolean value) { throw new UnsupportedOperationException("Not supported yet."); } @Override public PermissionAttachment addAttachment(final Plugin plugin) { throw new UnsupportedOperationException("Not supported yet."); } @Override public PermissionAttachment addAttachment(final Plugin plugin, final String name, final boolean value, final int ticks) { throw new UnsupportedOperationException("Not supported yet."); } @Override public PermissionAttachment addAttachment(final Plugin plugin, final int ticks) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void removeAttachment(final 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 boolean isConversing() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void acceptConversationInput(final String input) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void setOp(final boolean value) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean beginConversation(final Conversation conversation) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void abandonConversation(final Conversation conversation) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void abandonConversation(final Conversation conversation, final ConversationAbandonedEvent details) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void sendRawMessage(final String message) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void sendRawMessage(final UUID uuid, final String s) { } }; } @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(final Plugin plugin, final String string, final byte[] bytes) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Set getListeningPluginChannels() { 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 int getTicksPerWaterSpawns() { throw new UnsupportedOperationException("Not supported yet."); } @Override public int getTicksPerWaterAmbientSpawns() { return 0; } @Override public int getTicksPerAmbientSpawns() { throw new UnsupportedOperationException("Not supported yet."); } @Override public List getRecipesFor(final ItemStack is) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Recipe getRecipe(final NamespacedKey namespacedKey) { 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 boolean removeRecipe(final NamespacedKey key) { throw new UnsupportedOperationException("Not supported yet."); } @Override public HelpMap getHelpMap() { throw new UnsupportedOperationException("Not supported yet."); } @Override public Inventory createInventory(final InventoryHolder ih, final InventoryType it) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Inventory createInventory(final InventoryHolder ih, final int i) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Inventory createInventory(final InventoryHolder ih, final int i, final String string) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Merchant createMerchant(final String s) { 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 int getWaterAmbientSpawnLimit() { return 0; } @Override public boolean isPrimaryThread() { return true; // Can be set to true or false, just needs to return for AFK status test to pass. } @Override public String getMotd() { throw new UnsupportedOperationException("Not supported yet."); } @Override public WarningState getWarningState() { return WarningState.DEFAULT; } @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(final File file) { throw new UnsupportedOperationException("Not supported yet."); } @Override public CachedServerIcon loadServerIcon(final BufferedImage bufferedImage) { throw new UnsupportedOperationException("Not supported yet."); } @Override public int getIdleTimeout() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void setIdleTimeout(final int i) { throw new UnsupportedOperationException("Not supported yet."); } @Override public ChunkGenerator.ChunkData createChunkData(final World world) { throw new UnsupportedOperationException("Not supported yet."); } @Override public BossBar createBossBar(final String s, final BarColor barColor, final BarStyle barStyle, final BarFlag... barFlags) { throw new UnsupportedOperationException("Not supported yet."); } @Override public KeyedBossBar createBossBar(final NamespacedKey key, final String title, final BarColor color, final BarStyle style, final BarFlag... flags) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Iterator getBossBars() { throw new UnsupportedOperationException("Not supported yet."); } @Override public KeyedBossBar getBossBar(final NamespacedKey key) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean removeBossBar(final NamespacedKey key) { throw new UnsupportedOperationException("Not supported yet."); } @Override @SuppressWarnings("deprecation") public UnsafeValues getUnsafe() { throw new UnsupportedOperationException("Not supported yet."); } @Override public Spigot spigot() { throw new UnsupportedOperationException("Not supported yet."); } @Override public BanList getBanList(final BanList.Type arg0) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Player getPlayer(final UUID arg0) { for (final Player player : players) { if (player.getUniqueId().equals(arg0)) { return player; } } return null; } @Override public org.bukkit.OfflinePlayer getOfflinePlayer(final UUID arg0) { if (arg0.toString().equalsIgnoreCase("3c9ebe1a-9098-43fd-bc0c-a369b76817ba")) { return createOPlayer("testPlayer1"); } if (arg0.toString().equalsIgnoreCase("f4a37409-5c40-3b2c-9cd6-57d3c5abdc76")) { return createOPlayer("npc1"); } throw new UnsupportedOperationException("Not supported yet."); } @Override public Inventory createInventory(final InventoryHolder arg0, final InventoryType arg1, final String arg2) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void reloadData() { throw new UnsupportedOperationException("Not supported yet."); } @Override public Entity getEntity(final UUID uuid) { return getPlayer(uuid); } @Override public Advancement getAdvancement(final NamespacedKey key) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Iterator advancementIterator() { throw new UnsupportedOperationException("Not supported yet."); } @Override public BlockData createBlockData(final Material material) { return null; } @Override public BlockData createBlockData(final Material material, final Consumer consumer) { return null; } @Override public BlockData createBlockData(final String data) throws IllegalArgumentException { return null; } @Override public BlockData createBlockData(final Material material, final String data) throws IllegalArgumentException { return null; } @Override public Tag getTag(final String s, final NamespacedKey namespacedKey, final Class aClass) { throw new UnsupportedOperationException("Not supported yet."); } public Iterable> getTags(final String registry, final Class clazz) { throw new UnsupportedOperationException("Not supported yet."); } @Override public LootTable getLootTable(final NamespacedKey arg0) { throw new UnsupportedOperationException("Not supported yet."); } @Override public List selectEntities(final CommandSender sender, final String selector) throws IllegalArgumentException { throw new UnsupportedOperationException("Not supported yet."); } static class FakePluginManager implements PluginManager { final ArrayList listeners = new ArrayList<>(); @Override public void registerInterface(final Class loader) throws IllegalArgumentException { throw new UnsupportedOperationException("Not supported yet."); } @Override public Plugin getPlugin(final String name) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Plugin[] getPlugins() { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isPluginEnabled(final String name) { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isPluginEnabled(final Plugin plugin) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Plugin loadPlugin(final File file) throws UnknownDependencyException { throw new UnsupportedOperationException("Not supported yet."); } @Override public Plugin[] loadPlugins(final File directory) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void disablePlugins() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void clearPlugins() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void callEvent(final Event event) throws IllegalStateException { Logger.getLogger("Minecraft").info("Called event " + event.getEventName()); if (event instanceof PlayerJoinEvent) { for (final RegisteredListener listener : listeners) { if (listener.getListener() instanceof EssentialsPlayerListener) { final PlayerJoinEvent jEvent = (PlayerJoinEvent) event; final EssentialsPlayerListener epl = (EssentialsPlayerListener) listener.getListener(); epl.onPlayerJoin(jEvent); final Essentials ess = (Essentials) listener.getPlugin(); ess.getLogger().info("Sending join event to Essentials"); ess.getUser(jEvent.getPlayer()); } } } } @Override public void registerEvents(final Listener listener, final Plugin plugin) { listeners.add(new RegisteredListener(listener, null, null, plugin, false)); } @Override public void registerEvent(final Class event, final Listener listener, final EventPriority priority, final EventExecutor executor, final Plugin plugin) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void registerEvent(final Class event, final Listener listener, final EventPriority priority, final EventExecutor executor, final Plugin plugin, final boolean ignoreCancelled) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void enablePlugin(final Plugin plugin) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void disablePlugin(final Plugin plugin) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Permission getPermission(final String name) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void addPermission(final Permission perm) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void removePermission(final Permission perm) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void removePermission(final String name) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Set getDefaultPermissions(final boolean op) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void recalculatePermissionDefaults(final Permission perm) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void subscribeToPermission(final String permission, final Permissible permissible) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void unsubscribeFromPermission(final String permission, final Permissible permissible) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Set getPermissionSubscriptions(final String permission) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void subscribeToDefaultPerms(final boolean op, final Permissible permissible) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void unsubscribeFromDefaultPerms(final boolean op, final Permissible permissible) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Set getDefaultPermSubscriptions(final boolean op) { throw new UnsupportedOperationException("Not supported yet."); } @Override public Set getPermissions() { throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean useTimings() { throw new UnsupportedOperationException("Not supported yet."); } } }