@Override public void runCommand(CommandSender sender, List<String> args) { if (args.size() == 1) { if (args.get(0).equalsIgnoreCase("on")) { args.set(0, "true"); } plugin.getMVConfig().setSilentStart(Boolean.valueOf(args.get(0))); plugin.saveMVConfigs(); } this.displaySilentMode(sender); }
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(); }
private String getMarkdownString() { StringBuilder markdownString = new StringBuilder(); markdownString.append("# Multiverse-Core\n"); markdownString.append("## Overview\n"); markdownString.append("| Name | Value |\n"); markdownString.append("| --- | --- |\n"); markdownString.append("| Multiverse-Core Version | `").append(this.plugin.getDescription().getVersion()).append("` |\n"); markdownString.append("| Bukkit Version | `").append(this.plugin.getServer().getVersion()).append("` |\n"); //markdownString.append("| Loaded Worlds | `").append(this.plugin.getMVWorldManager().getMVWorlds()).append("` |\n"); markdownString.append("| Multiverse Plugins Loaded | `").append(this.plugin.getPluginCount()).append("` |\n"); markdownString.append("| Economy being used | `").append(plugin.getEconomist().getEconomyName()).append("` |\n"); markdownString.append("| Permissions Plugin | `").append(this.plugin.getMVPerms().getType()).append("` |\n"); markdownString.append("## Parsed Config\n"); markdownString.append("These are what Multiverse thought the in-memory values of the config were.\n\n"); markdownString.append("| Config Key | Value |\n"); markdownString.append("| --- | --- |\n"); markdownString.append("| version | `").append(this.plugin.getMVConfig().getVersion()).append("` |\n"); markdownString.append("| messagecooldown | `").append(plugin.getMessaging().getCooldown()).append("` |\n"); markdownString.append("| teleportcooldown | `").append(plugin.getMVConfig().getTeleportCooldown()).append("` |\n"); markdownString.append("| worldnameprefix | `").append(plugin.getMVConfig().getPrefixChat()).append("` |\n"); markdownString.append("| worldnameprefixFormat | `").append(plugin.getMVConfig().getPrefixChatFormat()).append("` |\n"); markdownString.append("| enforceaccess | `").append(plugin.getMVConfig().getEnforceAccess()).append("` |\n"); markdownString.append("| displaypermerrors | `").append(plugin.getMVConfig().getDisplayPermErrors()).append("` |\n"); markdownString.append("| teleportintercept | `").append(plugin.getMVConfig().getTeleportIntercept()).append("` |\n"); markdownString.append("| firstspawnoverride | `").append(plugin.getMVConfig().getFirstSpawnOverride()).append("` |\n"); markdownString.append("| firstspawnworld | `").append(plugin.getMVConfig().getFirstSpawnWorld()).append("` |\n"); markdownString.append("| debug | `").append(plugin.getMVConfig().getGlobalDebug()).append("` |\n"); return markdownString.toString(); }
@Override public void runCommand(CommandSender sender, List<String> args) { if (args.size() == 1) { if (args.get(0).equalsIgnoreCase("off")) { plugin.getMVConfig().setGlobalDebug(0); } else { try { int debugLevel = Integer.parseInt(args.get(0)); if (debugLevel > 3 || debugLevel < 0) { throw new NumberFormatException(); } plugin.getMVConfig().setGlobalDebug(debugLevel); } catch (NumberFormatException e) { sender.sendMessage(ChatColor.RED + "Error" + ChatColor.WHITE + " setting debug level. Please use a number 0-3 " + ChatColor.AQUA + "(3 being many many messages!)"); } } plugin.saveMVConfigs(); } this.displayDebugMode(sender); }
/** * {@inheritDoc} */ @Override public MVPlayerSession getPlayerSession(Player player) { if (this.playerSessions.containsKey(player.getName())) { return this.playerSessions.get(player.getName()); } else { this.playerSessions.put(player.getName(), new MVPlayerSession(player, getMVConfig())); return this.playerSessions.get(player.getName()); } }
if (args.size() <= 1) { StringBuilder builder = new StringBuilder(); Map<String, Object> serializedConfig = this.plugin.getMVConfig().serialize(); for (Map.Entry<String, Object> entry : serializedConfig.entrySet()) { builder.append(ChatColor.GREEN); return; if (!this.plugin.getMVConfig().setConfigProperty(args.get(0).toLowerCase(), args.get(1))) { sender.sendMessage(String.format("%sSetting '%s' to '%s' failed!", ChatColor.RED, args.get(0).toLowerCase(), args.get(1))); return;
@Override public void log(Level level, String msg) { int debugLevel = this.getCore().getMVConfig().getGlobalDebug(); if ((level == Level.FINE && debugLevel >= 1) || (level == Level.FINER && debugLevel >= 2) || (level == Level.FINEST && debugLevel >= 3)) { debugLog.log(level, msg); } else if (level != Level.FINE && level != Level.FINER && level != Level.FINEST) { String message = new StringBuilder(getLogTag()).append(msg).toString(); this.getServer().getLogger().log(level, message); debugLog.log(level, message); } }
private void displaySilentMode(CommandSender sender) { if (plugin.getMVConfig().getSilentStart()) { sender.sendMessage("Multiverse Silent Start mode is " + ChatColor.GREEN + "ON"); } else { sender.sendMessage("Multiverse Silent Start mode is " + ChatColor.RED + "OFF"); } } }
/** * Gets all anchors that the specified {@link Player} can access. * @param p The {@link Player}. * @return An unmodifiable {@link Set} containing all anchors the specified {@link Player} can access. */ public Set<String> getAnchors(Player p) { if (p == null) { return this.anchors.keySet(); } Set<String> myAnchors = new HashSet<String>(); for (String anchor : this.anchors.keySet()) { Location ancLoc = this.anchors.get(anchor); if (ancLoc == null) { continue; } String worldPerm = "multiverse.access." + ancLoc.getWorld().getName(); // Add to the list if we're not enforcing access // OR // We are enforcing access and the user has the permission. if (!this.plugin.getMVConfig().getEnforceAccess() || (this.plugin.getMVConfig().getEnforceAccess() && p.hasPermission(worldPerm))) { myAnchors.add(anchor); } else { Logging.finer(String.format("Not adding anchor %s to the list, user %s doesn't have the %s " + "permission and 'enforceaccess' is enabled!", anchor, p.getName(), worldPerm)); } } return Collections.unmodifiableSet(myAnchors); }
/** * Saves the Multiverse-Config. * * @return Whether the Multiverse-Config was successfully saved */ public boolean saveMVConfig() { try { this.multiverseConfig.set("multiverse-configuration", getMVConfig()); this.multiverseConfig.save(new File(getDataFolder(), "config.yml")); return true; } catch (IOException e) { this.log(Level.SEVERE, "Could not save Multiverse config.yml config. Please check your file permissions."); return false; } }
private void displayDebugMode(CommandSender sender) { final int debugLevel = plugin.getMVConfig().getGlobalDebug(); if (debugLevel == 0) { sender.sendMessage("Multiverse Debug mode is " + ChatColor.RED + "OFF"); } else { sender.sendMessage("Multiverse Debug mode is " + ChatColor.GREEN + debugLevel); this.plugin.log(Level.FINE, "Multiverse Debug ENABLED"); } } }
/** * {@inheritDoc} */ @Override public boolean onCommand(CommandSender sender, Command command, String commandLabel, String[] args) { if (!this.isEnabled()) { sender.sendMessage("This plugin is Disabled!"); return true; } ArrayList<String> allArgs = new ArrayList<String>(Arrays.asList(args)); allArgs.add(0, command.getName()); try { return this.commandHandler.locateAndRunCommand(sender, allArgs, getMVConfig().getDisplayPermErrors()); } catch (Exception e) { e.printStackTrace(); sender.sendMessage(ChatColor.RED + "An internal error occurred when attempting to perform this command."); if (sender.isOp()) sender.sendMessage(ChatColor.RED + "Details were printed to the server console and logs, please add that to your bug report."); else sender.sendMessage(ChatColor.RED + "Try again and contact the server owner or an admin if this problem persists."); return true; } }
/** * Check if the Player has the permissions to enter this world. * * @param p The {@link Player} player that wants to enter * @param w The {@link MultiverseWorld} he wants to enter * @return Whether he has the permission to enter the world */ public boolean canEnterWorld(Player p, MultiverseWorld w) { // If we're not enforcing access, anyone can enter. if (!plugin.getMVConfig().getEnforceAccess()) { this.plugin.log(Level.FINEST, "EnforceAccess is OFF. Player was allowed in " + w.getAlias()); return true; } return this.hasPermission(p, "multiverse.access." + w.getName(), false); }
if (plugin.getMVConfig().getPrefixChat()) { String world = playerListener.getPlayerWorld().get(event.getPlayer().getName()); if (world == null) { String chat = event.getFormat(); String prefixChatFormat = plugin.getMVConfig().getPrefixChatFormat(); prefixChatFormat = prefixChatFormat.replace("%world%", prefix).replace("%chat%", chat); prefixChatFormat = ChatColor.translateAlternateColorCodes('&', prefixChatFormat);
this.worldManager.loadWorldConfig(new File(getDataFolder(), "worlds.yml")); this.messaging.setCooldown(getMVConfig().getMessageCooldown());
if (this.multiverseConfig.isSet("worldnameprefix")) { Logging.config("Migrating 'worldnameprefix'..."); this.getMVConfig().setPrefixChat(this.multiverseConfig.getBoolean("worldnameprefix")); this.multiverseConfig.set("worldnameprefix", null); this.getMVConfig().setFirstSpawnWorld(this.multiverseConfig.getString("firstspawnworld")); this.multiverseConfig.set("firstspawnworld", null); this.getMVConfig().setEnforceAccess(this.multiverseConfig.getBoolean("enforceaccess")); this.multiverseConfig.set("enforceaccess", null); this.getMVConfig().setDisplayPermErrors(this.multiverseConfig.getBoolean("displaypermerrors")); this.multiverseConfig.set("displaypermerrors", null); this.getMVConfig().setTeleportIntercept(this.multiverseConfig.getBoolean("teleportintercept")); this.multiverseConfig.set("teleportintercept", null); this.getMVConfig().setFirstSpawnOverride(this.multiverseConfig.getBoolean("firstspawnoverride")); this.multiverseConfig.set("firstspawnoverride", null); this.getMVConfig().setMessageCooldown(this.multiverseConfig.getInt("messagecooldown")); this.multiverseConfig.set("messagecooldown", null); this.getMVConfig().setGlobalDebug(this.multiverseConfig.getInt("debug")); this.multiverseConfig.set("debug", null);
Logging.setDebugLevel(getMVConfig().getGlobalDebug()); Logging.setShowingConfig(!getMVConfig().getSilentStart()); this.worldManager.loadDefaultWorlds(); this.worldManager.loadWorlds(true); this.worldManager.setFirstSpawnWorld(getMVConfig().getFirstSpawnWorld()); try { getMVConfig().setFirstSpawnWorld(this.worldManager.getFirstSpawnWorld().getName()); } catch (NullPointerException e) { Class.forName("org.bukkit.event.player.AsyncPlayerChatEvent"); } catch (ClassNotFoundException e) { getMVConfig().setUseAsyncChat(false); if (getMVConfig().getUseAsyncChat()) { this.chatListener = new MVAsyncPlayerChatListener(this, this.playerListener); } else {
if (plugin.getMVConfig().getTeleportIntercept()) {
/** * This method is called when a player joins the server. * @param event The Event that was fired. */ @EventHandler public void playerJoin(PlayerJoinEvent event) { Player p = event.getPlayer(); if (!p.hasPlayedBefore()) { this.plugin.log(Level.FINER, "Player joined for the FIRST time!"); if (plugin.getMVConfig().getFirstSpawnOverride()) { this.plugin.log(Level.FINE, "Moving NEW player to(firstspawnoverride): " + worldManager.getFirstSpawnWorld().getSpawnLocation()); this.sendPlayerToDefaultWorld(p); } return; } else { this.plugin.log(Level.FINER, "Player joined AGAIN!"); if (this.plugin.getMVConfig().getEnforceAccess() // check this only if we're enforcing access! && !this.plugin.getMVPerms().hasPermission(p, "multiverse.access." + p.getWorld().getName(), false)) { p.sendMessage("[MV] - Sorry you can't be in this world anymore!"); this.sendPlayerToDefaultWorld(p); } } // Handle the Players GameMode setting for the new world. this.handleGameModeAndFlight(event.getPlayer(), event.getPlayer().getWorld()); playerWorld.put(p.getName(), p.getWorld().getName()); }
return; if (plugin.getMVConfig().getEnforceAccess()) { event.setCancelled(!pt.playerCanGoFromTo(fromWorld, toWorld, event.getPlayer(), event.getPlayer())); if (event.isCancelled()) { + "' because enforceaccess is off."); if (!plugin.getMVConfig().isUsingDefaultPortalSearch() && event.getPortalTravelAgent() != null) { event.getPortalTravelAgent().setSearchRadius(plugin.getMVConfig().getPortalSearchRadius());