From b2bcb941c33b83933813cf85541b61fa969cb7dc Mon Sep 17 00:00:00 2001 From: Eric Stokes Date: Sat, 25 Jun 2011 17:15:46 -0600 Subject: [PATCH] Made 'worlds' private and added accessor methods. --- .../MultiverseCore/MVEntityListener.java | 4 +- .../MultiverseCore/MVPermissions.java | 6 +- .../MultiverseCore/MVTeleport.java | 10 +- .../MultiverseCore/MultiverseCore.java | 135 ++++++++++-------- .../command/commands/CoordCommand.java | 2 +- .../command/commands/CreateCommand.java | 2 +- .../command/commands/ImportCommand.java | 2 +- .../command/commands/InfoCommand.java | 4 +- .../command/commands/ListCommand.java | 2 +- .../command/commands/ModifyCommand.java | 48 ++++++- .../command/commands/WhoCommand.java | 8 +- src/com/onarandombox/utils/Destination.java | 4 +- 12 files changed, 136 insertions(+), 91 deletions(-) diff --git a/src/com/onarandombox/MultiverseCore/MVEntityListener.java b/src/com/onarandombox/MultiverseCore/MVEntityListener.java index 778cd79c..0b53c934 100644 --- a/src/com/onarandombox/MultiverseCore/MVEntityListener.java +++ b/src/com/onarandombox/MultiverseCore/MVEntityListener.java @@ -47,14 +47,14 @@ public class MVEntityListener extends EntityListener { World world = event.getEntity().getWorld(); if (event.isCancelled()) return; - if (!(plugin.worlds.containsKey(world.getName()))) + if (!(this.plugin.isMVWorld(world.getName()))) return; // Check if it's a world which we are meant to be managing. CreatureType creature = event.getCreatureType(); // event.getEntity().getWorld().spawnCreature(arg0, arg1); - MVWorld mvworld = plugin.worlds.get(world.getName()); + MVWorld mvworld = this.plugin.getMVWorld(world.getName()); // TODO: Look of this and see if there's a cleaner/better method of doing so... diff --git a/src/com/onarandombox/MultiverseCore/MVPermissions.java b/src/com/onarandombox/MultiverseCore/MVPermissions.java index 03b501f5..3958942f 100644 --- a/src/com/onarandombox/MultiverseCore/MVPermissions.java +++ b/src/com/onarandombox/MultiverseCore/MVPermissions.java @@ -47,7 +47,7 @@ public class MVPermissions { * @return */ public Boolean canTravelFromWorld(Player p, World w) { - List blackList = this.plugin.worlds.get(w.getName()).worldBlacklist; + List blackList = this.plugin.getMVWorld(w.getName()).worldBlacklist; boolean returnValue = true; @@ -74,8 +74,8 @@ public class MVPermissions { */ public Boolean canEnterWorld(Player p, World w) { - List whiteList = this.plugin.worlds.get(w.getName()).playerWhitelist; - List blackList = this.plugin.worlds.get(w.getName()).playerBlacklist; + List whiteList = this.plugin.getMVWorld(w.getName()).playerWhitelist; + List blackList = this.plugin.getMVWorld(w.getName()).playerBlacklist; boolean returnValue = true; diff --git a/src/com/onarandombox/MultiverseCore/MVTeleport.java b/src/com/onarandombox/MultiverseCore/MVTeleport.java index f8c1ec73..e902e02c 100644 --- a/src/com/onarandombox/MultiverseCore/MVTeleport.java +++ b/src/com/onarandombox/MultiverseCore/MVTeleport.java @@ -38,9 +38,9 @@ public class MVTeleport { double x, y, z; - // Grab the Compression value for each world. - double srcComp = plugin.worlds.get(l.getWorld().getName()).scaling; - double trgComp = plugin.worlds.get(w.getName()).scaling; + // Grab the Scaling value for each world. + double srcComp = this.plugin.getMVWorld(l.getWorld().getName()).scaling; + double trgComp = this.plugin.getMVWorld(w.getName()).scaling; // MultiverseCore.debugMsg(p.getName() + " -> " + p.getWorld().getName() + "(" + srcComp + ") -> " + w.getName() + "(" + trgComp + ")"); @@ -128,10 +128,10 @@ public class MVTeleport { */ private double safeColumn(World world, double x, double y, double z) { for (double ny = 0; ny < 48; ny++) { - if ((y + ny < 120) && !bs.blockIsNotSafe(world, x, y + ny, z)) { + if ((y + ny < 120) && !this.bs.blockIsNotSafe(world, x, y + ny, z)) { return y + ny; } - if ((y - ny > 4) && !bs.blockIsNotSafe(world, x, y - ny, z)) { + if ((y - ny > 4) && !this.bs.blockIsNotSafe(world, x, y - ny, z)) { return y - ny; } } diff --git a/src/com/onarandombox/MultiverseCore/MultiverseCore.java b/src/com/onarandombox/MultiverseCore/MultiverseCore.java index f1f0e7db..cef396a9 100644 --- a/src/com/onarandombox/MultiverseCore/MultiverseCore.java +++ b/src/com/onarandombox/MultiverseCore/MultiverseCore.java @@ -95,7 +95,7 @@ public class MultiverseCore extends JavaPlugin { public UpdateChecker updateCheck; // HashMap to contain all the Worlds which this Plugin will manage. - public HashMap worlds = new HashMap(); + private HashMap worlds = new HashMap(); // HashMap to contain all custom generators. Plugins will have to register! private HashMap worldGenerators = new HashMap(); @@ -149,17 +149,17 @@ public class MultiverseCore extends JavaPlugin { private void registerEvents() { PluginManager pm = getServer().getPluginManager(); // pm.registerEvent(Event.Type.PLAYER_MOVE, playerListener, Priority.Highest, this); // Low so it acts above any other. - pm.registerEvent(Event.Type.PLAYER_TELEPORT, playerListener, Priority.Highest, this); // Cancel Teleports if needed. - pm.registerEvent(Event.Type.PLAYER_LOGIN, playerListener, Priority.Normal, this); // To create the Player Session - pm.registerEvent(Event.Type.PLAYER_QUIT, playerListener, Priority.Normal, this); // To remove Player Sessions - pm.registerEvent(Event.Type.PLAYER_KICK, playerListener, Priority.Highest, this); - pm.registerEvent(Event.Type.PLAYER_RESPAWN, playerListener, Priority.Normal, this); + pm.registerEvent(Event.Type.PLAYER_TELEPORT, this.playerListener, Priority.Highest, this); // Cancel Teleports if needed. + pm.registerEvent(Event.Type.PLAYER_LOGIN, this.playerListener, Priority.Normal, this); // To create the Player Session + pm.registerEvent(Event.Type.PLAYER_QUIT, this.playerListener, Priority.Normal, this); // To remove Player Sessions + pm.registerEvent(Event.Type.PLAYER_KICK, this.playerListener, Priority.Highest, this); + pm.registerEvent(Event.Type.PLAYER_RESPAWN, this.playerListener, Priority.Normal, this); - pm.registerEvent(Event.Type.ENTITY_DAMAGE, entityListener, Priority.Normal, this); // To Allow/Disallow PVP as well as EnableHealth. - pm.registerEvent(Event.Type.CREATURE_SPAWN, entityListener, Priority.Normal, this); // To prevent all or certain animals/monsters from spawning. + pm.registerEvent(Event.Type.ENTITY_DAMAGE, this.entityListener, Priority.Normal, this); // To Allow/Disallow PVP as well as EnableHealth. + pm.registerEvent(Event.Type.CREATURE_SPAWN, this.entityListener, Priority.Normal, this); // To prevent all or certain animals/monsters from spawning. - pm.registerEvent(Event.Type.PLUGIN_ENABLE, pluginListener, Priority.Monitor, this); - pm.registerEvent(Event.Type.PLUGIN_DISABLE, pluginListener, Priority.Monitor, this); + pm.registerEvent(Event.Type.PLUGIN_ENABLE, this.pluginListener, Priority.Monitor, this); + pm.registerEvent(Event.Type.PLUGIN_DISABLE, this.pluginListener, Priority.Monitor, this); // pm.registerEvent(Event.Type.BLOCK_BREAK, blockListener, Priority.Normal, this); // To prevent Blocks being destroyed. // pm.registerEvent(Event.Type.BLOCK_PLACED, blockListener, Priority.Normal, this); // To prevent Blocks being placed. @@ -203,43 +203,43 @@ public class MultiverseCore extends JavaPlugin { new DefaultConfiguration(getDataFolder(), "worlds.yml"); // Now grab the Configuration Files. - configMV = new Configuration(new File(getDataFolder(), "config.yml")); - configWorlds = new Configuration(new File(getDataFolder(), "worlds.yml")); + this.configMV = new Configuration(new File(getDataFolder(), "config.yml")); + this.configWorlds = new Configuration(new File(getDataFolder(), "worlds.yml")); // Now attempt to Load the configurations. try { - configMV.load(); + this.configMV.load(); log(Level.INFO, "- Multiverse Config -- Loaded"); } catch (Exception e) { log(Level.INFO, "- Failed to load config.yml"); } try { - configWorlds.load(); + this.configWorlds.load(); log(Level.INFO, "- World Config -- Loaded"); } catch (Exception e) { log(Level.INFO, "- Failed to load worlds.yml"); } // Setup the Debug option, we'll default to false because this option will not be in the default config. - this.debug = configMV.getBoolean("debug", false); + this.debug = this.configMV.getBoolean("debug", false); } /** * Purge the Worlds of Entities that are disallowed. */ private void purgeWorlds() { - if (worlds.size() <= 0) + if (this.worlds.size() <= 0) return; // TODO: Need a better method than this... too messy and atm it's not complete. - Set worldKeys = worlds.keySet(); + Set worldKeys = this.worlds.keySet(); for (String key : worldKeys) { World world = getServer().getWorld(key); if (world == null) continue; - MVWorld mvworld = worlds.get(key); + MVWorld mvworld = this.worlds.get(key); List monsters = mvworld.monsterList; List animals = mvworld.animalList; System.out.print("Monster Size:" + monsters.size() + " - " + "Animal Size: " + animals.size()); @@ -292,23 +292,23 @@ public class MultiverseCore extends JavaPlugin { */ private void registerCommands() { // Page 1 - commandManager.addCommand(new HelpCommand(this)); - commandManager.addCommand(new CoordCommand(this)); - commandManager.addCommand(new TeleportCommand(this)); - commandManager.addCommand(new ListCommand(this)); - commandManager.addCommand(new WhoCommand(this)); - commandManager.addCommand(new SetSpawnCommand(this)); - commandManager.addCommand(new CreateCommand(this)); - commandManager.addCommand(new ImportCommand(this)); - commandManager.addCommand(new SpawnCommand(this)); - commandManager.addCommand(new RemoveCommand(this)); - commandManager.addCommand(new DeleteCommand(this)); - commandManager.addCommand(new UnloadCommand(this)); - commandManager.addCommand(new ConfirmCommand(this)); - commandManager.addCommand(new InfoCommand(this)); - commandManager.addCommand(new ReloadCommand(this)); - commandManager.addCommand(new ModifyCommand(this)); - commandManager.addCommand(new EnvironmentCommand(this)); + this.commandManager.addCommand(new HelpCommand(this)); + this.commandManager.addCommand(new CoordCommand(this)); + this.commandManager.addCommand(new TeleportCommand(this)); + this.commandManager.addCommand(new ListCommand(this)); + this.commandManager.addCommand(new WhoCommand(this)); + this.commandManager.addCommand(new SetSpawnCommand(this)); + this.commandManager.addCommand(new CreateCommand(this)); + this.commandManager.addCommand(new ImportCommand(this)); + this.commandManager.addCommand(new SpawnCommand(this)); + this.commandManager.addCommand(new RemoveCommand(this)); + this.commandManager.addCommand(new DeleteCommand(this)); + this.commandManager.addCommand(new UnloadCommand(this)); + this.commandManager.addCommand(new ConfirmCommand(this)); + this.commandManager.addCommand(new InfoCommand(this)); + this.commandManager.addCommand(new ReloadCommand(this)); + this.commandManager.addCommand(new ModifyCommand(this)); + this.commandManager.addCommand(new EnvironmentCommand(this)); } /** @@ -318,18 +318,18 @@ public class MultiverseCore extends JavaPlugin { // Basic Counter to count how many Worlds we are loading. int count = 0; // Grab all the Worlds from the Config. - List worldKeys = configWorlds.getKeys("worlds"); + List worldKeys = this.configWorlds.getKeys("worlds"); // Check that the list is not null. if (worldKeys != null) { for (String worldKey : worldKeys) { // Check if the World is already loaded within the Plugin. - if (worlds.containsKey(worldKey)) { + if (this.worlds.containsKey(worldKey)) { continue; } // Grab the initial values from the config file. - String environment = configWorlds.getString("worlds." + worldKey + ".environment", "NORMAL"); // Grab the Environment as a String. - String seedString = configWorlds.getString("worlds." + worldKey + ".seed", ""); + String environment = this.configWorlds.getString("worlds." + worldKey + ".environment", "NORMAL"); // Grab the Environment as a String. + String seedString = this.configWorlds.getString("worlds." + worldKey + ".seed", ""); log(Level.INFO, "Loading World & Settings - '" + worldKey + "' - " + environment); @@ -426,21 +426,21 @@ public class MultiverseCore extends JavaPlugin { if (seed != null) { if (customGenerator != null) { World world = getServer().createWorld(name, env, seed, customGenerator); - worlds.put(name, new MVWorld(world, configWorlds, this, seed, envString)); // Place the World into the HashMap. + this.worlds.put(name, new MVWorld(world, this.configWorlds, this, seed, envString)); // Place the World into the HashMap. log(Level.INFO, "Loading World & Settings - '" + name + "' - " + envString + " with seed: " + seed); } else { World world = getServer().createWorld(name, env, seed); - worlds.put(name, new MVWorld(world, configWorlds, this, seed, envString)); // Place the World into the HashMap. + this.worlds.put(name, new MVWorld(world, this.configWorlds, this, seed, envString)); // Place the World into the HashMap. log(Level.INFO, "Loading World & Settings - '" + name + "' - " + env + " with seed: " + seed); } } else { if (customGenerator != null) { World world = getServer().createWorld(name, env, customGenerator); - worlds.put(name, new MVWorld(world, configWorlds, this, null, envString)); // Place the World into the HashMap. + this.worlds.put(name, new MVWorld(world, this.configWorlds, this, null, envString)); // Place the World into the HashMap. log(Level.INFO, "Loading World & Settings - '" + name + "' - " + envString); } else { World world = getServer().createWorld(name, env); - worlds.put(name, new MVWorld(world, configWorlds, this, null, envString)); // Place the World into the HashMap. + this.worlds.put(name, new MVWorld(world, this.configWorlds, this, null, envString)); // Place the World into the HashMap. log(Level.INFO, "Loading World & Settings - '" + name + "' - " + env); } } @@ -455,8 +455,8 @@ public class MultiverseCore extends JavaPlugin { * @return True if success, false if failure. */ public boolean unloadWorld(String name) { - if (worlds.containsKey(name)) { - worlds.remove(name); + if (this.worlds.containsKey(name)) { + this.worlds.remove(name); return true; } return false; @@ -470,8 +470,8 @@ public class MultiverseCore extends JavaPlugin { */ public boolean removeWorld(String name) { unloadWorld(name); - configWorlds.removeProperty("worlds." + name); - configWorlds.save(); + this.configWorlds.removeProperty("worlds." + name); + this.configWorlds.save(); return false; } @@ -530,11 +530,11 @@ public class MultiverseCore extends JavaPlugin { * @return */ public MVPlayerSession getPlayerSession(Player player) { - if (playerSessions.containsKey(player.getName())) { - return playerSessions.get(player.getName()); + if (this.playerSessions.containsKey(player.getName())) { + return this.playerSessions.get(player.getName()); } else { - playerSessions.put(player.getName(), new MVPlayerSession(player, configMV, this)); - return playerSessions.get(player.getName()); + this.playerSessions.put(player.getName(), new MVPlayerSession(player, this.configMV, this)); + return this.playerSessions.get(player.getName()); } } @@ -572,7 +572,7 @@ public class MultiverseCore extends JavaPlugin { sender.sendMessage("This plugin is Disabled!"); return true; } - return commandManager.dispatch(sender, command, commandLabel, args); + return this.commandManager.dispatch(sender, command, commandLabel, args); } /** @@ -600,7 +600,7 @@ public class MultiverseCore extends JavaPlugin { } public Messaging getMessaging() { - return messaging; + return this.messaging; } /** @@ -627,11 +627,11 @@ public class MultiverseCore extends JavaPlugin { } public CommandManager getCommandManager() { - return commandManager; + return this.commandManager; } public String getTag() { - return tag; + return this.tag; } /** @@ -659,8 +659,8 @@ public class MultiverseCore extends JavaPlugin { } private ChunkGenerator getChunkGenFromEnv(String env) { - if (worldGenerators.containsKey(env)) { - return worldGenerators.get(env); + if (this.worldGenerators.containsKey(env)) { + return this.worldGenerators.get(env); } return null; } @@ -686,7 +686,7 @@ public class MultiverseCore extends JavaPlugin { */ public void queueCommand(CommandSender sender, String commandName, String methodName, String[] args, Class[] paramTypes, String success, String fail) { cancelQueuedCommand(sender); - queuedCommands.add(new QueuedCommand(methodName, args, paramTypes, sender, Calendar.getInstance(), this, success, fail)); + this.queuedCommands.add(new QueuedCommand(methodName, args, paramTypes, sender, Calendar.getInstance(), this, success, fail)); sender.sendMessage("The command " + ChatColor.RED + commandName + ChatColor.WHITE + " has been halted due to the fact that it could break something!"); sender.sendMessage("If you still wish to execute " + ChatColor.RED + commandName + ChatColor.WHITE + ", please type: " + ChatColor.GREEN + "/mvconfirm " + ChatColor.GOLD + "YES"); sender.sendMessage(ChatColor.GREEN + "/mvconfirm" + ChatColor.WHITE + " will only be available for 10 seconds."); @@ -699,7 +699,7 @@ public class MultiverseCore extends JavaPlugin { * @return */ public boolean confirmQueuedCommand(CommandSender sender) { - for (QueuedCommand com : queuedCommands) { + for (QueuedCommand com : this.queuedCommands) { if (com.getSender().equals(sender)) { if (com.execute()) { sender.sendMessage(com.getSuccess()); @@ -720,14 +720,14 @@ public class MultiverseCore extends JavaPlugin { */ public void cancelQueuedCommand(CommandSender sender) { QueuedCommand c = null; - for (QueuedCommand com : queuedCommands) { + for (QueuedCommand com : this.queuedCommands) { if (com.getSender().equals(sender)) { c = com; } } if (c != null) { // Each person is allowed at most one queued command. - queuedCommands.remove(c); + this.queuedCommands.remove(c); } } @@ -735,7 +735,18 @@ public class MultiverseCore extends JavaPlugin { return this.worldGenerators.keySet(); } - public Collection getWorlds() { + public Collection getMVWorlds() { return this.worlds.values(); } + + public MVWorld getMVWorld(String name) { + if(this.worlds.containsKey(name)) { + return this.worlds.get(name); + } + return null; + } + + public boolean isMVWorld(String name) { + return this.worlds.containsKey(name); + } } diff --git a/src/com/onarandombox/MultiverseCore/command/commands/CoordCommand.java b/src/com/onarandombox/MultiverseCore/command/commands/CoordCommand.java index 9aa52b18..127d68fb 100644 --- a/src/com/onarandombox/MultiverseCore/command/commands/CoordCommand.java +++ b/src/com/onarandombox/MultiverseCore/command/commands/CoordCommand.java @@ -29,7 +29,7 @@ public class CoordCommand extends BaseCommand { if (sender instanceof Player) { Player p = (Player) sender; p.sendMessage(ChatColor.RED + "World: " + ChatColor.WHITE + p.getWorld().getName()); - p.sendMessage(ChatColor.RED + "World Scale: " + ChatColor.WHITE + this.plugin.worlds.get(p.getWorld().getName()).scaling); + p.sendMessage(ChatColor.RED + "World Scale: " + ChatColor.WHITE + this.plugin.getMVWorld(p.getWorld().getName()).scaling); p.sendMessage(ChatColor.RED + "Coordinates: " + ChatColor.WHITE + this.locMan.strCoords(p.getLocation())); p.sendMessage(ChatColor.RED + "Direction: " + ChatColor.WHITE + this.locMan.getDirection(p.getLocation())); p.sendMessage(ChatColor.RED + "Block: " + ChatColor.WHITE + Material.getMaterial(p.getWorld().getBlockTypeIdAt(p.getLocation()))); diff --git a/src/com/onarandombox/MultiverseCore/command/commands/CreateCommand.java b/src/com/onarandombox/MultiverseCore/command/commands/CreateCommand.java index 827061e6..93c1d9e0 100644 --- a/src/com/onarandombox/MultiverseCore/command/commands/CreateCommand.java +++ b/src/com/onarandombox/MultiverseCore/command/commands/CreateCommand.java @@ -37,7 +37,7 @@ public class CreateCommand extends BaseCommand { seed = args[2]; } - if (new File(worldName).exists() || this.plugin.worlds.containsKey(worldName)) { + if (new File(worldName).exists() || this.plugin.isMVWorld(worldName)) { sender.sendMessage(ChatColor.RED + "A Folder/World already exists with this name!"); sender.sendMessage(ChatColor.RED + "If you are confident it is a world you can import with /mvimport"); return; diff --git a/src/com/onarandombox/MultiverseCore/command/commands/ImportCommand.java b/src/com/onarandombox/MultiverseCore/command/commands/ImportCommand.java index 4eb7fbad..3ba85ca5 100644 --- a/src/com/onarandombox/MultiverseCore/command/commands/ImportCommand.java +++ b/src/com/onarandombox/MultiverseCore/command/commands/ImportCommand.java @@ -25,7 +25,7 @@ public class ImportCommand extends BaseCommand { @Override public void execute(CommandSender sender, String[] args) { String worldName = args[0]; - if (this.plugin.worlds.containsKey(worldName) && new File(worldName).exists()) { + if (this.plugin.isMVWorld(worldName) && new File(worldName).exists()) { sender.sendMessage(ChatColor.RED + "Multiverse already knows about this world!"); return; } diff --git a/src/com/onarandombox/MultiverseCore/command/commands/InfoCommand.java b/src/com/onarandombox/MultiverseCore/command/commands/InfoCommand.java index 9893194a..5d2d57c4 100644 --- a/src/com/onarandombox/MultiverseCore/command/commands/InfoCommand.java +++ b/src/com/onarandombox/MultiverseCore/command/commands/InfoCommand.java @@ -36,8 +36,8 @@ public class InfoCommand extends BaseCommand { } else { worldName = args[0]; } - if (this.plugin.worlds.containsKey(worldName)) { - for (String s : buildEntireCommand(this.plugin.worlds.get(worldName))) { + if (this.plugin.isMVWorld(worldName)) { + for (String s : buildEntireCommand(this.plugin.getMVWorld(worldName))) { sender.sendMessage(s); } } diff --git a/src/com/onarandombox/MultiverseCore/command/commands/ListCommand.java b/src/com/onarandombox/MultiverseCore/command/commands/ListCommand.java index d69a9c8f..5d857e6b 100644 --- a/src/com/onarandombox/MultiverseCore/command/commands/ListCommand.java +++ b/src/com/onarandombox/MultiverseCore/command/commands/ListCommand.java @@ -31,7 +31,7 @@ public class ListCommand extends BaseCommand { } String output = ChatColor.LIGHT_PURPLE + "Worlds which you can view:\n"; - for (MVWorld world : this.plugin.worlds.values()) { + for (MVWorld world : this.plugin.getMVWorlds()) { if (p != null && (!this.plugin.ph.canEnterWorld(p, world.getCBWorld()))) { continue; diff --git a/src/com/onarandombox/MultiverseCore/command/commands/ModifyCommand.java b/src/com/onarandombox/MultiverseCore/command/commands/ModifyCommand.java index e2bf635a..eecdff55 100644 --- a/src/com/onarandombox/MultiverseCore/command/commands/ModifyCommand.java +++ b/src/com/onarandombox/MultiverseCore/command/commands/ModifyCommand.java @@ -2,28 +2,62 @@ package com.onarandombox.MultiverseCore.command.commands; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import com.onarandombox.MultiverseCore.MVWorld; import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.command.BaseCommand; +enum Action{Set, Add, Remove} public class ModifyCommand extends BaseCommand { public ModifyCommand(MultiverseCore plugin) { super(plugin); this.name = "Modify a World"; - this.description = "Modify various aspects of worlds"; - this.usage = "/mvmodify" + ChatColor.GREEN + " {WORLD} {TYPE}" + ChatColor.GOLD + " [SEED]"; - this.minArgs = 2; - this.maxArgs = 3; - this.identifiers.add("mvcreate"); - this.permission = "multiverse.world.create"; + this.description = "Modify various aspects of worlds. See the help wiki for how to use this command properly. If you do not include a world, the current world will be used"; + this.usage = "/mvmodify" + ChatColor.GOLD + " [WORLD] " + ChatColor.GREEN + "{SET|ADD|REMOVE} {VALUE} {PROPERTY}"; + this.minArgs = 3; + this.maxArgs = 4; + this.identifiers.add("mvmodify"); + this.permission = "multiverse.world.modify"; this.requiresOp = true; } @Override public void execute(CommandSender sender, String[] args) { - // TODO Currently only NON-List items will be supported + // We NEED a world from the command line + if(args.length == 3 && !(sender instanceof Player)){ + sender.sendMessage("From the command line, WORLD is required."); + sender.sendMessage("Nothing changed."); + return; + } + MVWorld world; + Action action; + String value; + String property; + Player p; + if(args.length == 3) { + p = (Player) sender; + world = plugin.getMVWorld(p.getWorld().getName()); + } else { + + } + + + } + + private Action getActionEnum(String action) { + if(action.equalsIgnoreCase("set")) { + return Action.Set; + } + if(action.equalsIgnoreCase("add") || action.equalsIgnoreCase("+")) { + return Action.Add; + } + if(action.equalsIgnoreCase("remove") || action.equalsIgnoreCase("-")) { + return Action.Remove; + } + return null; } } diff --git a/src/com/onarandombox/MultiverseCore/command/commands/WhoCommand.java b/src/com/onarandombox/MultiverseCore/command/commands/WhoCommand.java index 201a0576..090f55fe 100644 --- a/src/com/onarandombox/MultiverseCore/command/commands/WhoCommand.java +++ b/src/com/onarandombox/MultiverseCore/command/commands/WhoCommand.java @@ -38,18 +38,18 @@ public class WhoCommand extends BaseCommand { List worlds = new ArrayList(); if (args.length > 0) { - if (this.plugin.worlds.containsKey(args[0])) { - worlds.add(this.plugin.worlds.get(args[0])); + if (this.plugin.isMVWorld(args[0])) { + worlds.add(this.plugin.getMVWorld(args[0])); } else { sender.sendMessage(ChatColor.RED + "World does not exist"); return; } } else { - worlds = new ArrayList(this.plugin.getWorlds()); + worlds = new ArrayList(this.plugin.getMVWorlds()); } for (MVWorld world : worlds) { - if (!(this.plugin.worlds.containsKey(world.name))) { + if (!(this.plugin.isMVWorld(world.name))) { continue; } diff --git a/src/com/onarandombox/utils/Destination.java b/src/com/onarandombox/utils/Destination.java index e727e29c..2bb3c948 100644 --- a/src/com/onarandombox/utils/Destination.java +++ b/src/com/onarandombox/utils/Destination.java @@ -39,11 +39,11 @@ public class Destination { } // If we only found one param, assume world, but still check for validity - if (items.length == 1 && plugin.worlds.containsKey(items[0])) { + if (items.length == 1 && plugin.isMVWorld(items[0])) { return new Destination(items[0], DestinationType.World); } - if (items[0].equalsIgnoreCase("w") && plugin.worlds.containsKey(items[0])) { + if (items[0].equalsIgnoreCase("w") && plugin.isMVWorld(items[0])) { return new Destination(items[1], DestinationType.World); } else if (items[0].equalsIgnoreCase("p")) { // TODO: Check for a valid portal, we can't right now, as portals aren't really in yet.