/** * {@inheritDoc} */ @Override public World getCBWorld() { final World world = plugin.getServer().getWorld(worldUID); if (world == null) { throw new IllegalStateException("Lost reference to bukkit world '" + name + "'"); } return world; }
/** * {@inheritDoc} */ @Override public MultiverseWorld getSpawnWorld() { return this.getMVWorld(this.plugin.getServer().getWorlds().get(0)); }
/** * {@inheritDoc} */ @Override public World getRespawnToWorld() { return this.plugin.getServer().getWorld(props.getRespawnToWorld()); }
/** * Unload a world from Bukkit. * * @param name Name of the world to unload * @param safely Perform this safely. Set to True to save world files before unloading. * @return True if the world was unloaded, false if not. */ private boolean unloadWorldFromBukkit(String name, boolean safely) { this.removePlayersFromWorld(name); return this.plugin.getServer().unloadWorld(name, safely); }
private void sendPlayerToDefaultWorld(final Player player) { // Remove the player 1 tick after the login. I'm sure there's GOT to be a better way to do this... this.plugin.getServer().getScheduler().scheduleSyncDelayedTask(this.plugin, new Runnable() { @Override public void run() { player.teleport(plugin.getMVWorldManager().getFirstSpawnWorld().getSpawnLocation()); } }, 1L); }
private void addToRootPermission(String rootPerm, String permStringChopped) { Permission rootPermission = this.plugin.getServer().getPluginManager().getPermission(rootPerm); if (rootPermission == null) { rootPermission = new Permission(rootPerm); this.plugin.getServer().getPluginManager().addPermission(rootPermission); } rootPermission.getChildren().put(permStringChopped + ".*", true); this.plugin.getServer().getPluginManager().recalculatePermissionDefaults(rootPermission); }
private void addToRootPermission(String rootPerm, String permStringChopped) { Permission rootPermission = this.plugin.getServer().getPluginManager().getPermission(rootPerm); if (rootPermission == null) { rootPermission = new Permission(rootPerm); this.plugin.getServer().getPluginManager().addPermission(rootPermission); } rootPermission.getChildren().put(permStringChopped + ".*", true); this.plugin.getServer().getPluginManager().recalculatePermissionDefaults(rootPermission); }
private void ensureSecondNamespaceIsPrepared() { Permission special = this.plugin.getServer().getPluginManager().getPermission("mv.bypass.gamemode.*"); if (special == null) { special = new Permission("mv.bypass.gamemode.*", PermissionDefault.FALSE); this.plugin.getServer().getPluginManager().addPermission(special); } }
/** * Adds a permission. * @param string The permission as {@link String}. * @param defaultValue The default-value. * @return The permission as {@link Permission}. */ public Permission addPermission(String string, PermissionDefault defaultValue) { if (this.plugin.getServer().getPluginManager().getPermission(string) == null) { Permission permission = new Permission(string, defaultValue); this.plugin.getServer().getPluginManager().addPermission(permission); this.addToParentPerms(string); } return this.plugin.getServer().getPluginManager().getPermission(string); }
private String getLegacyString() { StringBuilder legacyFile = new StringBuilder(); legacyFile.append("[Multiverse-Core] Multiverse-Core Version: ").append(this.plugin.getDescription().getVersion()).append('\n'); legacyFile.append("[Multiverse-Core] Bukkit Version: ").append(this.plugin.getServer().getVersion()).append('\n'); legacyFile.append("[Multiverse-Core] Loaded Worlds: ").append(this.plugin.getMVWorldManager().getMVWorlds()).append('\n'); legacyFile.append("[Multiverse-Core] Multiverse Plugins Loaded: ").append(this.plugin.getPluginCount()).append('\n'); legacyFile.append("[Multiverse-Core] Economy being used: ").append(plugin.getEconomist().getEconomyName()).append('\n'); legacyFile.append("[Multiverse-Core] Permissions Plugin: ").append(this.plugin.getMVPerms().getType()).append('\n'); legacyFile.append("[Multiverse-Core] Dumping Config Values: (version ") .append(this.plugin.getMVConfig().getVersion()).append(")").append('\n'); legacyFile.append("[Multiverse-Core] messagecooldown: ").append(plugin.getMessaging().getCooldown()).append('\n'); legacyFile.append("[Multiverse-Core] teleportcooldown: ").append(plugin.getMVConfig().getTeleportCooldown()).append('\n'); legacyFile.append("[Multiverse-Core] worldnameprefix: ").append(plugin.getMVConfig().getPrefixChat()).append('\n'); legacyFile.append("[Multiverse-Core] worldnameprefixFormat: ").append(plugin.getMVConfig().getPrefixChatFormat()).append('\n'); legacyFile.append("[Multiverse-Core] enforceaccess: ").append(plugin.getMVConfig().getEnforceAccess()).append('\n'); legacyFile.append("[Multiverse-Core] displaypermerrors: ").append(plugin.getMVConfig().getDisplayPermErrors()).append('\n'); legacyFile.append("[Multiverse-Core] teleportintercept: ").append(plugin.getMVConfig().getTeleportIntercept()).append('\n'); legacyFile.append("[Multiverse-Core] firstspawnoverride: ").append(plugin.getMVConfig().getFirstSpawnOverride()).append('\n'); legacyFile.append("[Multiverse-Core] firstspawnworld: ").append(plugin.getMVConfig().getFirstSpawnWorld()).append('\n'); legacyFile.append("[Multiverse-Core] debug: ").append(plugin.getMVConfig().getGlobalDebug()).append('\n'); legacyFile.append("[Multiverse-Core] Special Code: FRN002").append('\n'); return legacyFile.toString(); }
/** * {@inheritDoc} */ @Override public void removePlayersFromWorld(String name) { World w = this.plugin.getServer().getWorld(name); if (w != null) { World safeWorld = this.plugin.getServer().getWorlds().get(0); List<Player> ps = w.getPlayers(); SafeTTeleporter teleporter = this.plugin.getSafeTTeleporter(); for (Player p : ps) { // We're removing players forcefully from a world, they'd BETTER spawn safely. teleporter.safelyTeleport(null, p, safeWorld.getSpawnLocation(), true); } } }
/** * {@inheritDoc} */ @Override public MultiverseWorld getFirstSpawnWorld() { MultiverseWorld world = this.getMVWorld(this.firstSpawn); if (world == null) { // If the spawn world was unloaded, get the default world this.plugin.log(Level.WARNING, "The world specified as the spawn world (" + this.firstSpawn + ") did not exist!!"); try { return this.getMVWorld(this.plugin.getServer().getWorlds().get(0)); } catch (IndexOutOfBoundsException e) { // This should only happen in tests. return null; } } return world; }
private void addToUpperLists(Permission perm) { Permission all = this.plugin.getServer().getPluginManager().getPermission("multiverse.*"); Permission allWorlds = this.plugin.getServer().getPluginManager().getPermission("multiverse.access.*"); Permission allExemption = this.plugin.getServer().getPluginManager().getPermission("multiverse.exempt.*"); if (allWorlds == null) { allWorlds = new Permission("multiverse.access.*"); this.plugin.getServer().getPluginManager().addPermission(allWorlds); } allWorlds.getChildren().put(perm.getName(), true); if (allExemption == null) { allExemption = new Permission("multiverse.exempt.*"); this.plugin.getServer().getPluginManager().addPermission(allExemption); } allExemption.getChildren().put(this.exempt.getName(), true); if (all == null) { all = new Permission("multiverse.*"); this.plugin.getServer().getPluginManager().addPermission(all); } all.getChildren().put("multiverse.access.*", true); all.getChildren().put("multiverse.exempt.*", true); this.plugin.getServer().getPluginManager().recalculatePermissionDefaults(all); this.plugin.getServer().getPluginManager().recalculatePermissionDefaults(allWorlds); }
@Override public void runCommand(CommandSender sender, List<String> args) { Player p = this.plugin.getServer().getPlayer(args.get(0)); if (p == null) { sender.sendMessage("Could not find player " + ChatColor.GREEN + args.get(0)); sender.sendMessage("Are they online?"); return; } MVDestination dest = this.plugin.getDestFactory().getDestination(args.get(1)); if (dest instanceof InvalidDestination) { sender.sendMessage(String.format("You asked if '%s' could go to %s%s%s,", args.get(0), ChatColor.GREEN, args.get(0), ChatColor.WHITE)); sender.sendMessage("but I couldn't find a Destination of that name? Did you type it correctly?"); return; } MVPermissions perms = this.plugin.getMVPerms(); perms.tellMeWhyICantDoThis(sender, p, dest); } }
/** * {@inheritDoc} */ @Override public void loadDefaultWorlds() { this.ensureConfigIsPrepared(); List<World> myWorlds = this.plugin.getServer().getWorlds(); for (World w : myWorlds) { String name = w.getName(); if (!worldsFromTheConfig.containsKey(name)) { String generator = null; if (this.defaultGens.containsKey(name)) { generator = this.defaultGens.get(name); } this.addWorld(name, w.getEnvironment(), String.valueOf(w.getSeed()), w.getWorldType(), w.canGenerateStructures(), generator); } } }
@Override public void runCommand(CommandSender sender, List<String> args) { sender.sendMessage(ChatColor.GOLD + "Reloading all Multiverse Plugin configs..."); this.plugin.loadConfigs(); this.plugin.getAnchorManager().loadAnchors(); this.plugin.getMVWorldManager().loadWorlds(true); List<String> configsLoaded = new ArrayList<String>(); configsLoaded.add("Multiverse-Core - config.yml"); configsLoaded.add("Multiverse-Core - worlds.yml"); configsLoaded.add("Multiverse-Core - anchors.yml"); // Create the event MVConfigReloadEvent configReload = new MVConfigReloadEvent(configsLoaded); // Fire it off this.plugin.getServer().getPluginManager().callEvent(configReload); for (String s : configReload.getAllConfigsLoaded()) { sender.sendMessage(s); } sender.sendMessage(ChatColor.GREEN + "Reload Complete!"); }
@Override public GameMode validateChange(String property, GameMode newValue, GameMode oldValue, MVWorld object) throws ChangeDeniedException { for (Player p : plugin.getServer().getWorld(getName()).getPlayers()) { plugin.log(Level.FINER, String.format("Setting %s's GameMode to %s", p.getName(), newValue.toString())); plugin.getPlayerListener().handleGameModeAndFlight(p, MVWorld.this); } return super.validateChange(property, newValue, oldValue, object); } }
/** * {@inheritDoc} */ @Override public ChunkGenerator getChunkGenerator(String generator, final String generatorID, final String worldName) { if (generator == null) { return null; } final Plugin myPlugin = this.plugin.getServer().getPluginManager().getPlugin(generator); if (myPlugin == null) { return null; } else { return plugin.getUnsafeCallWrapper().wrap(new Callable<ChunkGenerator>() { @Override public ChunkGenerator call() throws Exception { return myPlugin.getDefaultWorldGenerator(worldName, generatorID); } }, myPlugin.getName(), "Failed to get the default chunk generator: %s"); } }
/** * Function to Register all the Events needed. */ private void registerEvents() { PluginManager pm = getServer().getPluginManager(); pm.registerEvents(this.playerListener, this); pm.registerEvents(this.entityListener, this); pm.registerEvents(this.weatherListener, this); pm.registerEvents(this.portalListener, this); pm.registerEvents(this.worldListener, this); pm.registerEvents(new MVMapListener(this), this); }