From d595cb9a311392ae6613da8fbf1558413f2d9380 Mon Sep 17 00:00:00 2001 From: "main()" Date: Tue, 31 Jan 2012 20:49:55 +0100 Subject: [PATCH 01/14] Added SerializationConfig-dependency, including it with the shade-plugin. --- pom.xml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/pom.xml b/pom.xml index 582028de..499b6688 100644 --- a/pom.xml +++ b/pom.xml @@ -158,6 +158,26 @@ ${project.basedir}/config/mv_checks.xml + + org.apache.maven.plugins + maven-shade-plugin + 1.5 + + + package + + shade + + + + + me.main__.util:SerializationConfig + + + + + + @@ -241,6 +261,15 @@ compile + + + me.main__.util + SerializationConfig + 1.0 + jar + compile + + junit From 44df5679368754ede68045b076b86c734beec5c6 Mon Sep 17 00:00:00 2001 From: "main()" Date: Wed, 1 Feb 2012 16:28:23 +0100 Subject: [PATCH 02/14] Now using SerializationConfig. --- .../MultiverseCore/MultiverseCore.java | 62 +++---- .../MultiverseCoreConfiguration.java | 164 ++++++++++++++++++ .../MultiverseCore/commands/DebugCommand.java | 8 +- .../commands/TeleportCommand.java | 2 +- .../commands/VersionCommand.java | 12 +- .../listeners/MVPlayerListener.java | 8 +- .../MultiverseCore/utils/MVPermissions.java | 2 +- .../MultiverseCore/utils/PermissionTools.java | 4 +- .../MultiverseCore/test/TestDebugMode.java | 4 +- .../test/TestWorldProperties.java | 8 +- 10 files changed, 220 insertions(+), 54 deletions(-) create mode 100644 src/main/java/com/onarandombox/MultiverseCore/MultiverseCoreConfiguration.java diff --git a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java index 31aef137..79e77dcf 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java +++ b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java @@ -33,6 +33,9 @@ import com.onarandombox.MultiverseCore.listeners.MVWeatherListener; import com.onarandombox.MultiverseCore.listeners.MVPortalListener; import com.onarandombox.MultiverseCore.utils.*; import com.pneumaticraft.commandhandler.CommandHandler; + +import me.main__.util.SerializationConfig.SerializationConfig; + import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.command.Command; @@ -60,20 +63,12 @@ import java.util.logging.Logger; */ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { private static final int PROTOCOL = 12; - // Global Multiverse config variable, states whether or not - // Multiverse should stop other plugins from teleporting players - // to worlds. - // TODO This is REALLY bad style! We have to change this! - // No, I'm NOT going to suppress these warnings because we HAVE TO CHANGE THIS! - public static boolean EnforceAccess; - public static boolean PrefixChat; - public static boolean DisplayPermErrors; - public static boolean TeleportIntercept; - public static boolean FirstSpawnOverride; - public static Map teleportQueue = new HashMap(); - public static int GlobalDebug = 0; + + // TODO maybe add deprecated stubs for the old globals + private static Map teleportQueue = new HashMap(); private AnchorManager anchorManager = new AnchorManager(this); + private static MultiverseCoreConfiguration config; /** * This method is used to find out who is teleporting a player. @@ -176,6 +171,8 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { @Override public void onLoad() { + // Register our config + SerializationConfig.registerAll(MultiverseCoreConfiguration.class); // Create our DataFolder getDataFolder().mkdirs(); // Setup our Debug Log @@ -344,21 +341,18 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { this.multiverseConfig = YamlConfiguration.loadConfiguration(new File(getDataFolder(), "config.yml")); this.worldManager.loadWorldConfig(new File(getDataFolder(), "worlds.yml")); - // Setup the Debug option, we'll default to false because this option will not be in the default config. - GlobalDebug = this.multiverseConfig.getInt("debug", 0); - // Lets cache these values due to the fact that they will be accessed many times. - EnforceAccess = this.multiverseConfig.getBoolean("enforceaccess", false); - PrefixChat = this.multiverseConfig.getBoolean("worldnameprefix", true); - // Should MV Intercept teleports by other plugins? - TeleportIntercept = this.multiverseConfig.getBoolean("teleportintercept", true); - // Should MV do the first spawn stuff? - FirstSpawnOverride = this.multiverseConfig.getBoolean("firstspawnoverride", true); - // Should permissions errors display to users? - DisplayPermErrors = this.multiverseConfig.getBoolean("displaypermerrors", true); + MultiverseCoreConfiguration wantedConfig = null; + try { + wantedConfig = (MultiverseCoreConfiguration) multiverseConfig.get("multiverse-configuration"); + } catch (Exception e) { + // We're just thinking "no risk no fun" and therefore have to catch and forget this exception + } finally { + config = ((wantedConfig == null) ? new MultiverseCoreConfiguration() : wantedConfig); + } + // ... and save it + multiverseConfig.set("multiverse-configuration", config); - this.messaging.setCooldown(this.multiverseConfig.getInt("messagecooldown", 5000)); // SUPPRESS CHECKSTYLE: MagicNumberCheck - // Update the version of the config! - this.multiverseConfig.set("version", coreDefaults.get("version")); + this.messaging.setCooldown(config.getMessageCooldown()); // Remove old values. this.multiverseConfig.set("enforcegamemodes", null); @@ -483,7 +477,7 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { } ArrayList allArgs = new ArrayList(Arrays.asList(args)); allArgs.add(0, command.getName()); - return this.commandHandler.locateAndRunCommand(sender, allArgs, DisplayPermErrors); + return this.commandHandler.locateAndRunCommand(sender, allArgs, config.getDisplayPermErrors()); } /** @@ -501,13 +495,13 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { * @param msg The message to log. */ public static void staticLog(Level level, String msg) { - if (level == Level.FINE && GlobalDebug >= 1) { + if (level == Level.FINE && config.getGlobalDebug() >= 1) { staticDebugLog(Level.INFO, msg); return; - } else if (level == Level.FINER && GlobalDebug >= 2) { + } else if (level == Level.FINER && config.getGlobalDebug() >= 2) { staticDebugLog(Level.INFO, msg); return; - } else if (level == Level.FINEST && GlobalDebug >= 3) { + } else if (level == Level.FINEST && config.getGlobalDebug() >= 3) { staticDebugLog(Level.INFO, msg); return; } else if (level != Level.FINE && level != Level.FINER && level != Level.FINEST) { @@ -858,4 +852,12 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { public void setSafeTTeleporter(SafeTTeleporter safeTTeleporter) { this.safeTTeleporter = safeTTeleporter; } + + /** + * Gets our {@link MultiverseCoreConfiguration}. + * @return The {@link MultiverseCoreConfiguration} we're using. + */ + public static MultiverseCoreConfiguration getStaticConfig() { + return config; + } } diff --git a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCoreConfiguration.java b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCoreConfiguration.java new file mode 100644 index 00000000..8631b729 --- /dev/null +++ b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCoreConfiguration.java @@ -0,0 +1,164 @@ +package com.onarandombox.MultiverseCore; + +import java.util.Map; + +import me.main__.util.SerializationConfig.Property; +import me.main__.util.SerializationConfig.SerializationConfig; + +/** + * Our configuration. + */ +public class MultiverseCoreConfiguration extends SerializationConfig { + @Property + private boolean enforceAccess; + @Property + private boolean prefixChat; + @Property + private boolean teleportIntercept; + @Property + private boolean firstSpawnOverride; + @Property + private boolean displayPermErrors; + @Property + private int globalDebug; + @Property + private int messageCooldown; + + public MultiverseCoreConfiguration() { + super(); + } + + public MultiverseCoreConfiguration(Map values) { + super(values); + } + + /** + * {@inheritDoc} + */ + @Override + public void setDefaults() { + // BEGIN CHECKSTYLE-SUPPRESSION: MagicNumberCheck + enforceAccess = false; + prefixChat = true; + teleportIntercept = true; + firstSpawnOverride = true; + displayPermErrors = true; + globalDebug = 0; + messageCooldown = 5000; + // END CHECKSTYLE-SUPPRESSION: MagicNumberCheck + } + + // And here we go: + + /** + * Gets enforceAccess. + * @return enforceAccess. + */ + public boolean getEnforceAccess() { + return enforceAccess; + } + + /** + * Sets enforceAccess. + * @param enforceAccess The new value. + */ + public void setEnforceAccess(boolean enforceAccess) { + this.enforceAccess = enforceAccess; + } + + /** + * Gets prefixChat. + * @return prefixChat. + */ + public boolean getPrefixChat() { + return prefixChat; + } + + /** + * Sets prefixChat. + * @param prefixChat The new value. + */ + public void setPrefixChat(boolean prefixChat) { + this.prefixChat = prefixChat; + } + + /** + * Gets teleportIntercept. + * @return teleportIntercept. + */ + public boolean getTeleportIntercept() { + return teleportIntercept; + } + + /** + * Sets teleportIntercept. + * @param teleportIntercept The new value. + */ + public void setTeleportIntercept(boolean teleportIntercept) { + this.teleportIntercept = teleportIntercept; + } + + /** + * Gets firstSpawnOverride. + * @return firstSpawnOverride. + */ + public boolean getFirstSpawnOverride() { + return firstSpawnOverride; + } + + /** + * Sets firstSpawnOverride. + * @param firstSpawnOverride The new value. + */ + public void setFirstSpawnOverride(boolean firstSpawnOverride) { + this.firstSpawnOverride = firstSpawnOverride; + } + + /** + * Gets displayPermErrors. + * @return displayPermErrors. + */ + public boolean getDisplayPermErrors() { + return displayPermErrors; + } + + /** + * Sets displayPermErrors. + * @param displayPermErrors The new value. + */ + public void setDisplayPermErrors(boolean displayPermErrors) { + this.displayPermErrors = displayPermErrors; + } + + /** + * Gets globalDebug. + * @return globalDebug. + */ + public int getGlobalDebug() { + return globalDebug; + } + + /** + * Sets globalDebug. + * @param globalDebug The new value. + */ + public void setGlobalDebug(int globalDebug) { + this.globalDebug = globalDebug; + } + + /** + * Gets messageCooldown. + * @return messageCooldown. + */ + public int getMessageCooldown() { + return messageCooldown; + } + + /** + * Sets messageCooldown. + * @param messageCooldown The new value. + */ + public void setMessageCooldown(int messageCooldown) { + this.messageCooldown = messageCooldown; + } +} diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/DebugCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/DebugCommand.java index 83f7cdd5..42431ac8 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/DebugCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/DebugCommand.java @@ -36,14 +36,14 @@ public class DebugCommand extends MultiverseCommand { public void runCommand(CommandSender sender, List args) { if (args.size() == 1) { if (args.get(0).equalsIgnoreCase("off")) { - MultiverseCore.GlobalDebug = 0; + MultiverseCore.getStaticConfig().setGlobalDebug(0); } else { try { int debugLevel = Integer.parseInt(args.get(0)); if (debugLevel > 3 || debugLevel < 0) { throw new NumberFormatException(); } - MultiverseCore.GlobalDebug = debugLevel; + MultiverseCore.getStaticConfig().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!)"); @@ -55,10 +55,10 @@ public class DebugCommand extends MultiverseCommand { } private void displayDebugMode(CommandSender sender) { - if (MultiverseCore.GlobalDebug == 0) { + if (MultiverseCore.getStaticConfig().getGlobalDebug() == 0) { sender.sendMessage("Multiverse Debug mode is " + ChatColor.RED + "OFF"); } else { - sender.sendMessage("Multiverse Debug mode is " + ChatColor.GREEN + MultiverseCore.GlobalDebug); + sender.sendMessage("Multiverse Debug mode is " + ChatColor.GREEN + MultiverseCore.getStaticConfig().getGlobalDebug()); this.plugin.log(Level.FINE, "Multiverse Debug ENABLED"); } } diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/TeleportCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/TeleportCommand.java index 8232c5bb..3ebb25f6 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/TeleportCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/TeleportCommand.java @@ -110,7 +110,7 @@ public class TeleportCommand extends MultiverseCommand { return; } - if (MultiverseCore.EnforceAccess && teleporter != null && !this.plugin.getMVPerms().canEnterDestination(teleporter, d)) { + if (MultiverseCore.getStaticConfig().getEnforceAccess() && teleporter != null && !this.plugin.getMVPerms().canEnterDestination(teleporter, d)) { if (teleportee.equals(teleporter)) { teleporter.sendMessage("Doesn't look like you're allowed to go " + ChatColor.RED + "there..."); } else { diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/VersionCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/VersionCommand.java index db878b80..fa3b6c4c 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/VersionCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/VersionCommand.java @@ -56,13 +56,13 @@ public class VersionCommand extends MultiverseCommand { .append(this.plugin.getMVConfiguration().getDouble("version", -1)).append(")").append('\n'); buffer.append("[Multiverse-Core] messagecooldown: ").append(this.plugin.getMessaging().getCooldown()).append('\n'); buffer.append("[Multiverse-Core] teleportcooldown: ").append("Not yet IMPLEMENTED").append('\n'); - buffer.append("[Multiverse-Core] worldnameprefix: ").append(MultiverseCore.PrefixChat).append('\n'); - buffer.append("[Multiverse-Core] enforceaccess: ").append(MultiverseCore.EnforceAccess).append('\n'); - buffer.append("[Multiverse-Core] displaypermerrors: ").append(MultiverseCore.DisplayPermErrors).append('\n'); - buffer.append("[Multiverse-Core] teleportintercept: ").append(MultiverseCore.TeleportIntercept).append('\n'); - buffer.append("[Multiverse-Core] firstspawnoverride: ").append(MultiverseCore.FirstSpawnOverride).append('\n'); + buffer.append("[Multiverse-Core] worldnameprefix: ").append(MultiverseCore.getStaticConfig().getPrefixChat()).append('\n'); + buffer.append("[Multiverse-Core] enforceaccess: ").append(MultiverseCore.getStaticConfig().getEnforceAccess()).append('\n'); + buffer.append("[Multiverse-Core] displaypermerrors: ").append(MultiverseCore.getStaticConfig().getDisplayPermErrors()).append('\n'); + buffer.append("[Multiverse-Core] teleportintercept: ").append(MultiverseCore.getStaticConfig().getTeleportIntercept()).append('\n'); + buffer.append("[Multiverse-Core] firstspawnoverride: ").append(MultiverseCore.getStaticConfig().getFirstSpawnOverride()).append('\n'); buffer.append("[Multiverse-Core] firstspawnworld: ").append(this.plugin.getMVConfiguration().getString("firstspawnworld", "NOT SET")).append('\n'); - buffer.append("[Multiverse-Core] debug: ").append(MultiverseCore.GlobalDebug).append('\n'); + buffer.append("[Multiverse-Core] debug: ").append(MultiverseCore.getStaticConfig().getGlobalDebug()).append('\n'); buffer.append("[Multiverse-Core] Special Code: FRN002").append('\n'); MVVersionEvent versionEvent = new MVVersionEvent(buffer.toString()); diff --git a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java index 76240e42..a6fd21ea 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java +++ b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java @@ -55,7 +55,7 @@ public class MVPlayerListener implements Listener { } // Check whether the Server is set to prefix the chat with the World name. // If not we do nothing, if so we need to check if the World has an Alias. - if (MultiverseCore.PrefixChat) { + if (MultiverseCore.getStaticConfig().getPrefixChat()) { String world = event.getPlayer().getWorld().getName(); String prefix = ""; // If we're not a MV world, don't do anything @@ -127,7 +127,7 @@ public class MVPlayerListener implements Listener { Player p = event.getPlayer(); if (!p.hasPlayedBefore()) { this.plugin.log(Level.FINE, "Player joined first!"); - if (MultiverseCore.FirstSpawnOverride) { + if (MultiverseCore.getStaticConfig().getFirstSpawnOverride()) { this.plugin.log(Level.FINE, "Moving NEW player to(firstspawnoverride): " + worldManager.getFirstSpawnWorld().getSpawnLocation()); this.spawnNewPlayer(p); } @@ -197,7 +197,7 @@ public class MVPlayerListener implements Listener { teleportee.getName(), event.getTo().getWorld().getName(), teleporter.getName())); return; } - if (MultiverseCore.EnforceAccess) { + if (MultiverseCore.getStaticConfig().getEnforceAccess()) { event.setCancelled(!pt.playerCanGoFromTo(fromWorld, toWorld, teleporter, teleportee)); if (event.isCancelled() && teleporter != null) { this.plugin.log(Level.FINE, String.format("Player '%s' was DENIED ACCESS to '%s' because '%s' don't have: multiverse.access.%s", @@ -262,7 +262,7 @@ public class MVPlayerListener implements Listener { event.getPlayer().getName(), event.getTo().getWorld().getName())); return; } - if (MultiverseCore.EnforceAccess) { + if (MultiverseCore.getStaticConfig().getEnforceAccess()) { event.setCancelled(!pt.playerCanGoFromTo(fromWorld, toWorld, event.getPlayer(), event.getPlayer())); if (event.isCancelled()) { this.plugin.log(Level.FINE, String.format("Player '%s' was DENIED ACCESS to '%s' because they don't have: multiverse.access.%s", diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/MVPermissions.java b/src/main/java/com/onarandombox/MultiverseCore/utils/MVPermissions.java index a66c0d9b..e10fe51b 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/utils/MVPermissions.java +++ b/src/main/java/com/onarandombox/MultiverseCore/utils/MVPermissions.java @@ -98,7 +98,7 @@ public class MVPermissions implements PermissionsInterface { */ public boolean canEnterWorld(Player p, MultiverseWorld w) { // If we're not enforcing access, anyone can enter. - if (!MultiverseCore.EnforceAccess) { + if (!MultiverseCore.getStaticConfig().getEnforceAccess()) { return true; } return this.hasPermission(p, "multiverse.access." + w.getName(), false); diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/PermissionTools.java b/src/main/java/com/onarandombox/MultiverseCore/utils/PermissionTools.java index 2be0c287..4312ab86 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/utils/PermissionTools.java +++ b/src/main/java/com/onarandombox/MultiverseCore/utils/PermissionTools.java @@ -100,7 +100,7 @@ public class PermissionTools { */ public boolean playerHasMoneyToEnter(MultiverseWorld fromWorld, MultiverseWorld toWorld, CommandSender teleporter, Player teleportee, boolean pay) { Player teleporterPlayer; - if (MultiverseCore.TeleportIntercept) { + if (MultiverseCore.getStaticConfig().getTeleportIntercept()) { if (teleporter instanceof ConsoleCommandSender) { return true; } @@ -171,7 +171,7 @@ public class PermissionTools { this.plugin.log(Level.FINEST, "Checking '" + teleporter + "' can send '" + teleportee + "' somewhere"); Player teleporterPlayer; - if (MultiverseCore.TeleportIntercept) { + if (MultiverseCore.getStaticConfig().getTeleportIntercept()) { // The console can send anyone anywhere if (teleporter instanceof ConsoleCommandSender) { return true; diff --git a/src/test/java/com/onarandombox/MultiverseCore/test/TestDebugMode.java b/src/test/java/com/onarandombox/MultiverseCore/test/TestDebugMode.java index 34815c6c..47471a73 100644 --- a/src/test/java/com/onarandombox/MultiverseCore/test/TestDebugMode.java +++ b/src/test/java/com/onarandombox/MultiverseCore/test/TestDebugMode.java @@ -70,12 +70,12 @@ public class TestDebugMode { when(mockCommand.getName()).thenReturn("mv"); // Assert debug mode is off - Assert.assertEquals(0, MultiverseCore.GlobalDebug); + Assert.assertEquals(0, MultiverseCore.getStaticConfig().getGlobalDebug()); // Send the debug command. String[] debugArgs = new String[] { "debug", "3" }; plugin.onCommand(mockCommandSender, mockCommand, "", debugArgs); - Assert.assertEquals(3, MultiverseCore.GlobalDebug); + Assert.assertEquals(3, MultiverseCore.getStaticConfig().getGlobalDebug()); } } diff --git a/src/test/java/com/onarandombox/MultiverseCore/test/TestWorldProperties.java b/src/test/java/com/onarandombox/MultiverseCore/test/TestWorldProperties.java index 45412ccf..c569b7ba 100644 --- a/src/test/java/com/onarandombox/MultiverseCore/test/TestWorldProperties.java +++ b/src/test/java/com/onarandombox/MultiverseCore/test/TestWorldProperties.java @@ -165,10 +165,10 @@ public class TestWorldProperties { assertFalse(thunderChangeOnEvent.isCancelled()); // call player chat event - MultiverseCore.PrefixChat = true; + MultiverseCore.getStaticConfig().setPrefixChat(true); core.getPlayerListener().playerChat(playerChatEvent); verify(playerChatEvent).setFormat("[" + mvWorld.getColoredWorldString() + "]" + "format"); - MultiverseCore.PrefixChat = false; + MultiverseCore.getStaticConfig().setPrefixChat(false); core.getPlayerListener().playerChat(playerChatEvent); verify(playerChatEvent, times(1)).setFormat(anyString()); // only ONE TIME (not the 2nd time!) @@ -263,7 +263,7 @@ public class TestWorldProperties { assertTrue(thunderChangeOnEvent.isCancelled()); // call player chat event - MultiverseCore.PrefixChat = true; + MultiverseCore.getStaticConfig().setPrefixChat(true); core.getPlayerListener().playerChat(playerChatEvent); // never because it's hidden! verify(playerChatEvent, never()).setFormat( @@ -271,7 +271,7 @@ public class TestWorldProperties { mvWorld.setHidden(false); core.getPlayerListener().playerChat(playerChatEvent); verify(playerChatEvent).setFormat("[" + mvWorld.getColoredWorldString() + "]" + "format"); - MultiverseCore.PrefixChat = false; + MultiverseCore.getStaticConfig().setPrefixChat(false); core.getPlayerListener().playerChat(playerChatEvent); verify(playerChatEvent, times(1)).setFormat(anyString()); // only ONE TIME (not the 2nd time!) From 1e7eef90f9b78e1fa476be4d0f56813f5cae0e66 Mon Sep 17 00:00:00 2001 From: "main()" Date: Wed, 1 Feb 2012 17:13:59 +0100 Subject: [PATCH 03/14] Now using AllPay as maven-dependency, not as git-submodule. --- .gitmodules | 5 +---- lib/allpay | 1 - pom.xml | 11 ++++++++++- 3 files changed, 11 insertions(+), 6 deletions(-) delete mode 160000 lib/allpay diff --git a/.gitmodules b/.gitmodules index 6c3a7c60..c934febd 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,4 @@ -[submodule "lib/allpay"] - path = lib/allpay - url = git://github.com/FernFerret/AllPay.git [submodule "lib/commandhandler"] path = lib/commandhandler url = git://github.com/PneumatiCraft/CommandHandler.git - branch = notrie + branch = notrie diff --git a/lib/allpay b/lib/allpay deleted file mode 160000 index 7abba1f0..00000000 --- a/lib/allpay +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7abba1f0040862e9fabdafb3d44c6cf0b914cc7c diff --git a/pom.xml b/pom.xml index 499b6688..128eae0e 100644 --- a/pom.xml +++ b/pom.xml @@ -81,7 +81,6 @@ - ${project.basedir}/lib/allpay/src/main/java ${project.basedir}/lib/commandhandler/src ${project.basedir}/lib/commandhandler/lib/ShellParser/src @@ -172,6 +171,7 @@ me.main__.util:SerializationConfig + com.fernferret.allpay:AllPay @@ -270,6 +270,15 @@ compile + + + com.fernferret.allpay + AllPay + 5 + jar + compile + + junit From 5d2534f497eb2f3552491e30c6e539ea64921049 Mon Sep 17 00:00:00 2001 From: "main()" Date: Wed, 1 Feb 2012 19:45:51 +0100 Subject: [PATCH 04/14] Goodbye economy-dependencies! --- pom.xml | 63 --------------------------------------------------------- 1 file changed, 63 deletions(-) diff --git a/pom.xml b/pom.xml index 128eae0e..a01f6271 100644 --- a/pom.xml +++ b/pom.xml @@ -198,69 +198,6 @@ dev-SNAPSHOT - - - cosine.boseconomy - BOSEconomy - 0.6.2 - jar - compile - - - - fr.crafter.tickleman.RealShop - RealShop - 0.63 - jar - compile - - - - com.iCo6 - iConomy - 6.0 - jar - compile - - - - com.iConomy - iConomy - 5.0 - jar - compile - - - - com.nijiko.coelho.iConomy - iConomy - 4.65 - jar - compile - - - - com.earth2me.essentials - Essentials - 2.4.2 - jar - compile - - - me.ashtheking.currency - MultiCurrency - 0.09 - jar - compile - - - ca.agnate - EconXP - 1.0.0 - jar - compile - - me.main__.util From 8272e121f4a55c0eeebe1e1a3aad0832246b9ffe Mon Sep 17 00:00:00 2001 From: Eric Stokes Date: Wed, 1 Feb 2012 19:13:47 -0700 Subject: [PATCH 05/14] Update to allpay 6 --- pom.xml | 2 +- .../java/com/onarandombox/MultiverseCore/MultiverseCore.java | 5 ++--- .../MultiverseCore/listeners/MVPluginListener.java | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index a01f6271..2ddf04ea 100644 --- a/pom.xml +++ b/pom.xml @@ -211,7 +211,7 @@ com.fernferret.allpay AllPay - 5 + 6 jar compile diff --git a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java index 79e77dcf..5ad7a147 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java +++ b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java @@ -62,9 +62,8 @@ import java.util.logging.Logger; * The implementation of the Multiverse-{@link Core}. */ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { - private static final int PROTOCOL = 12; + private static final int PROTOCOL = 13; - // TODO maybe add deprecated stubs for the old globals private static Map teleportQueue = new HashMap(); private AnchorManager anchorManager = new AnchorManager(this); @@ -280,7 +279,7 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { LOGGER.info(String.format("%s - Version %s was NOT ENABLED!!!", LOG_TAG, this.getDescription().getVersion())); LOGGER.info(String.format("%s A plugin that has loaded before %s has an incompatible version of AllPay (an internal library)!", LOG_TAG, this.getDescription().getName())); - LOGGER.info(String.format("%s The Following Plugins MAY out of date: %s", LOG_TAG, AllPay.pluginsThatUseUs.toString())); + LOGGER.info(String.format("%s The Following Plugins MAY out of date: %s", LOG_TAG, this.banker.getPluginsThatUseUs())); LOGGER.info(String.format("%s This plugin needs AllPay v%f or higher and another plugin has loaded v%f!", LOG_TAG, ALLPAY_VERSION, this.banker.getVersion())); return false; diff --git a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPluginListener.java b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPluginListener.java index 567429e4..001a490f 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPluginListener.java +++ b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPluginListener.java @@ -36,7 +36,7 @@ public class MVPluginListener implements Listener { @EventHandler(priority = EventPriority.MONITOR) public void pluginEnable(PluginEnableEvent event) { // Let AllPay handle all econ plugin loadings, only go for econ plugins we support - if (Arrays.asList(AllPay.validEconPlugins).contains(event.getPlugin().getDescription().getName())) { + if (Arrays.asList(AllPay.getValidEconPlugins()).contains(event.getPlugin().getDescription().getName())) { this.plugin.setBank(this.plugin.getBanker().loadEconPlugin()); } From b09ea0e66a56fb6b087b4e0a1087ee28275a1f38 Mon Sep 17 00:00:00 2001 From: Eric Stokes Date: Wed, 1 Feb 2012 19:37:33 -0700 Subject: [PATCH 06/14] Add shading relocation so we don't conflict anymore! --- pom.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pom.xml b/pom.xml index 2ddf04ea..02623976 100644 --- a/pom.xml +++ b/pom.xml @@ -174,6 +174,16 @@ com.fernferret.allpay:AllPay + + + com.fernferret.allpay + com.fernferret.allpay.multiverse + + + me.main__.util + me.main__.util.multiverse + + From 541819ea8fdf3cf138f7e8339b25113aced316ae Mon Sep 17 00:00:00 2001 From: Eric Stokes Date: Wed, 1 Feb 2012 21:44:15 -0700 Subject: [PATCH 07/14] Move to shaded CH, this will break all MV plugins --- pom.xml | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/pom.xml b/pom.xml index 02623976..1d871a69 100644 --- a/pom.xml +++ b/pom.xml @@ -67,27 +67,6 @@ 1.6 - - - org.codehaus.mojo - build-helper-maven-plugin - 1.7 - - - add-wsdl-source - generate-sources - - add-source - - - - ${project.basedir}/lib/commandhandler/src - ${project.basedir}/lib/commandhandler/lib/ShellParser/src - - - - - com.google.code.maven-replacer-plugin maven-replacer-plugin @@ -172,6 +151,7 @@ me.main__.util:SerializationConfig com.fernferret.allpay:AllPay + com.pneumaticraft.commandhandler:CommandHandler @@ -183,6 +163,10 @@ me.main__.util me.main__.util.multiverse + + com.pneumaticraft.commandhandler + com.pneumaticraft.commandhandler.multiverse + @@ -226,6 +210,15 @@ compile + + + com.pneumaticraft.commandhandler + CommandHandler + 6 + jar + compile + + junit From 443d62580ba24c4f225ffca0067bc914cf7f5a6b Mon Sep 17 00:00:00 2001 From: "main()" Date: Thu, 2 Feb 2012 17:20:46 +0100 Subject: [PATCH 08/14] CommandHandler is now mavenized, we can delete the submodule! --- .gitmodules | 4 ---- lib/commandhandler | 1 - 2 files changed, 5 deletions(-) delete mode 100644 .gitmodules delete mode 160000 lib/commandhandler diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index c934febd..00000000 --- a/.gitmodules +++ /dev/null @@ -1,4 +0,0 @@ -[submodule "lib/commandhandler"] - path = lib/commandhandler - url = git://github.com/PneumatiCraft/CommandHandler.git - branch = notrie diff --git a/lib/commandhandler b/lib/commandhandler deleted file mode 160000 index 46a3ab6e..00000000 --- a/lib/commandhandler +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 46a3ab6e4e444cd84f836aa6d36ed02cf6347454 From 5d1532e8111980d155291be5114a58485dae9b1c Mon Sep 17 00:00:00 2001 From: "main()" Date: Thu, 2 Feb 2012 17:25:53 +0100 Subject: [PATCH 09/14] Updated build instructions in README (goodbye, submodules!) --- README.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d1c7b96d..41d090ee 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,8 @@ Building ======== -Update the submodules after you clone and before you build with maven. +Simply build the source with maven: -``` -$ git submodule update --init --recursive -$ mvn install -``` + $ mvn install More details are available on the [build instructions wiki page](https://github.com/Multiverse/Multiverse-Core/wiki/Building). From 90b04aa7984b2e8dc4ba37839418a878136fe073 Mon Sep 17 00:00:00 2001 From: Eric Stokes Date: Fri, 3 Feb 2012 23:36:17 -0700 Subject: [PATCH 10/14] Add migrater for new configs, remove default, it's autogenned now --- pom.xml | 2 +- .../MultiverseCore/MultiverseCore.java | 68 +++++++++++++++---- .../MultiverseCoreConfiguration.java | 43 ++++++++++-- .../MultiverseCore/utils/MVPermissions.java | 13 ++-- src/main/resources/defaults/config.yml | 14 ---- 5 files changed, 101 insertions(+), 39 deletions(-) delete mode 100644 src/main/resources/defaults/config.yml diff --git a/pom.xml b/pom.xml index 1d871a69..7393e416 100644 --- a/pom.xml +++ b/pom.xml @@ -180,7 +180,7 @@ org.bukkit bukkit - 1.1-R2 + 1.1-R3 jar compile diff --git a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java index 5ad7a147..53bc523b 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java +++ b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java @@ -252,14 +252,10 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { // Now set the firstspawnworld (after the worlds are loaded): // Default as the server.props world. - this.worldManager.setFirstSpawnWorld(this.multiverseConfig.getString("firstspawnworld", getDefaultWorldName())); - // We have to set this one here, if it's not present, we don't know the name of the default world. - // and this one won't be in the defaults yml file. - try { - this.multiverseConfig.set("firstspawnworld", this.worldManager.getFirstSpawnWorld().getName()); - } catch (NullPointerException e) { - // A test that had no worlds loaded was being run. This should never happen in production + if (this.config.getFirstSpawnWorld() == null) { + this.config.setFirstSpawnWorld(getDefaultWorldName()); } + this.worldManager.setFirstSpawnWorld(this.config.getFirstSpawnWorld()); this.saveMVConfig(); // Check to see if spout was already loaded (most likely): if (this.getServer().getPluginManager().getPlugin("Spout") != null) { @@ -333,11 +329,6 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { public void loadConfigs() { // Now grab the Configuration Files. this.multiverseConfig = YamlConfiguration.loadConfiguration(new File(getDataFolder(), "config.yml")); - Configuration coreDefaults = YamlConfiguration.loadConfiguration(this.getClass().getResourceAsStream("/defaults/config.yml")); - this.multiverseConfig.setDefaults(coreDefaults); - this.multiverseConfig.options().copyDefaults(true); - this.saveMVConfig(); - this.multiverseConfig = YamlConfiguration.loadConfiguration(new File(getDataFolder(), "config.yml")); this.worldManager.loadWorldConfig(new File(getDataFolder(), "worlds.yml")); MultiverseCoreConfiguration wantedConfig = null; @@ -358,9 +349,62 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { this.multiverseConfig.set("bedrespawn", null); this.multiverseConfig.set("opfallback", null); + // Old Config Format + this.migrate22Values(); this.saveMVConfigs(); } + /** + * Thes are the MV config 2.0-2.2 values, + * they should be migrated to the new format. + */ + private void migrate22Values() { + if (this.multiverseConfig.isSet("worldnameprefix")) { + this.log(Level.INFO, "Migrating 'worldnameprefix'..."); + this.config.setPrefixChat(this.multiverseConfig.getBoolean("worldnameprefix")); + this.multiverseConfig.set("worldnameprefix", null); + } + if (this.multiverseConfig.isSet("firstspawnworld")) { + this.log(Level.INFO, "Migrating 'firstspawnworld'..."); + this.config.setFirstSpawnWorld(this.multiverseConfig.getString("firstspawnworld")); + this.multiverseConfig.set("firstspawnworld", null); + } + if (this.multiverseConfig.isSet("enforceaccess")) { + this.log(Level.INFO, "Migrating 'enforceaccess'..."); + this.config.setEnforceAccess(this.multiverseConfig.getBoolean("enforceaccess")); + this.multiverseConfig.set("enforceaccess", null); + } + if (this.multiverseConfig.isSet("displaypermerrors")) { + this.log(Level.INFO, "Migrating 'displaypermerrors'..."); + this.config.setDisplayPermErrors(this.multiverseConfig.getBoolean("displaypermerrors")); + this.multiverseConfig.set("displaypermerrors", null); + } + if (this.multiverseConfig.isSet("teleportintercept")) { + this.log(Level.INFO, "Migrating 'teleportintercept'..."); + this.config.setTeleportIntercept(this.multiverseConfig.getBoolean("teleportintercept")); + this.multiverseConfig.set("teleportintercept", null); + } + if (this.multiverseConfig.isSet("firstspawnoverride")) { + this.log(Level.INFO, "Migrating 'firstspawnoverride'..."); + this.config.setFirstSpawnOverride(this.multiverseConfig.getBoolean("firstspawnoverride")); + this.multiverseConfig.set("firstspawnoverride", null); + } + if (this.multiverseConfig.isSet("messagecooldown")) { + this.log(Level.INFO, "Migrating 'messagecooldown'..."); + this.config.setMessageCooldown(this.multiverseConfig.getInt("messagecooldown")); + this.multiverseConfig.set("messagecooldown", null); + } + if (this.multiverseConfig.isSet("debug")) { + this.log(Level.INFO, "Migrating 'debug'..."); + this.config.setGlobalDebug(this.multiverseConfig.getInt("debug")); + this.multiverseConfig.set("debug", null); + } + if (this.multiverseConfig.isSet("version")) { + this.log(Level.INFO, "Migrating 'version'..."); + this.multiverseConfig.set("version", null); + } + } + /** * Safely return a world name. * (The tests call this with no worlds loaded) diff --git a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCoreConfiguration.java b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCoreConfiguration.java index 8631b729..8525e8c9 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCoreConfiguration.java +++ b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCoreConfiguration.java @@ -18,11 +18,15 @@ public class MultiverseCoreConfiguration extends SerializationConfig { @Property private boolean firstSpawnOverride; @Property + private String firstSpawnWorld; + @Property private boolean displayPermErrors; @Property private int globalDebug; @Property private int messageCooldown; + @Property + private double version; public MultiverseCoreConfiguration() { super(); @@ -45,6 +49,7 @@ public class MultiverseCoreConfiguration extends SerializationConfig { displayPermErrors = true; globalDebug = 0; messageCooldown = 5000; + this.version = 2.8; // END CHECKSTYLE-SUPPRESSION: MagicNumberCheck } @@ -55,7 +60,7 @@ public class MultiverseCoreConfiguration extends SerializationConfig { * @return enforceAccess. */ public boolean getEnforceAccess() { - return enforceAccess; + return this.enforceAccess; } /** @@ -71,7 +76,7 @@ public class MultiverseCoreConfiguration extends SerializationConfig { * @return prefixChat. */ public boolean getPrefixChat() { - return prefixChat; + return this.prefixChat; } /** @@ -87,7 +92,7 @@ public class MultiverseCoreConfiguration extends SerializationConfig { * @return teleportIntercept. */ public boolean getTeleportIntercept() { - return teleportIntercept; + return this.teleportIntercept; } /** @@ -103,7 +108,7 @@ public class MultiverseCoreConfiguration extends SerializationConfig { * @return firstSpawnOverride. */ public boolean getFirstSpawnOverride() { - return firstSpawnOverride; + return this.firstSpawnOverride; } /** @@ -119,7 +124,7 @@ public class MultiverseCoreConfiguration extends SerializationConfig { * @return displayPermErrors. */ public boolean getDisplayPermErrors() { - return displayPermErrors; + return this.displayPermErrors; } /** @@ -135,7 +140,7 @@ public class MultiverseCoreConfiguration extends SerializationConfig { * @return globalDebug. */ public int getGlobalDebug() { - return globalDebug; + return this.globalDebug; } /** @@ -151,7 +156,7 @@ public class MultiverseCoreConfiguration extends SerializationConfig { * @return messageCooldown. */ public int getMessageCooldown() { - return messageCooldown; + return this.messageCooldown; } /** @@ -161,4 +166,28 @@ public class MultiverseCoreConfiguration extends SerializationConfig { public void setMessageCooldown(int messageCooldown) { this.messageCooldown = messageCooldown; } + + /** + * Gets firstSpawnWorld. + * @return firstSpawnWorld. + */ + public String getFirstSpawnWorld() { + return this.firstSpawnWorld; + } + + /** + * Sets firstSpawnWorld. + * @param firstSpawnWorld The new value. + */ + public void setFirstSpawnWorld(String firstSpawnWorld) { + this.firstSpawnWorld = firstSpawnWorld; + } + + /** + * Gets the version of this config. + * @return version. + */ + public double getVersion() { + return this.version; + } } diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/MVPermissions.java b/src/main/java/com/onarandombox/MultiverseCore/utils/MVPermissions.java index e10fe51b..0e6e3a5f 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/utils/MVPermissions.java +++ b/src/main/java/com/onarandombox/MultiverseCore/utils/MVPermissions.java @@ -99,6 +99,7 @@ public class MVPermissions implements PermissionsInterface { public boolean canEnterWorld(Player p, MultiverseWorld w) { // If we're not enforcing access, anyone can enter. if (!MultiverseCore.getStaticConfig().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); @@ -169,9 +170,9 @@ public class MVPermissions implements PermissionsInterface { // plugin reloads, when MV asks the API if a player has a perm, it reports that they do NOT. // For the moment, we're going to check all of this node's parents to see if the user has those. It stops // when if finds a true or there are no more parents. --FF - if (!hasPermission) { - hasPermission = this.hasAnyParentPermission(sender, node); - } +// if (!hasPermission) { +// hasPermission = this.hasAnyParentPermission(sender, node); +// } return hasPermission; } @@ -179,10 +180,12 @@ public class MVPermissions implements PermissionsInterface { // TODO: Better player checks, most likely not needed, but safer. private boolean checkActualPermission(CommandSender sender, String node) { Player player = (Player) sender; - this.plugin.log(Level.FINEST, "Checking to see if player [" + player.getName() + "] has permission [" + node + "]"); + boolean hasPermission = sender.hasPermission(node); if (hasPermission) { - this.plugin.log(Level.FINER, "Player [" + player.getName() + "] HAS PERMISSION [" + node + "]!"); + this.plugin.log(Level.FINEST, "Checking to see if player [" + player.getName() + "] has permission [" + node + "]... YES"); + } else { + this.plugin.log(Level.FINEST, "Checking to see if player [" + player.getName() + "] has permission [" + node + "]... NO"); } return hasPermission; } diff --git a/src/main/resources/defaults/config.yml b/src/main/resources/defaults/config.yml deleted file mode 100644 index b478d099..00000000 --- a/src/main/resources/defaults/config.yml +++ /dev/null @@ -1,14 +0,0 @@ -# This is the MV2 Config. If you mess it up, copy the values out -# delete it, and it will be regenerated. Then use the ingame interface -# to add your values back via the "/mv conf" command. -# When in-game, simply type: "/mv conf ?" for help. -# A config with explanations can be found here: -# https://github.com/Multiverse/Multiverse-Core/wiki/config.yml - -worldnameprefix: true -enforceaccess: true -displaypermerrors: true -teleportintercept: true -firstspawnoverride: true -messagecooldown: 5000 -version: 2.7 From d707a9f9a812bcfcd8add327f65a27c8cd485725 Mon Sep 17 00:00:00 2001 From: Eric Stokes Date: Sat, 4 Feb 2012 00:18:48 -0700 Subject: [PATCH 11/14] Made config command more hardcoded, but work. --- .../commands/ConfigCommand.java | 88 ++++++++++++------- 1 file changed, 58 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/ConfigCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/ConfigCommand.java index 3b48e1ce..29e09d81 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/ConfigCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/ConfigCommand.java @@ -38,54 +38,82 @@ public class ConfigCommand extends MultiverseCommand { @Override public void runCommand(CommandSender sender, List args) { if (args.size() <= 1) { - String[] allProps = ConfigProperty.getAllValues().split(" "); - String currentvals = ""; - for (String prop : allProps) { - currentvals += ChatColor.GREEN; - currentvals += prop; - currentvals += ChatColor.WHITE; - currentvals += " = "; - currentvals += ChatColor.GOLD; - currentvals += this.plugin.getMVConfiguration().get(prop, "NOT SET"); - currentvals += ChatColor.WHITE; - currentvals += ", "; - } - sender.sendMessage(currentvals.substring(0, currentvals.length() - 2)); + StringBuilder builder = new StringBuilder(); + + builder.append(ChatColor.GREEN).append("enforceAccess").append(ChatColor.WHITE).append(" = "); + builder.append(ChatColor.GOLD).append(MultiverseCore.getStaticConfig().getEnforceAccess()); + builder.append(ChatColor.WHITE).append(", "); + builder.append(ChatColor.GREEN).append("prefixChat").append(ChatColor.WHITE).append(" = "); + builder.append(ChatColor.GOLD).append(MultiverseCore.getStaticConfig().getPrefixChat()).append(", "); + builder.append(ChatColor.WHITE).append(", "); + builder.append(ChatColor.GREEN).append("teleportIntercept").append(ChatColor.WHITE).append(" = "); + builder.append(ChatColor.GOLD).append(MultiverseCore.getStaticConfig().getTeleportIntercept()); + builder.append(ChatColor.WHITE).append(", "); + builder.append(ChatColor.GREEN).append("firstSpawnOverride").append(ChatColor.WHITE).append(" = "); + builder.append(ChatColor.GOLD).append(MultiverseCore.getStaticConfig().getFirstSpawnOverride()); + builder.append(ChatColor.WHITE).append(", "); + builder.append(ChatColor.GREEN).append("firstSpawnWorld").append(ChatColor.WHITE).append(" = "); + builder.append(ChatColor.GOLD).append(MultiverseCore.getStaticConfig().getFirstSpawnWorld()); + builder.append(ChatColor.WHITE).append(", "); + builder.append(ChatColor.GREEN).append("displayPermErrors").append(ChatColor.WHITE).append(" = "); + builder.append(ChatColor.GOLD).append(MultiverseCore.getStaticConfig().getDisplayPermErrors()); + builder.append(ChatColor.WHITE).append(", "); + builder.append(ChatColor.GREEN).append("globalDebug").append(ChatColor.WHITE).append(" = "); + builder.append(ChatColor.GOLD).append(MultiverseCore.getStaticConfig().getGlobalDebug()); + builder.append(ChatColor.WHITE).append(", "); + builder.append(ChatColor.GREEN).append("messageCooldown").append(ChatColor.WHITE).append(" = "); + builder.append(ChatColor.GOLD).append(MultiverseCore.getStaticConfig().getMessageCooldown()); + builder.append(ChatColor.WHITE).append(", "); + builder.append(ChatColor.GREEN).append("version").append(ChatColor.WHITE).append(" = "); + builder.append(ChatColor.GOLD).append(MultiverseCore.getStaticConfig().getVersion()); + sender.sendMessage(new StringBuilder().append(ChatColor.AQUA) + .append(" === [ All Values ] ===").toString()); + sender.sendMessage(builder.toString()); return; } if (args.get(0).equalsIgnoreCase("firstspawnworld")) { - this.plugin.getMVConfiguration().set(args.get(0).toLowerCase(), args.get(1)); + MultiverseCore.getStaticConfig().setFirstSpawnWorld(args.get(1)); // Don't forget to set the world! this.plugin.getMVWorldManager().setFirstSpawnWorld(args.get(1)); - } else if (args.get(0).equalsIgnoreCase("messagecooldown") || args.get(0).equalsIgnoreCase("teleportcooldown") - || args.get(0).equalsIgnoreCase("debug")) { + } else if (args.get(0).equalsIgnoreCase("messagecooldown")) { try { this.plugin.getMVConfiguration().set(args.get(0).toLowerCase(), Integer.parseInt(args.get(1))); } catch (NumberFormatException e) { sender.sendMessage(ChatColor.RED + "Sorry, " + ChatColor.AQUA + args.get(0) + ChatColor.WHITE + " must be an integer!"); return; } - } else { - ConfigProperty property = null; + } else if (args.get(0).equalsIgnoreCase("debug")) { try { - property = ConfigProperty.valueOf(args.get(0).toLowerCase()); - } catch (IllegalArgumentException e) { + MultiverseCore.getStaticConfig().setGlobalDebug(Integer.parseInt(args.get(1))); + } catch (NumberFormatException e) { + sender.sendMessage(ChatColor.RED + "Sorry, " + ChatColor.AQUA + args.get(0) + ChatColor.WHITE + " must be an integer!"); + return; + } + } else { + boolean value = false; + try { + value = Boolean.parseBoolean(args.get(1)); + } catch (Exception e) { + sender.sendMessage(ChatColor.RED + "Sorry, " + ChatColor.AQUA + args.get(0) + ChatColor.WHITE + " must be true or false!"); + return; + } + if (args.get(0).equalsIgnoreCase("enforceaccess")) { + MultiverseCore.getStaticConfig().setEnforceAccess(value); + } else if (args.get(0).equalsIgnoreCase("prefixchat")) { + MultiverseCore.getStaticConfig().setPrefixChat(value); + } else if (args.get(0).equalsIgnoreCase("teleportintercept")) { + MultiverseCore.getStaticConfig().setTeleportIntercept(value); + } else if (args.get(0).equalsIgnoreCase("firstspawnoverride")) { + MultiverseCore.getStaticConfig().setFirstSpawnOverride(value); + } else if (args.get(0).equalsIgnoreCase("displaypermerrors")) { + MultiverseCore.getStaticConfig().setDisplayPermErrors(value); + } else { sender.sendMessage(ChatColor.RED + "Sorry, " + ChatColor.AQUA + args.get(0) + ChatColor.WHITE + " you can't set " + ChatColor.AQUA + args.get(0)); sender.sendMessage(ChatColor.GREEN + "Valid values are:"); sender.sendMessage(ConfigProperty.getAllValues()); return; } - - if (property != null) { - try { - this.plugin.getMVConfiguration().set(args.get(0).toLowerCase(), Boolean.parseBoolean(args.get(1))); - } catch (Exception e) { - sender.sendMessage(ChatColor.RED + "Sorry, " + ChatColor.AQUA + args.get(0) + ChatColor.WHITE + " must be true or false!"); - return; - } - - } } if (this.plugin.saveMVConfigs()) { sender.sendMessage(ChatColor.GREEN + "SUCCESS!" + ChatColor.WHITE + " Values were updated successfully!"); From a1075224d32d9c60686d804df4b68e3fa46d6291 Mon Sep 17 00:00:00 2001 From: "main()" Date: Sat, 4 Feb 2012 14:22:55 +0100 Subject: [PATCH 12/14] Fixed config... --- pom.xml | 2 +- .../MultiverseCore/MultiverseCore.java | 37 ++--- .../MultiverseCoreConfiguration.java | 155 ++++++++++++------ .../onarandombox/MultiverseCore/api/Core.java | 7 + .../api/MultiverseCoreConfig.java | 136 +++++++++++++++ .../commands/ConfigCommand.java | 63 +++---- .../MultiverseCore/commands/DebugCommand.java | 8 +- .../commands/TeleportCommand.java | 2 +- .../commands/VersionCommand.java | 18 +- .../MultiverseCore/enums/ConfigProperty.java | 64 -------- .../listeners/MVPlayerListener.java | 8 +- .../MultiverseCore/utils/MVPermissions.java | 2 +- .../MultiverseCore/utils/MVPlayerSession.java | 10 +- .../MultiverseCore/utils/PermissionTools.java | 4 +- .../MultiverseCore/utils/WorldManager.java | 2 +- src/main/resources/defaults/config.yml | 8 - .../MultiverseCore/test/TestDebugMode.java | 7 +- .../test/TestWorldProperties.java | 9 +- 18 files changed, 319 insertions(+), 223 deletions(-) create mode 100644 src/main/java/com/onarandombox/MultiverseCore/api/MultiverseCoreConfig.java delete mode 100644 src/main/java/com/onarandombox/MultiverseCore/enums/ConfigProperty.java diff --git a/pom.xml b/pom.xml index 1d871a69..3feec461 100644 --- a/pom.xml +++ b/pom.xml @@ -196,7 +196,7 @@ me.main__.util SerializationConfig - 1.0 + 1.1 jar compile diff --git a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java index 5ad7a147..d5bb2b7f 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java +++ b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java @@ -14,6 +14,7 @@ import com.onarandombox.MultiverseCore.api.Core; import com.onarandombox.MultiverseCore.api.LocationManipulation; import com.onarandombox.MultiverseCore.api.MVPlugin; import com.onarandombox.MultiverseCore.api.MVWorldManager; +import com.onarandombox.MultiverseCore.api.MultiverseCoreConfig; import com.onarandombox.MultiverseCore.api.MultiverseMessaging; import com.onarandombox.MultiverseCore.api.MultiverseWorld; import com.onarandombox.MultiverseCore.api.SafeTTeleporter; @@ -67,6 +68,7 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { private static Map teleportQueue = new HashMap(); private AnchorManager anchorManager = new AnchorManager(this); + // TODO please let's make this non-static private static MultiverseCoreConfiguration config; /** @@ -186,8 +188,10 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { /** * {@inheritDoc} + * @deprecated This is deprecated. */ @Override + @Deprecated public FileConfiguration getMVConfiguration() { return this.multiverseConfig; } @@ -252,11 +256,11 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { // Now set the firstspawnworld (after the worlds are loaded): // Default as the server.props world. - this.worldManager.setFirstSpawnWorld(this.multiverseConfig.getString("firstspawnworld", getDefaultWorldName())); + this.worldManager.setFirstSpawnWorld(config.getFirstSpawnWorld()); // We have to set this one here, if it's not present, we don't know the name of the default world. // and this one won't be in the defaults yml file. try { - this.multiverseConfig.set("firstspawnworld", this.worldManager.getFirstSpawnWorld().getName()); + config.setFirstSpawnWorld(this.worldManager.getFirstSpawnWorld().getName()); } catch (NullPointerException e) { // A test that had no worlds loaded was being run. This should never happen in production } @@ -335,9 +339,8 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { this.multiverseConfig = YamlConfiguration.loadConfiguration(new File(getDataFolder(), "config.yml")); Configuration coreDefaults = YamlConfiguration.loadConfiguration(this.getClass().getResourceAsStream("/defaults/config.yml")); this.multiverseConfig.setDefaults(coreDefaults); - this.multiverseConfig.options().copyDefaults(true); - this.saveMVConfig(); - this.multiverseConfig = YamlConfiguration.loadConfiguration(new File(getDataFolder(), "config.yml")); + this.multiverseConfig.options().copyDefaults(false); + this.multiverseConfig.options().copyHeader(true); this.worldManager.loadWorldConfig(new File(getDataFolder(), "worlds.yml")); MultiverseCoreConfiguration wantedConfig = null; @@ -348,8 +351,6 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { } finally { config = ((wantedConfig == null) ? new MultiverseCoreConfiguration() : wantedConfig); } - // ... and save it - multiverseConfig.set("multiverse-configuration", config); this.messaging.setCooldown(config.getMessageCooldown()); @@ -361,19 +362,6 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { this.saveMVConfigs(); } - /** - * Safely return a world name. - * (The tests call this with no worlds loaded) - * - * @return The default world name. - */ - private String getDefaultWorldName() { - if (this.getServer().getWorlds().size() > 0) { - return this.getServer().getWorlds().get(0).getName(); - } - return ""; - } - /** * {@inheritDoc} */ @@ -441,7 +429,7 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { if (this.playerSessions.containsKey(player.getName())) { return this.playerSessions.get(player.getName()); } else { - this.playerSessions.put(player.getName(), new MVPlayerSession(player, this.multiverseConfig, this)); + this.playerSessions.put(player.getName(), new MVPlayerSession(player, config)); return this.playerSessions.get(player.getName()); } } @@ -726,6 +714,7 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { */ public boolean saveMVConfig() { try { + this.multiverseConfig.set("multiverse-configuration", config); this.multiverseConfig.save(new File(getDataFolder(), "config.yml")); return true; } catch (IOException e) { @@ -853,10 +842,10 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { } /** - * Gets our {@link MultiverseCoreConfiguration}. - * @return The {@link MultiverseCoreConfiguration} we're using. + * {@inheritDoc} */ - public static MultiverseCoreConfiguration getStaticConfig() { + @Override + public MultiverseCoreConfig getMVConfig() { return config; } } diff --git a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCoreConfiguration.java b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCoreConfiguration.java index 8631b729..8c728942 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCoreConfiguration.java +++ b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCoreConfiguration.java @@ -2,27 +2,35 @@ package com.onarandombox.MultiverseCore; import java.util.Map; +import com.onarandombox.MultiverseCore.api.MultiverseCoreConfig; + import me.main__.util.SerializationConfig.Property; import me.main__.util.SerializationConfig.SerializationConfig; /** * Our configuration. */ -public class MultiverseCoreConfiguration extends SerializationConfig { +public class MultiverseCoreConfiguration extends SerializationConfig implements MultiverseCoreConfig { @Property - private boolean enforceAccess; + private boolean enforceaccess; @Property private boolean prefixChat; @Property - private boolean teleportIntercept; + private boolean teleportintercept; @Property - private boolean firstSpawnOverride; + private boolean firstspawnoverride; @Property private boolean displayPermErrors; @Property - private int globalDebug; + private int globaldebug; @Property - private int messageCooldown; + private int messagecooldown; + @Property + private int version; + @Property + private String firstspawnworld; + @Property + private int portalcooldown; public MultiverseCoreConfiguration() { super(); @@ -38,127 +46,176 @@ public class MultiverseCoreConfiguration extends SerializationConfig { @Override public void setDefaults() { // BEGIN CHECKSTYLE-SUPPRESSION: MagicNumberCheck - enforceAccess = false; + enforceaccess = false; prefixChat = true; - teleportIntercept = true; - firstSpawnOverride = true; + teleportintercept = true; + firstspawnoverride = true; displayPermErrors = true; - globalDebug = 0; - messageCooldown = 5000; + globaldebug = 0; + messagecooldown = 5000; + portalcooldown = 5000; // END CHECKSTYLE-SUPPRESSION: MagicNumberCheck } // And here we go: /** - * Gets enforceAccess. - * @return enforceAccess. + * {@inheritDoc} */ + @Override public boolean getEnforceAccess() { - return enforceAccess; + return enforceaccess; } /** - * Sets enforceAccess. - * @param enforceAccess The new value. + * {@inheritDoc} */ + @Override public void setEnforceAccess(boolean enforceAccess) { - this.enforceAccess = enforceAccess; + this.enforceaccess = enforceAccess; } /** - * Gets prefixChat. - * @return prefixChat. + * {@inheritDoc} */ + @Override public boolean getPrefixChat() { return prefixChat; } /** - * Sets prefixChat. - * @param prefixChat The new value. + * {@inheritDoc} */ + @Override public void setPrefixChat(boolean prefixChat) { this.prefixChat = prefixChat; } /** - * Gets teleportIntercept. - * @return teleportIntercept. + * {@inheritDoc} */ + @Override public boolean getTeleportIntercept() { - return teleportIntercept; + return teleportintercept; } /** - * Sets teleportIntercept. - * @param teleportIntercept The new value. + * {@inheritDoc} */ + @Override public void setTeleportIntercept(boolean teleportIntercept) { - this.teleportIntercept = teleportIntercept; + this.teleportintercept = teleportIntercept; } /** - * Gets firstSpawnOverride. - * @return firstSpawnOverride. + * {@inheritDoc} */ + @Override public boolean getFirstSpawnOverride() { - return firstSpawnOverride; + return firstspawnoverride; } /** - * Sets firstSpawnOverride. - * @param firstSpawnOverride The new value. + * {@inheritDoc} */ + @Override public void setFirstSpawnOverride(boolean firstSpawnOverride) { - this.firstSpawnOverride = firstSpawnOverride; + this.firstspawnoverride = firstSpawnOverride; } /** - * Gets displayPermErrors. - * @return displayPermErrors. + * {@inheritDoc} */ + @Override public boolean getDisplayPermErrors() { return displayPermErrors; } /** - * Sets displayPermErrors. - * @param displayPermErrors The new value. + * {@inheritDoc} */ + @Override public void setDisplayPermErrors(boolean displayPermErrors) { this.displayPermErrors = displayPermErrors; } /** - * Gets globalDebug. - * @return globalDebug. + * {@inheritDoc} */ + @Override public int getGlobalDebug() { - return globalDebug; + return globaldebug; } /** - * Sets globalDebug. - * @param globalDebug The new value. + * {@inheritDoc} */ + @Override public void setGlobalDebug(int globalDebug) { - this.globalDebug = globalDebug; + this.globaldebug = globalDebug; } /** - * Gets messageCooldown. - * @return messageCooldown. + * {@inheritDoc} */ + @Override public int getMessageCooldown() { - return messageCooldown; + return messagecooldown; } /** - * Sets messageCooldown. - * @param messageCooldown The new value. + * {@inheritDoc} */ + @Override public void setMessageCooldown(int messageCooldown) { - this.messageCooldown = messageCooldown; + this.messagecooldown = messageCooldown; + } + + /** + * {@inheritDoc} + */ + @Override + public int getVersion() { + return version; + } + + /** + * {@inheritDoc} + */ + @Override + public void setVersion(int version) { + this.version = version; + } + + /** + * {@inheritDoc} + */ + @Override + public String getFirstSpawnWorld() { + return firstspawnworld; + } + + /** + * {@inheritDoc} + */ + @Override + public void setFirstSpawnWorld(String firstSpawnWorld) { + this.firstspawnworld = firstSpawnWorld; + } + + /** + * {@inheritDoc} + */ + @Override + public int getPortalCooldown() { + return portalcooldown; + } + + /** + * {@inheritDoc} + */ + @Override + public void setPortalCooldown(int portalCooldown) { + this.portalcooldown = portalCooldown; } } diff --git a/src/main/java/com/onarandombox/MultiverseCore/api/Core.java b/src/main/java/com/onarandombox/MultiverseCore/api/Core.java index 4e1007f9..01c684d0 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/api/Core.java +++ b/src/main/java/com/onarandombox/MultiverseCore/api/Core.java @@ -26,7 +26,9 @@ public interface Core { * Gets the Multiverse config file. * * @return The Multiverse config file. + * @deprecated Don't modify the config-file manually! */ + @Deprecated FileConfiguration getMVConfiguration(); /** @@ -215,4 +217,9 @@ public interface Core { */ void setSafeTTeleporter(SafeTTeleporter safeTTeleporter); + /** + * Gets the {@link MultiverseCoreConfig}. + * @return The configuration. + */ + MultiverseCoreConfig getMVConfig(); } diff --git a/src/main/java/com/onarandombox/MultiverseCore/api/MultiverseCoreConfig.java b/src/main/java/com/onarandombox/MultiverseCore/api/MultiverseCoreConfig.java new file mode 100644 index 00000000..f284489d --- /dev/null +++ b/src/main/java/com/onarandombox/MultiverseCore/api/MultiverseCoreConfig.java @@ -0,0 +1,136 @@ +package com.onarandombox.MultiverseCore.api; + +import org.bukkit.configuration.serialization.ConfigurationSerializable; + +/** + * The configuration of MultiverseCore. + */ +public interface MultiverseCoreConfig extends ConfigurationSerializable { + /** + * Sets a property using a {@link String}. + * @param property The name of the property. + * @param value The value. + * @return True on success, false if the operation failed. + */ + boolean setProperty(String property, String value); + + /** + * Sets portalCooldown. + * @param portalCooldown The new value. + */ + void setPortalCooldown(int portalCooldown); + + /** + * Gets portalCooldown. + * @return portalCooldown. + */ + int getPortalCooldown(); + + /** + * Sets firstSpawnWorld. + * @param firstSpawnWorld The new value. + */ + void setFirstSpawnWorld(String firstSpawnWorld); + + /** + * Gets firstSpawnWorld. + * @return firstSpawnWorld. + */ + String getFirstSpawnWorld(); + + /** + * Sets version. + * @param version The new value. + */ + void setVersion(int version); + + /** + * Gets version. + * @return version. + */ + int getVersion(); + + /** + * Sets messageCooldown. + * @param messageCooldown The new value. + */ + void setMessageCooldown(int messageCooldown); + + /** + * Gets messageCooldown. + * @return messageCooldown. + */ + int getMessageCooldown(); + + /** + * Sets globalDebug. + * @param globalDebug The new value. + */ + void setGlobalDebug(int globalDebug); + + /** + * Gets globalDebug. + * @return globalDebug. + */ + int getGlobalDebug(); + + /** + * Sets displayPermErrors. + * @param displayPermErrors The new value. + */ + void setDisplayPermErrors(boolean displayPermErrors); + + /** + * Gets displayPermErrors. + * @return displayPermErrors. + */ + boolean getDisplayPermErrors(); + + /** + * Sets firstSpawnOverride. + * @param firstSpawnOverride The new value. + */ + void setFirstSpawnOverride(boolean firstSpawnOverride); + + /** + * Gets firstSpawnOverride. + * @return firstSpawnOverride. + */ + boolean getFirstSpawnOverride(); + + /** + * Sets teleportIntercept. + * @param teleportIntercept The new value. + */ + void setTeleportIntercept(boolean teleportIntercept); + + /** + * Gets teleportIntercept. + * @return teleportIntercept. + */ + boolean getTeleportIntercept(); + + /** + * Sets prefixChat. + * @param prefixChat The new value. + */ + void setPrefixChat(boolean prefixChat); + + /** + * Gets prefixChat. + * @return prefixChat. + */ + boolean getPrefixChat(); + + /** + * Sets enforceAccess. + * @param enforceAccess The new value. + */ + void setEnforceAccess(boolean enforceAccess); + + /** + * Gets enforceAccess. + * @return enforceAccess. + */ + boolean getEnforceAccess(); +} diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/ConfigCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/ConfigCommand.java index 3b48e1ce..6290183a 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/ConfigCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/ConfigCommand.java @@ -8,12 +8,12 @@ package com.onarandombox.MultiverseCore.commands; import com.onarandombox.MultiverseCore.MultiverseCore; -import com.onarandombox.MultiverseCore.enums.ConfigProperty; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.permissions.PermissionDefault; import java.util.List; +import java.util.Map; /** * Allows you to set Global MV Variables. @@ -28,7 +28,6 @@ public class ConfigCommand extends MultiverseCommand { this.addKey("mvconfig"); this.addKey("mv conf"); this.addKey("mvconf"); - this.addCommandExample("All values: " + ConfigProperty.getAllValues()); this.addCommandExample("/mv config show"); this.addCommandExample("/mv config " + ChatColor.GREEN + "debug" + ChatColor.AQUA + " 3"); this.addCommandExample("/mv config " + ChatColor.GREEN + "enforceaccess" + ChatColor.AQUA + " false"); @@ -38,55 +37,31 @@ public class ConfigCommand extends MultiverseCommand { @Override public void runCommand(CommandSender sender, List args) { if (args.size() <= 1) { - String[] allProps = ConfigProperty.getAllValues().split(" "); - String currentvals = ""; - for (String prop : allProps) { - currentvals += ChatColor.GREEN; - currentvals += prop; - currentvals += ChatColor.WHITE; - currentvals += " = "; - currentvals += ChatColor.GOLD; - currentvals += this.plugin.getMVConfiguration().get(prop, "NOT SET"); - currentvals += ChatColor.WHITE; - currentvals += ", "; + StringBuilder builder = new StringBuilder(); + Map serializedConfig = this.plugin.getMVConfig().serialize(); + for (Map.Entry entry : serializedConfig.entrySet()) { + builder.append(ChatColor.GREEN); + builder.append(entry.getKey()); + builder.append(ChatColor.WHITE).append(" = ").append(ChatColor.GOLD); + builder.append(entry.getValue().toString()); + builder.append(ChatColor.WHITE).append(", "); } - sender.sendMessage(currentvals.substring(0, currentvals.length() - 2)); + String message = builder.toString(); + message = message.substring(0, message.length() - 2); + sender.sendMessage(message); return; } + if (!this.plugin.getMVConfig().setProperty(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; + } + + // special rule if (args.get(0).equalsIgnoreCase("firstspawnworld")) { - this.plugin.getMVConfiguration().set(args.get(0).toLowerCase(), args.get(1)); // Don't forget to set the world! this.plugin.getMVWorldManager().setFirstSpawnWorld(args.get(1)); - } else if (args.get(0).equalsIgnoreCase("messagecooldown") || args.get(0).equalsIgnoreCase("teleportcooldown") - || args.get(0).equalsIgnoreCase("debug")) { - try { - this.plugin.getMVConfiguration().set(args.get(0).toLowerCase(), Integer.parseInt(args.get(1))); - } catch (NumberFormatException e) { - sender.sendMessage(ChatColor.RED + "Sorry, " + ChatColor.AQUA + args.get(0) + ChatColor.WHITE + " must be an integer!"); - return; - } - } else { - ConfigProperty property = null; - try { - property = ConfigProperty.valueOf(args.get(0).toLowerCase()); - } catch (IllegalArgumentException e) { - sender.sendMessage(ChatColor.RED + "Sorry, " + ChatColor.AQUA - + args.get(0) + ChatColor.WHITE + " you can't set " + ChatColor.AQUA + args.get(0)); - sender.sendMessage(ChatColor.GREEN + "Valid values are:"); - sender.sendMessage(ConfigProperty.getAllValues()); - return; - } - - if (property != null) { - try { - this.plugin.getMVConfiguration().set(args.get(0).toLowerCase(), Boolean.parseBoolean(args.get(1))); - } catch (Exception e) { - sender.sendMessage(ChatColor.RED + "Sorry, " + ChatColor.AQUA + args.get(0) + ChatColor.WHITE + " must be true or false!"); - return; - } - - } } + if (this.plugin.saveMVConfigs()) { sender.sendMessage(ChatColor.GREEN + "SUCCESS!" + ChatColor.WHITE + " Values were updated successfully!"); this.plugin.loadConfigs(); diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/DebugCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/DebugCommand.java index 42431ac8..53fc01b5 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/DebugCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/DebugCommand.java @@ -36,14 +36,14 @@ public class DebugCommand extends MultiverseCommand { public void runCommand(CommandSender sender, List args) { if (args.size() == 1) { if (args.get(0).equalsIgnoreCase("off")) { - MultiverseCore.getStaticConfig().setGlobalDebug(0); + plugin.getMVConfig().setGlobalDebug(0); } else { try { int debugLevel = Integer.parseInt(args.get(0)); if (debugLevel > 3 || debugLevel < 0) { throw new NumberFormatException(); } - MultiverseCore.getStaticConfig().setGlobalDebug(debugLevel); + 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!)"); @@ -55,10 +55,10 @@ public class DebugCommand extends MultiverseCommand { } private void displayDebugMode(CommandSender sender) { - if (MultiverseCore.getStaticConfig().getGlobalDebug() == 0) { + if (plugin.getMVConfig().getGlobalDebug() == 0) { sender.sendMessage("Multiverse Debug mode is " + ChatColor.RED + "OFF"); } else { - sender.sendMessage("Multiverse Debug mode is " + ChatColor.GREEN + MultiverseCore.getStaticConfig().getGlobalDebug()); + sender.sendMessage("Multiverse Debug mode is " + ChatColor.GREEN + plugin.getMVConfig().getGlobalDebug()); this.plugin.log(Level.FINE, "Multiverse Debug ENABLED"); } } diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/TeleportCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/TeleportCommand.java index 3ebb25f6..b20f7e73 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/TeleportCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/TeleportCommand.java @@ -110,7 +110,7 @@ public class TeleportCommand extends MultiverseCommand { return; } - if (MultiverseCore.getStaticConfig().getEnforceAccess() && teleporter != null && !this.plugin.getMVPerms().canEnterDestination(teleporter, d)) { + if (plugin.getMVConfig().getEnforceAccess() && teleporter != null && !this.plugin.getMVPerms().canEnterDestination(teleporter, d)) { if (teleportee.equals(teleporter)) { teleporter.sendMessage("Doesn't look like you're allowed to go " + ChatColor.RED + "there..."); } else { diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/VersionCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/VersionCommand.java index fa3b6c4c..515fdb9d 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/VersionCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/VersionCommand.java @@ -53,16 +53,16 @@ public class VersionCommand extends MultiverseCommand { buffer.append("[Multiverse-Core] Economy being used: ").append(this.plugin.getBank().getEconUsed()).append('\n'); buffer.append("[Multiverse-Core] Permissions Plugin: ").append(this.plugin.getMVPerms().getType()).append('\n'); buffer.append("[Multiverse-Core] Dumping Config Values: (version ") - .append(this.plugin.getMVConfiguration().getDouble("version", -1)).append(")").append('\n'); - buffer.append("[Multiverse-Core] messagecooldown: ").append(this.plugin.getMessaging().getCooldown()).append('\n'); + .append(this.plugin.getMVConfig().getVersion()).append(")").append('\n'); + buffer.append("[Multiverse-Core] messagecooldown: ").append(plugin.getMessaging().getCooldown()).append('\n'); buffer.append("[Multiverse-Core] teleportcooldown: ").append("Not yet IMPLEMENTED").append('\n'); - buffer.append("[Multiverse-Core] worldnameprefix: ").append(MultiverseCore.getStaticConfig().getPrefixChat()).append('\n'); - buffer.append("[Multiverse-Core] enforceaccess: ").append(MultiverseCore.getStaticConfig().getEnforceAccess()).append('\n'); - buffer.append("[Multiverse-Core] displaypermerrors: ").append(MultiverseCore.getStaticConfig().getDisplayPermErrors()).append('\n'); - buffer.append("[Multiverse-Core] teleportintercept: ").append(MultiverseCore.getStaticConfig().getTeleportIntercept()).append('\n'); - buffer.append("[Multiverse-Core] firstspawnoverride: ").append(MultiverseCore.getStaticConfig().getFirstSpawnOverride()).append('\n'); - buffer.append("[Multiverse-Core] firstspawnworld: ").append(this.plugin.getMVConfiguration().getString("firstspawnworld", "NOT SET")).append('\n'); - buffer.append("[Multiverse-Core] debug: ").append(MultiverseCore.getStaticConfig().getGlobalDebug()).append('\n'); + buffer.append("[Multiverse-Core] worldnameprefix: ").append(plugin.getMVConfig().getPrefixChat()).append('\n'); + buffer.append("[Multiverse-Core] enforceaccess: ").append(plugin.getMVConfig().getEnforceAccess()).append('\n'); + buffer.append("[Multiverse-Core] displaypermerrors: ").append(plugin.getMVConfig().getDisplayPermErrors()).append('\n'); + buffer.append("[Multiverse-Core] teleportintercept: ").append(plugin.getMVConfig().getTeleportIntercept()).append('\n'); + buffer.append("[Multiverse-Core] firstspawnoverride: ").append(plugin.getMVConfig().getFirstSpawnOverride()).append('\n'); + buffer.append("[Multiverse-Core] firstspawnworld: ").append(plugin.getMVConfig().getFirstSpawnWorld()).append('\n'); + buffer.append("[Multiverse-Core] debug: ").append(plugin.getMVConfig().getGlobalDebug()).append('\n'); buffer.append("[Multiverse-Core] Special Code: FRN002").append('\n'); MVVersionEvent versionEvent = new MVVersionEvent(buffer.toString()); diff --git a/src/main/java/com/onarandombox/MultiverseCore/enums/ConfigProperty.java b/src/main/java/com/onarandombox/MultiverseCore/enums/ConfigProperty.java deleted file mode 100644 index 6d11c9ab..00000000 --- a/src/main/java/com/onarandombox/MultiverseCore/enums/ConfigProperty.java +++ /dev/null @@ -1,64 +0,0 @@ -/****************************************************************************** - * Multiverse 2 Copyright (c) the Multiverse Team 2011. * - * Multiverse 2 is licensed under the BSD License. * - * For more information please check the README.md file included * - * with this project. * - ******************************************************************************/ - -package com.onarandombox.MultiverseCore.enums; - -/** - * An enum containing all config-properties that can be set. - */ -public enum ConfigProperty { - /** - * How long to leave in between sending a message to the player. (NOT YET IMPLEMENTED) - */ - messagecooldown, - /** - * How fast are people allowed to use /MVTP (NOT YET IMPLEMENTED). - */ - teleportcooldown, - /** - * Prefix chat-messages with world-names. - */ - worldnameprefix, - /** - * If value is set to false, Multiverse will NOT enforce world access permissions. - */ - enforceaccess, - /** - * Whether users should get detailed information about the permissions they would need. - */ - displaypermerrors, - /** - * Debug-information. - */ - debug, - /** - * The world new users will spawn in. - */ - firstspawnworld, - /** - * Whether Multiverse should intercept teleports. - */ - teleportintercept, - /** - * Whether Multiverse should override the first spawn. - */ - firstspawnoverride; - - /** - * Constructs a string containing all values in this enum. - * - * @return That {@link String}. - */ - public static String getAllValues() { - String buffer = ""; - for (ConfigProperty c : ConfigProperty.values()) { - // All values will NOT Contain spaces. - buffer += c.toString() + " "; - } - return buffer; - } -} diff --git a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java index a6fd21ea..2af2670d 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java +++ b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java @@ -55,7 +55,7 @@ public class MVPlayerListener implements Listener { } // Check whether the Server is set to prefix the chat with the World name. // If not we do nothing, if so we need to check if the World has an Alias. - if (MultiverseCore.getStaticConfig().getPrefixChat()) { + if (plugin.getMVConfig().getPrefixChat()) { String world = event.getPlayer().getWorld().getName(); String prefix = ""; // If we're not a MV world, don't do anything @@ -127,7 +127,7 @@ public class MVPlayerListener implements Listener { Player p = event.getPlayer(); if (!p.hasPlayedBefore()) { this.plugin.log(Level.FINE, "Player joined first!"); - if (MultiverseCore.getStaticConfig().getFirstSpawnOverride()) { + if (plugin.getMVConfig().getFirstSpawnOverride()) { this.plugin.log(Level.FINE, "Moving NEW player to(firstspawnoverride): " + worldManager.getFirstSpawnWorld().getSpawnLocation()); this.spawnNewPlayer(p); } @@ -197,7 +197,7 @@ public class MVPlayerListener implements Listener { teleportee.getName(), event.getTo().getWorld().getName(), teleporter.getName())); return; } - if (MultiverseCore.getStaticConfig().getEnforceAccess()) { + if (plugin.getMVConfig().getEnforceAccess()) { event.setCancelled(!pt.playerCanGoFromTo(fromWorld, toWorld, teleporter, teleportee)); if (event.isCancelled() && teleporter != null) { this.plugin.log(Level.FINE, String.format("Player '%s' was DENIED ACCESS to '%s' because '%s' don't have: multiverse.access.%s", @@ -262,7 +262,7 @@ public class MVPlayerListener implements Listener { event.getPlayer().getName(), event.getTo().getWorld().getName())); return; } - if (MultiverseCore.getStaticConfig().getEnforceAccess()) { + if (plugin.getMVConfig().getEnforceAccess()) { event.setCancelled(!pt.playerCanGoFromTo(fromWorld, toWorld, event.getPlayer(), event.getPlayer())); if (event.isCancelled()) { this.plugin.log(Level.FINE, String.format("Player '%s' was DENIED ACCESS to '%s' because they don't have: multiverse.access.%s", diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/MVPermissions.java b/src/main/java/com/onarandombox/MultiverseCore/utils/MVPermissions.java index e10fe51b..abf7e972 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/utils/MVPermissions.java +++ b/src/main/java/com/onarandombox/MultiverseCore/utils/MVPermissions.java @@ -98,7 +98,7 @@ public class MVPermissions implements PermissionsInterface { */ public boolean canEnterWorld(Player p, MultiverseWorld w) { // If we're not enforcing access, anyone can enter. - if (!MultiverseCore.getStaticConfig().getEnforceAccess()) { + if (!plugin.getMVConfig().getEnforceAccess()) { return true; } return this.hasPermission(p, "multiverse.access." + w.getName(), false); diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/MVPlayerSession.java b/src/main/java/com/onarandombox/MultiverseCore/utils/MVPlayerSession.java index 90e8796c..66a37b7c 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/utils/MVPlayerSession.java +++ b/src/main/java/com/onarandombox/MultiverseCore/utils/MVPlayerSession.java @@ -7,8 +7,8 @@ package com.onarandombox.MultiverseCore.utils; -import com.onarandombox.MultiverseCore.MultiverseCore; -import org.bukkit.configuration.Configuration; +import com.onarandombox.MultiverseCore.MultiverseCoreConfiguration; + import org.bukkit.entity.Player; import java.util.Date; @@ -23,9 +23,9 @@ public class MVPlayerSession { private long teleportLast = 0L; // Timestamp for the Players last Portal Teleportation. private long messageLast = 0L; // Timestamp for the Players last Alert Message. - private Configuration config; // Configuration file to find out Cooldown Timers. + private MultiverseCoreConfiguration config; // Configuration file to find out Cooldown Timers. - public MVPlayerSession(Player player, Configuration config, MultiverseCore multiVerseCore) { + public MVPlayerSession(Player player, MultiverseCoreConfiguration config) { this.player = player; this.config = config; // this.bedSpawn = null; @@ -42,6 +42,6 @@ public class MVPlayerSession { */ public boolean getTeleportable() { long time = (new Date()).getTime(); - return ((time - this.teleportLast) > this.config.getInt("portalcooldown", 5000)); // SUPPRESS CHECKSTYLE: MagicNumberCheck + return ((time - this.teleportLast) > this.config.getPortalCooldown()); } } diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/PermissionTools.java b/src/main/java/com/onarandombox/MultiverseCore/utils/PermissionTools.java index 4312ab86..bcb98377 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/utils/PermissionTools.java +++ b/src/main/java/com/onarandombox/MultiverseCore/utils/PermissionTools.java @@ -100,7 +100,7 @@ public class PermissionTools { */ public boolean playerHasMoneyToEnter(MultiverseWorld fromWorld, MultiverseWorld toWorld, CommandSender teleporter, Player teleportee, boolean pay) { Player teleporterPlayer; - if (MultiverseCore.getStaticConfig().getTeleportIntercept()) { + if (plugin.getMVConfig().getTeleportIntercept()) { if (teleporter instanceof ConsoleCommandSender) { return true; } @@ -171,7 +171,7 @@ public class PermissionTools { this.plugin.log(Level.FINEST, "Checking '" + teleporter + "' can send '" + teleportee + "' somewhere"); Player teleporterPlayer; - if (MultiverseCore.getStaticConfig().getTeleportIntercept()) { + if (plugin.getMVConfig().getTeleportIntercept()) { // The console can send anyone anywhere if (teleporter instanceof ConsoleCommandSender) { return true; diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/WorldManager.java b/src/main/java/com/onarandombox/MultiverseCore/utils/WorldManager.java index 3bc01374..8c9764b9 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/utils/WorldManager.java +++ b/src/main/java/com/onarandombox/MultiverseCore/utils/WorldManager.java @@ -210,7 +210,7 @@ public class WorldManager implements MVWorldManager { */ @Override public void setFirstSpawnWorld(String world) { - if (world == null) { + if ((world == null) && (this.plugin.getServer().getWorlds().size() > 0)) { this.firstSpawn = this.plugin.getServer().getWorlds().get(0).getName(); } else { this.firstSpawn = world; diff --git a/src/main/resources/defaults/config.yml b/src/main/resources/defaults/config.yml index b478d099..6fdeb0a3 100644 --- a/src/main/resources/defaults/config.yml +++ b/src/main/resources/defaults/config.yml @@ -4,11 +4,3 @@ # When in-game, simply type: "/mv conf ?" for help. # A config with explanations can be found here: # https://github.com/Multiverse/Multiverse-Core/wiki/config.yml - -worldnameprefix: true -enforceaccess: true -displaypermerrors: true -teleportintercept: true -firstspawnoverride: true -messagecooldown: 5000 -version: 2.7 diff --git a/src/test/java/com/onarandombox/MultiverseCore/test/TestDebugMode.java b/src/test/java/com/onarandombox/MultiverseCore/test/TestDebugMode.java index 47471a73..64d9b1fd 100644 --- a/src/test/java/com/onarandombox/MultiverseCore/test/TestDebugMode.java +++ b/src/test/java/com/onarandombox/MultiverseCore/test/TestDebugMode.java @@ -22,12 +22,14 @@ import org.bukkit.command.CommandSender; import org.bukkit.plugin.Plugin; import org.junit.After; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import com.onarandombox.MultiverseCore.MultiverseCore; +import com.onarandombox.MultiverseCore.api.Core; import com.onarandombox.MultiverseCore.test.utils.TestInstanceCreator; @RunWith(PowerMockRunner.class) @@ -54,6 +56,7 @@ public class TestDebugMode { public void testEnableDebugMode() { // Pull a core instance from the server. Plugin plugin = mockServer.getPluginManager().getPlugin("Multiverse-Core"); + Core core = (Core) plugin; // Make sure Core is not null assertNotNull(plugin); @@ -70,12 +73,12 @@ public class TestDebugMode { when(mockCommand.getName()).thenReturn("mv"); // Assert debug mode is off - Assert.assertEquals(0, MultiverseCore.getStaticConfig().getGlobalDebug()); + Assert.assertEquals(0, core.getMVConfig().getGlobalDebug()); // Send the debug command. String[] debugArgs = new String[] { "debug", "3" }; plugin.onCommand(mockCommandSender, mockCommand, "", debugArgs); - Assert.assertEquals(3, MultiverseCore.getStaticConfig().getGlobalDebug()); + Assert.assertEquals(3, core.getMVConfig().getGlobalDebug()); } } diff --git a/src/test/java/com/onarandombox/MultiverseCore/test/TestWorldProperties.java b/src/test/java/com/onarandombox/MultiverseCore/test/TestWorldProperties.java index c569b7ba..b53ffeaa 100644 --- a/src/test/java/com/onarandombox/MultiverseCore/test/TestWorldProperties.java +++ b/src/test/java/com/onarandombox/MultiverseCore/test/TestWorldProperties.java @@ -34,6 +34,7 @@ import org.bukkit.permissions.Permission; import org.bukkit.plugin.PluginManager; import org.junit.After; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.internal.verification.VerificationModeFactory; @@ -165,10 +166,10 @@ public class TestWorldProperties { assertFalse(thunderChangeOnEvent.isCancelled()); // call player chat event - MultiverseCore.getStaticConfig().setPrefixChat(true); + core.getMVConfig().setPrefixChat(true); core.getPlayerListener().playerChat(playerChatEvent); verify(playerChatEvent).setFormat("[" + mvWorld.getColoredWorldString() + "]" + "format"); - MultiverseCore.getStaticConfig().setPrefixChat(false); + core.getMVConfig().setPrefixChat(false); core.getPlayerListener().playerChat(playerChatEvent); verify(playerChatEvent, times(1)).setFormat(anyString()); // only ONE TIME (not the 2nd time!) @@ -263,7 +264,7 @@ public class TestWorldProperties { assertTrue(thunderChangeOnEvent.isCancelled()); // call player chat event - MultiverseCore.getStaticConfig().setPrefixChat(true); + core.getMVConfig().setPrefixChat(true); core.getPlayerListener().playerChat(playerChatEvent); // never because it's hidden! verify(playerChatEvent, never()).setFormat( @@ -271,7 +272,7 @@ public class TestWorldProperties { mvWorld.setHidden(false); core.getPlayerListener().playerChat(playerChatEvent); verify(playerChatEvent).setFormat("[" + mvWorld.getColoredWorldString() + "]" + "format"); - MultiverseCore.getStaticConfig().setPrefixChat(false); + core.getMVConfig().setPrefixChat(false); core.getPlayerListener().playerChat(playerChatEvent); verify(playerChatEvent, times(1)).setFormat(anyString()); // only ONE TIME (not the 2nd time!) From 950991ff1b12a44b00bd2a34b0fa9fc4ab2f961d Mon Sep 17 00:00:00 2001 From: Eric Stokes Date: Sat, 4 Feb 2012 09:10:56 -0700 Subject: [PATCH 13/14] Removed old checks, cleanup poop Add in the deprecated config method to not break other plugins Fix handling of unloaded worlds in info and list --- .../MultiverseCore/MultiverseCore.java | 57 ++++--------------- .../MultiverseCore/commands/InfoCommand.java | 11 +++- .../MultiverseCore/commands/ListCommand.java | 10 ++-- 3 files changed, 27 insertions(+), 51 deletions(-) diff --git a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java index 62a3acb3..eec81bbe 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java +++ b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java @@ -64,7 +64,8 @@ import java.util.logging.Logger; */ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { private static final int PROTOCOL = 13; - + // TODO: Investigate if this one is really needed to be static. + // Doubt it. -- FernFerret private static Map teleportQueue = new HashMap(); private AnchorManager anchorManager = new AnchorManager(this); @@ -152,8 +153,6 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { private MVWeatherListener weatherListener = new MVWeatherListener(this); private MVPortalListener portalListener = new MVPortalListener(this); - //public UpdateChecker updateCheck; - // HashMap to contain information relating to the Players. private HashMap playerSessions; private GenericBank bank = null; @@ -161,8 +160,6 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { private int pluginCount; private DestinationFactory destFactory; private SpoutInterface spoutInterface = null; - private static final double ALLPAY_VERSION = 5; - private static final double CH_VERSION = 4; private MultiverseMessaging messaging; private BlockSafety blockSafety; private LocationManipulation locationManipulation; @@ -209,12 +206,6 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { */ @Override public void onEnable() { - //this.worldManager = new WorldManager(this); - // Perform initial checks for AllPay - if (!this.validateAllpay() || !this.validateCH()) { - this.getServer().getPluginManager().disablePlugin(this); - return; - } this.messaging = new MVMessaging(); this.banker = new AllPay(this, LOG_TAG + " "); // Output a little snippet to show it's enabled. @@ -269,40 +260,6 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { } } - private boolean validateAllpay() { - try { - this.banker = new AllPay(this, "Verify"); - if (this.banker.getVersion() >= ALLPAY_VERSION) { - return true; - } - } catch (Throwable t) { - } - LOGGER.info(String.format("%s - Version %s was NOT ENABLED!!!", LOG_TAG, this.getDescription().getVersion())); - LOGGER.info(String.format("%s A plugin that has loaded before %s has an incompatible version of AllPay (an internal library)!", - LOG_TAG, this.getDescription().getName())); - LOGGER.info(String.format("%s The Following Plugins MAY out of date: %s", LOG_TAG, this.banker.getPluginsThatUseUs())); - LOGGER.info(String.format("%s This plugin needs AllPay v%f or higher and another plugin has loaded v%f!", - LOG_TAG, ALLPAY_VERSION, this.banker.getVersion())); - return false; - } - - private boolean validateCH() { - try { - this.commandHandler = new CommandHandler(this, null); - if (this.commandHandler.getVersion() >= CH_VERSION) { - return true; - } - } catch (Throwable t) { - } - LOGGER.info(String.format("%s - Version %s was NOT ENABLED!!!", LOG_TAG, this.getDescription().getVersion())); - LOGGER.info(String.format("%s A plugin that has loaded before %s has an incompatible version of CommandHandler (an internal library)!", - LOG_TAG, this.getDescription().getName())); - LOGGER.info(String.format("%s Please contact this plugin author!!!", LOG_TAG)); - LOGGER.info(String.format("%s This plugin needs CommandHandler v%f or higher and another plugin has loaded v%f!", - LOG_TAG, CH_VERSION, this.commandHandler.getVersion())); - return false; - } - private void initializeDestinationFactory() { this.destFactory = new DestinationFactory(this); this.destFactory.registerDestinationType(WorldDestination.class, ""); @@ -898,4 +855,14 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { public MultiverseCoreConfig getMVConfig() { return config; } + + /** + * This method is currently used by other plugins. + * It will be removed in 2.4 + * @return + */ + @Deprecated + public static MultiverseCoreConfiguration getStaticConfig() { + return config; + } } diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/InfoCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/InfoCommand.java index b92527eb..e7ad09bf 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/InfoCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/InfoCommand.java @@ -61,9 +61,13 @@ public class InfoCommand extends MultiverseCommand { return; } } else if (args.size() == 1) { - if (this.worldManager.getMVWorld(args.get(0)) != null) { + if (this.worldManager.isMVWorld(args.get(0))) { // then we have a world! worldName = args.get(0); + } else if(this.worldManager.getUnloadedWorlds().contains(args.get(0))){ + sender.sendMessage("That world exists, but it is unloaded!"); + sender.sendMessage(String.format("You can load it with: %s/mv load %s", ChatColor.AQUA, args.get(0))); + return; } else { if (sender instanceof Player) { Player p = (Player) sender; @@ -93,8 +97,11 @@ public class InfoCommand extends MultiverseCommand { p = (Player) sender; } showPage(pageNum, sender, this.buildEntireCommand(this.worldManager.getMVWorld(worldName), p)); + } else if (this.worldManager.getUnloadedWorlds().contains(worldName)) { + sender.sendMessage("That world exists, but it is unloaded!"); + sender.sendMessage(String.format("You can load it with: %s/mv load %s", ChatColor.AQUA, worldName)); } else if (this.plugin.getServer().getWorld(worldName) != null) { - sender.sendMessage("That world exists, but multiverse does not know about it!"); + sender.sendMessage("That world exists, but Multiverse does not know about it!"); sender.sendMessage("You can import it with" + ChatColor.AQUA + "/mv import " + ChatColor.GREEN + worldName + ChatColor.LIGHT_PURPLE + "{ENV}"); sender.sendMessage("For available environments type " + ChatColor.GREEN + "/mv env"); } diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java index e882aa02..e63ea4f2 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java @@ -52,14 +52,16 @@ public class ListCommand extends PaginatedCoreCommand { } else if (env == Environment.THE_END) { color = ChatColor.AQUA; } - String outputCache = world.getColoredWorldString() + ChatColor.WHITE + " - " + color + world.getEnvironment(); + StringBuilder builder = new StringBuilder(); + builder.append(world.getColoredWorldString()).append(ChatColor.WHITE); + builder.append(" - ").append(color).append(world.getEnvironment()); if (world.isHidden()) { - if (p == null || p.hasPermission("multiverse.core.modify")) { + if (p == null || this.plugin.getMVPerms().hasPermission(p, "multiverse.core.modify", true)) { // Prefix hidden worlds with an "[H]" - worldList.add(ChatColor.GRAY + "[H]" + outputCache); + worldList.add(ChatColor.GRAY + "[H]" + builder.toString()); } } else { - worldList.add(outputCache); + worldList.add(builder.toString()); } } for (String name : this.plugin.getMVWorldManager().getUnloadedWorlds()) { From 3ac4e55dc27d2007ed7e7c4439bf9bac63d6fa60 Mon Sep 17 00:00:00 2001 From: Eric Stokes Date: Sat, 4 Feb 2012 10:14:58 -0700 Subject: [PATCH 14/14] Minor bug fixed preparing for 2.3 Fix chatPrefix -> chatprefix Fix portalcooldown -> teleportcooldown Fix made teleportcooldown show up in the config Add New warnings to the default. --- .../MultiverseCoreConfiguration.java | 22 +++++++++---------- .../api/MultiverseCoreConfig.java | 4 ++-- .../commands/VersionCommand.java | 2 +- .../MultiverseCore/utils/MVPlayerSession.java | 7 +++--- src/main/resources/defaults/config.yml | 22 ++++++++++++++----- 5 files changed, 34 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCoreConfiguration.java b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCoreConfiguration.java index 3d327a93..6446ba3d 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCoreConfiguration.java +++ b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCoreConfiguration.java @@ -14,7 +14,7 @@ public class MultiverseCoreConfiguration extends SerializationConfig implements @Property private boolean enforceaccess; @Property - private boolean prefixChat; + private boolean prefixchat; @Property private boolean teleportintercept; @Property @@ -30,7 +30,7 @@ public class MultiverseCoreConfiguration extends SerializationConfig implements @Property private String firstspawnworld; @Property - private int portalcooldown; + private int teleportcooldown; public MultiverseCoreConfiguration() { super(); @@ -47,14 +47,14 @@ public class MultiverseCoreConfiguration extends SerializationConfig implements public void setDefaults() { // BEGIN CHECKSTYLE-SUPPRESSION: MagicNumberCheck enforceaccess = false; - prefixChat = true; + prefixchat = true; teleportintercept = true; firstspawnoverride = true; displaypermerrors = true; globaldebug = 0; messagecooldown = 5000; - portalcooldown = 5000; - this.version = 2.8; + teleportcooldown = 1000; + this.version = 2.9; // END CHECKSTYLE-SUPPRESSION: MagicNumberCheck } @@ -81,7 +81,7 @@ public class MultiverseCoreConfiguration extends SerializationConfig implements */ @Override public boolean getPrefixChat() { - return this.prefixChat; + return this.prefixchat; } /** @@ -89,7 +89,7 @@ public class MultiverseCoreConfiguration extends SerializationConfig implements */ @Override public void setPrefixChat(boolean prefixChat) { - this.prefixChat = prefixChat; + this.prefixchat = prefixChat; } /** @@ -208,15 +208,15 @@ public class MultiverseCoreConfiguration extends SerializationConfig implements * {@inheritDoc} */ @Override - public int getPortalCooldown() { - return this.portalcooldown; + public int getTeleportCooldown() { + return this.teleportcooldown; } /** * {@inheritDoc} */ @Override - public void setPortalCooldown(int portalCooldown) { - this.portalcooldown = portalCooldown; + public void setTeleportCooldown(int teleportCooldown) { + this.teleportcooldown = teleportCooldown; } } diff --git a/src/main/java/com/onarandombox/MultiverseCore/api/MultiverseCoreConfig.java b/src/main/java/com/onarandombox/MultiverseCore/api/MultiverseCoreConfig.java index 3d06186e..25f6fad4 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/api/MultiverseCoreConfig.java +++ b/src/main/java/com/onarandombox/MultiverseCore/api/MultiverseCoreConfig.java @@ -18,13 +18,13 @@ public interface MultiverseCoreConfig extends ConfigurationSerializable { * Sets portalCooldown. * @param portalCooldown The new value. */ - void setPortalCooldown(int portalCooldown); + void setTeleportCooldown(int portalCooldown); /** * Gets portalCooldown. * @return portalCooldown. */ - int getPortalCooldown(); + int getTeleportCooldown(); /** * Sets firstSpawnWorld. diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/VersionCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/VersionCommand.java index 515fdb9d..28fb318f 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/VersionCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/VersionCommand.java @@ -55,7 +55,7 @@ public class VersionCommand extends MultiverseCommand { buffer.append("[Multiverse-Core] Dumping Config Values: (version ") .append(this.plugin.getMVConfig().getVersion()).append(")").append('\n'); buffer.append("[Multiverse-Core] messagecooldown: ").append(plugin.getMessaging().getCooldown()).append('\n'); - buffer.append("[Multiverse-Core] teleportcooldown: ").append("Not yet IMPLEMENTED").append('\n'); + buffer.append("[Multiverse-Core] teleportcooldown: ").append(plugin.getMVConfig().getTeleportCooldown()).append('\n'); buffer.append("[Multiverse-Core] worldnameprefix: ").append(plugin.getMVConfig().getPrefixChat()).append('\n'); buffer.append("[Multiverse-Core] enforceaccess: ").append(plugin.getMVConfig().getEnforceAccess()).append('\n'); buffer.append("[Multiverse-Core] displaypermerrors: ").append(plugin.getMVConfig().getDisplayPermErrors()).append('\n'); diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/MVPlayerSession.java b/src/main/java/com/onarandombox/MultiverseCore/utils/MVPlayerSession.java index 66a37b7c..5b772f9e 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/utils/MVPlayerSession.java +++ b/src/main/java/com/onarandombox/MultiverseCore/utils/MVPlayerSession.java @@ -9,6 +9,7 @@ package com.onarandombox.MultiverseCore.utils; import com.onarandombox.MultiverseCore.MultiverseCoreConfiguration; +import com.onarandombox.MultiverseCore.api.MultiverseCoreConfig; import org.bukkit.entity.Player; import java.util.Date; @@ -23,9 +24,9 @@ public class MVPlayerSession { private long teleportLast = 0L; // Timestamp for the Players last Portal Teleportation. private long messageLast = 0L; // Timestamp for the Players last Alert Message. - private MultiverseCoreConfiguration config; // Configuration file to find out Cooldown Timers. + private MultiverseCoreConfig config; // Configuration file to find out Cooldown Timers. - public MVPlayerSession(Player player, MultiverseCoreConfiguration config) { + public MVPlayerSession(Player player, MultiverseCoreConfig config) { this.player = player; this.config = config; // this.bedSpawn = null; @@ -42,6 +43,6 @@ public class MVPlayerSession { */ public boolean getTeleportable() { long time = (new Date()).getTime(); - return ((time - this.teleportLast) > this.config.getPortalCooldown()); + return ((time - this.teleportLast) > this.config.getTeleportCooldown()); } } diff --git a/src/main/resources/defaults/config.yml b/src/main/resources/defaults/config.yml index 6fdeb0a3..3bf24ebc 100644 --- a/src/main/resources/defaults/config.yml +++ b/src/main/resources/defaults/config.yml @@ -1,6 +1,16 @@ -# This is the MV2 Config. If you mess it up, copy the values out -# delete it, and it will be regenerated. Then use the ingame interface -# to add your values back via the "/mv conf" command. -# When in-game, simply type: "/mv conf ?" for help. -# A config with explanations can be found here: -# https://github.com/Multiverse/Multiverse-Core/wiki/config.yml +# ------------------------------------------------------------------------- # +# This is the MV2 Config. If you mess it up, copy the values out # +# delete it, and it will be regenerated. Then use the ingame interface # +# to add your values back via the "/mv conf" command. # +# When in-game, simply type: "/mv conf ?" for help. # +# A config with explanations can be found here: # +# https://github.com/Multiverse/Multiverse-Core/wiki/config.yml # +# # +# # +# IMPORTANT !! IMPORTANT !! IMPORTANT !! IMPORTANT !! IMPORTANT !!IMPORTANT # +# # +# Do NOT delete this line from your config!!!! # +# ==: com.onarandombox.MultiverseCore.MultiverseCoreConfiguration # +# # +# IMPORTANT !! IMPORTANT !! IMPORTANT !! IMPORTANT !! IMPORTANT !!IMPORTANT # +# ------------------------------------------------------------------------- #