diff --git a/src/com/onarandombox/MultiverseCore/MVWorld.java b/src/com/onarandombox/MultiverseCore/MVWorld.java index f0170ff2..28e1eaeb 100644 --- a/src/com/onarandombox/MultiverseCore/MVWorld.java +++ b/src/com/onarandombox/MultiverseCore/MVWorld.java @@ -79,7 +79,7 @@ public class MVWorld { this.setRealMobBehaviors(); config.setProperty("worlds." + this.name + ".environment", this.environment.toString()); - config.setProperty("worlds." + this.name + ".generatorString",generatorString); + config.setProperty("worlds." + this.name + ".generator",generatorString); if (seed != null) { config.setProperty("worlds." + this.name + ".seed", this.seed); } diff --git a/src/com/onarandombox/MultiverseCore/MultiverseCore.java b/src/com/onarandombox/MultiverseCore/MultiverseCore.java index a09e74fd..5144bf8b 100644 --- a/src/com/onarandombox/MultiverseCore/MultiverseCore.java +++ b/src/com/onarandombox/MultiverseCore/MultiverseCore.java @@ -86,7 +86,7 @@ public class MultiverseCore extends JavaPlugin { // Setup the block/player/entity listener. private MVPlayerListener playerListener = new MVPlayerListener(this);; - @SuppressWarnings("unused") + private MVBlockListener blockListener = new MVBlockListener(this); private MVEntityListener entityListener = new MVEntityListener(this); private MVPluginListener pluginListener = new MVPluginListener(this); @@ -329,10 +329,9 @@ public class MultiverseCore extends JavaPlugin { log(Level.INFO, "Loading World & Settings - '" + worldKey + "' - " + environment); - String generator = this.configWorlds.getString("worlds." + worldKey + ".generator.name"); - String generatorID = this.configWorlds.getString("worlds." + worldKey + ".generator.id"); + String generatorstring = this.configWorlds.getString("worlds." + worldKey + ".generator"); - addWorld(worldKey, getEnvFromString(environment), seedString, generator + ":" + generatorID); + addWorld(worldKey, getEnvFromString(environment), seedString, generatorstring); // Increment the world count count++; @@ -390,7 +389,7 @@ public class MultiverseCore extends JavaPlugin { * @param environment Environment Type */ public boolean addWorld(String name, Environment env, String seedString, String generator) { - + this.debugLog(Level.CONFIG, "Adding world with: " + name + ", " + env.toString() + ", " + seedString + ", " + generator); Long seed = null; if (seedString != null && seedString.length() > 0) { try { @@ -410,6 +409,18 @@ public class MultiverseCore extends JavaPlugin { } ChunkGenerator customGenerator = getChunkGenerator(generatorName, generatorID, name); + + if (customGenerator == null && generator != null && !generator.isEmpty()) { + if(!pluginExists(generatorName)) { + log(Level.WARNING, "Could not find plugin: " + generatorName); + } else { + log(Level.WARNING, "Found plugin: " + generatorName + ", but did not find generatorID: " + generatorID); + + } + + return false; + } + World world = null; if (seed != null) { if (customGenerator != null) { @@ -432,6 +443,10 @@ public class MultiverseCore extends JavaPlugin { return true; } + private boolean pluginExists(String generator) { + Plugin plugin = getServer().getPluginManager().getPlugin(generator); + return plugin != null; + } private ChunkGenerator getChunkGenerator(String generator, String generatorID, String worldName) { if (generator == null) { @@ -666,7 +681,7 @@ public class MultiverseCore extends JavaPlugin { cancelQueuedCommand(sender); 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); + sender.sendMessage("If you still wish to execute " + ChatColor.RED + commandName + ChatColor.WHITE); sender.sendMessage("please type: " + ChatColor.GREEN + "/mvconfirm"); sender.sendMessage(ChatColor.GREEN + "/mvconfirm" + ChatColor.WHITE + " will only be available for 10 seconds."); } diff --git a/src/com/onarandombox/MultiverseCore/command/commands/CreateCommand.java b/src/com/onarandombox/MultiverseCore/command/commands/CreateCommand.java index 5ca12a7c..89eeac4a 100644 --- a/src/com/onarandombox/MultiverseCore/command/commands/CreateCommand.java +++ b/src/com/onarandombox/MultiverseCore/command/commands/CreateCommand.java @@ -1,6 +1,7 @@ package com.onarandombox.MultiverseCore.command.commands; import java.io.File; +import java.util.logging.Level; import org.bukkit.ChatColor; import org.bukkit.World.Environment; @@ -17,7 +18,7 @@ public class CreateCommand extends BaseCommand { this.description = "Creates a new world of the specified type"; this.usage = "/mvcreate" + ChatColor.GREEN + " {NAME} {TYPE}" + ChatColor.GOLD + " -s [SEED] -g [GENERATOR[:GENID]]"; this.minArgs = 2; - this.maxArgs = 4; + this.maxArgs = 6; this.identifiers.add("mvcreate"); this.permission = "multiverse.world.create"; this.requiresOp = true; @@ -26,11 +27,16 @@ public class CreateCommand extends BaseCommand { @Override public void execute(CommandSender sender, String[] args) { + if(args.length %2 != 0) { + sender.sendMessage("You must preface your SEED with -s OR your GENERATOR with -g. Type /mv for help"); + return; + } String worldName = args[0]; String env = args[1]; String seed = this.getFlag("-s", args); String generator = this.getFlag("-g", args); + 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"); @@ -38,7 +44,7 @@ public class CreateCommand extends BaseCommand { } Environment environment = this.plugin.getEnvFromString(env); - + sender.sendMessage(ChatColor.AQUA + "Starting world creation..."); if (this.plugin.addWorld(worldName, environment, seed, generator)) { sender.sendMessage(ChatColor.GREEN + "Complete!"); } else { @@ -60,7 +66,8 @@ public class CreateCommand extends BaseCommand { try { for (String s : args) { if (s.equalsIgnoreCase(flag)) { - return args[i++]; + this.plugin.debugLog(Level.CONFIG, args[i+1]); + return args[i+1]; } i++; }