diff --git a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java index e5641841..7bd7dae6 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java +++ b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java @@ -30,7 +30,6 @@ import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.Event; import org.bukkit.event.Event.Priority; -import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; @@ -49,8 +48,6 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { public static boolean EnforceAccess; public static boolean EnforceGameModes; public static boolean PrefixChat; - private File testConfigDirectory; - private PluginDescriptionFile testDescriptionFile; @Override public String toString() { @@ -118,6 +115,8 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { private double chversion = 1; private MVMessaging messaging; + private File serverFolder = new File(System.getProperty("user.dir")); + @Override public void onLoad() { // Create our DataFolder @@ -126,28 +125,6 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { debugLog = new DebugLog("Multiverse-Core", getDataFolder() + File.separator + "debug.log"); } - @Override - public File getDataFolder() { - if (this.testConfigDirectory != null) { - return this.testConfigDirectory; - } - return super.getDataFolder(); - } - - @Override - public PluginDescriptionFile getDescription() { - if (this.testDescriptionFile != null) { - return this.testDescriptionFile; - } - return super.getDescription(); //To change body of overridden methods use File | Settings | File Templates. - } - - - public void setTestMode(File configDir, PluginDescriptionFile descriptionFile) { - this.testConfigDirectory = configDir; - this.testDescriptionFile = descriptionFile; - } - public FileConfiguration getMVConfiguration() { return this.multiverseConfig; } @@ -540,14 +517,19 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core { this.getTeleporter().safelyTeleport(teleporter, p, l, false); } - public File getServerFolder() { - return new File(this.getDataFolder().getAbsolutePath()).getParentFile().getParentFile(); + return serverFolder; + } + + public void setServerFolder(File newServerFolder) { + if (!newServerFolder.isDirectory()) + throw new IllegalArgumentException("That's not a folder!"); + + this.serverFolder = newServerFolder; } private void checkServerProps() { - File serverFolder = new File(this.getDataFolder().getAbsolutePath()).getParentFile().getParentFile(); - File serverProperties = new File(serverFolder.getAbsolutePath() + File.separator + "server.properties"); + File serverProperties = new File(serverFolder, "server.properties"); try { FileInputStream fileStream = new FileInputStream(serverProperties); DataInputStream in = new DataInputStream(fileStream); diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/CreateCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/CreateCommand.java index 24572131..107a8fb9 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/CreateCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/CreateCommand.java @@ -46,11 +46,12 @@ public class CreateCommand extends MultiverseCommand { return; } String worldName = args.get(0); + File worldFile = new File(this.plugin.getServerFolder(), worldName); String env = args.get(1); String seed = CommandHandler.getFlag("-s", args); String generator = CommandHandler.getFlag("-g", args); - if (new File(worldName).exists() || this.worldManager.isMVWorld(worldName)) { + if (worldFile.exists() || this.worldManager.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/main/java/com/onarandombox/MultiverseCore/commands/ImportCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/ImportCommand.java index 1c3d7628..05b15439 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/ImportCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/ImportCommand.java @@ -39,7 +39,8 @@ public class ImportCommand extends MultiverseCommand { @Override public void runCommand(CommandSender sender, List args) { String worldName = args.get(0); - if (this.worldManager.isMVWorld(worldName) && new File(worldName).exists()) { + File worldFile = new File(this.plugin.getServerFolder(), worldName); + if (this.worldManager.isMVWorld(worldName) && worldFile.exists()) { sender.sendMessage(ChatColor.RED + "Multiverse already knows about this world!"); return; } @@ -57,7 +58,7 @@ public class ImportCommand extends MultiverseCommand { return; } - if (new File(worldName).exists() && env != null) { + if (worldFile.exists() && env != null) { Command.broadcastCommandMessage(sender, "Starting import of world '" + worldName + "'..."); this.worldManager.addWorld(worldName, environment, null, generator); Command.broadcastCommandMessage(sender, "Complete!"); diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/WorldManager.java b/src/main/java/com/onarandombox/MultiverseCore/utils/WorldManager.java index aa4bb35b..3613922d 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/utils/WorldManager.java +++ b/src/main/java/com/onarandombox/MultiverseCore/utils/WorldManager.java @@ -209,8 +209,8 @@ public class WorldManager implements MVWorldManager { } removeWorldFromConfig(name); try { - File serverFolder = new File(this.plugin.getDataFolder().getAbsolutePath()).getParentFile().getParentFile(); - File worldFile = new File(serverFolder.getAbsolutePath() + File.separator + name); + File serverFolder = this.plugin.getServerFolder(); + File worldFile = new File(serverFolder, name); if (name.equalsIgnoreCase("plugins")) { this.plugin.log(Level.SEVERE, "Really? Are you high? This would delete your plugins folder. Luckily the MV2 devs are crazy smart or you're server would be ended..."); return false; diff --git a/src/test/java/com/onarandombox/MultiverseCore/test/TestDebugMode.java b/src/test/java/com/onarandombox/MultiverseCore/test/TestDebugMode.java index 5398c5de..34815c6c 100644 --- a/src/test/java/com/onarandombox/MultiverseCore/test/TestDebugMode.java +++ b/src/test/java/com/onarandombox/MultiverseCore/test/TestDebugMode.java @@ -7,70 +7,59 @@ package com.onarandombox.MultiverseCore.test; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.io.File; -import com.onarandombox.MultiverseCore.MultiverseCore; -import com.onarandombox.MultiverseCore.test.utils.MVCoreFactory; -import com.onarandombox.MultiverseCore.test.utils.TestInstanceCreator; -import com.onarandombox.MultiverseCore.utils.FileUtils; import junit.framework.Assert; -import org.bukkit.Bukkit; + import org.bukkit.Server; import org.bukkit.command.Command; 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 java.io.File; -import java.lang.reflect.Field; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; +import com.onarandombox.MultiverseCore.MultiverseCore; +import com.onarandombox.MultiverseCore.test.utils.TestInstanceCreator; @RunWith(PowerMockRunner.class) -@PrepareForTest({MultiverseCore.class}) +@PrepareForTest({ MultiverseCore.class }) public class TestDebugMode { - @After - public void tearDown() throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException { - Field serverField = Bukkit.class.getDeclaredField("server"); - serverField.setAccessible(true); - serverField.set(Class.forName("org.bukkit.Bukkit"), null); - if (MVCoreFactory.serverDirectory.exists()) { - MVCoreFactory.serverDirectory.delete(); - FileUtils.deleteFolder(MVCoreFactory.serverDirectory); - } - } + TestInstanceCreator creator; + Server mockServer; + CommandSender mockCommandSender; @Before public void setUp() throws Exception { - if (!MVCoreFactory.serverDirectory.exists()) { - MVCoreFactory.serverDirectory.mkdirs(); - } - if (!MVCoreFactory.pluginDirectory.exists()) { - MVCoreFactory.pluginDirectory.mkdirs(); - } + creator = new TestInstanceCreator(); + assertTrue(creator.setUp()); + mockServer = creator.getServer(); + mockCommandSender = creator.getCommandSender(); + } + + @After + public void tearDown() throws Exception { + creator.tearDown(); } @Test - @Ignore public void testEnableDebugMode() { - TestInstanceCreator creator = new TestInstanceCreator(); - Server mockServer = creator.setupDefaultServerInstance(); - CommandSender mockCommandSender = creator.getCommandSender(); - // Start actual testing. // Pull a core instance from the server. Plugin plugin = mockServer.getPluginManager().getPlugin("Multiverse-Core"); // Make sure Core is not null - Assert.assertNotNull(plugin); + assertNotNull(plugin); // Make sure Core is enabled - Assert.assertTrue(plugin.isEnabled()); + assertTrue(plugin.isEnabled()); // Make a fake server folder to fool MV into thinking a world folder exists. File serverDirectory = new File(creator.getCore().getServerFolder(), "world"); @@ -84,7 +73,7 @@ public class TestDebugMode { Assert.assertEquals(0, MultiverseCore.GlobalDebug); // Send the debug command. - String[] debugArgs = new String[]{"debug", "3"}; + String[] debugArgs = new String[] { "debug", "3" }; plugin.onCommand(mockCommandSender, mockCommand, "", debugArgs); Assert.assertEquals(3, MultiverseCore.GlobalDebug); diff --git a/src/test/java/com/onarandombox/MultiverseCore/test/TestMockWorld.java b/src/test/java/com/onarandombox/MultiverseCore/test/TestMockWorld.java deleted file mode 100644 index 54ad5407..00000000 --- a/src/test/java/com/onarandombox/MultiverseCore/test/TestMockWorld.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.onarandombox.MultiverseCore.test; - -import junit.framework.Assert; -import org.bukkit.World; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.powermock.modules.junit4.PowerMockRunner; - -import static org.mockito.Mockito.*; - -@RunWith(PowerMockRunner.class) -public class TestMockWorld { - private World mockWorld; - private World mockNetherWorld; - - @Before - public void setUp() throws Exception { - // Initialize a fake world and world_nether. - this.mockWorld = mock(World.class); - when(this.mockWorld.getName()).thenReturn("world"); - when(this.mockWorld.getEnvironment()).thenReturn(World.Environment.NORMAL); - - this.mockNetherWorld = mock(World.class); - when(this.mockNetherWorld.getName()).thenReturn("world_nether"); - when(this.mockNetherWorld.getEnvironment()).thenReturn(World.Environment.NETHER); - } - - @Test - public void testWorldInit() { - Assert.assertNotNull(this.mockWorld); - Assert.assertNotNull(this.mockNetherWorld); - } - - @Test - public void testWorldNames() { - // Test the mock world objects - Assert.assertEquals(this.mockWorld.getName(), "world"); - Assert.assertEquals(this.mockNetherWorld.getName(), "world_nether"); - verify(this.mockWorld).getName(); - verify(this.mockNetherWorld).getName(); - } - - @Test - public void testWorldEnvironments() { - // Test the environments - Assert.assertEquals(this.mockWorld.getEnvironment(), World.Environment.NORMAL); - Assert.assertEquals(this.mockNetherWorld.getEnvironment(), World.Environment.NETHER); - verify(this.mockWorld).getEnvironment(); - verify(this.mockNetherWorld).getEnvironment(); - } -} diff --git a/src/test/java/com/onarandombox/MultiverseCore/test/TestWorldImport.java b/src/test/java/com/onarandombox/MultiverseCore/test/TestWorldImport.java deleted file mode 100644 index d8df0cec..00000000 --- a/src/test/java/com/onarandombox/MultiverseCore/test/TestWorldImport.java +++ /dev/null @@ -1,186 +0,0 @@ -package com.onarandombox.MultiverseCore.test; - -import com.onarandombox.MultiverseCore.MultiverseCore; -import com.onarandombox.MultiverseCore.test.utils.MVCoreFactory; -import com.onarandombox.MultiverseCore.test.utils.TestInstanceCreator; -import com.onarandombox.MultiverseCore.test.utils.WorldCreatorMatcher; -import com.onarandombox.MultiverseCore.utils.FileUtils; -import junit.framework.Assert; -import org.bukkit.*; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.permissions.Permission; -import org.bukkit.plugin.Plugin; -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; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -import java.io.File; -import java.lang.reflect.Field; - -import static org.mockito.Mockito.*; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({PluginManager.class, MultiverseCore.class, Permission.class, Bukkit.class}) -public class TestWorldImport { - - @After - public void tearDown() throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException { - Field serverField = Bukkit.class.getDeclaredField("server"); - serverField.setAccessible(true); - serverField.set(Class.forName("org.bukkit.Bukkit"), null); - if (MVCoreFactory.serverDirectory.exists()) { - MVCoreFactory.serverDirectory.delete(); - FileUtils.deleteFolder(MVCoreFactory.serverDirectory); - } - } - - @Before - public void setUp() throws Exception { - if (!MVCoreFactory.serverDirectory.exists()) { - MVCoreFactory.serverDirectory.mkdirs(); - } - - if (!MVCoreFactory.pluginDirectory.exists()) { - MVCoreFactory.pluginDirectory.mkdirs(); - } - } - - @Test - @Ignore - public void testWorldImportWithNoFolder() { - TestInstanceCreator creator = new TestInstanceCreator(); - Server mockServer = creator.setupDefaultServerInstance(); - CommandSender mockCommandSender = creator.getCommandSender(); - - // Make sure the world directory do NOT exist - if (new File(MVCoreFactory.serverDirectory, "world").exists()) { - new File(MVCoreFactory.serverDirectory, "world").delete(); - } - - // Start actual testing. - // Pull a core instance from the server. - Plugin plugin = mockServer.getPluginManager().getPlugin("Multiverse-Core"); - - // Make sure Core is not null - Assert.assertNotNull(plugin); - - // Make sure Core is enabled - Assert.assertTrue(plugin.isEnabled()); - // Initialize a fake command - Command mockCommand = mock(Command.class); - when(mockCommand.getName()).thenReturn("mv"); - String[] normalArgs = new String[]{"import", "world", "normal"}; - - // Ensure we have a fresh copy of MV, 0 worlds. - Assert.assertEquals(0, creator.getCore().getMVWorldManager().getMVWorlds().size()); - - // Import the first world. The world folder does not exist. - plugin.onCommand(mockCommandSender, mockCommand, "", normalArgs); - verify(mockCommandSender).sendMessage(ChatColor.RED + "FAILED."); - verify(mockCommandSender).sendMessage("That world folder does not exist..."); - - // We should still have no worlds. - Assert.assertEquals(0, creator.getCore().getMVWorldManager().getMVWorlds().size()); - } - - @Test - @Ignore - public void testWorldImport() { - TestInstanceCreator creator = new TestInstanceCreator(); - Server mockServer = creator.setupDefaultServerInstance(); - CommandSender mockCommandSender = creator.getCommandSender(); - // Start actual testing. - // Pull a core instance from the server. - Plugin plugin = mockServer.getPluginManager().getPlugin("Multiverse-Core"); - - // Make sure Core is not null - Assert.assertNotNull(plugin); - - // Make sure Core is enabled - Assert.assertTrue(plugin.isEnabled()); - - // Initialize a fake command - Command mockCommand = mock(Command.class); - when(mockCommand.getName()).thenReturn("mv"); - - // Ensure that there are no worlds imported. This is a fresh setup. - Assert.assertEquals(0, creator.getCore().getMVWorldManager().getMVWorlds().size()); - - // Import the first world. - String[] normalArgs = new String[]{"import", "world", "normal"}; - plugin.onCommand(mockCommandSender, mockCommand, "", normalArgs); - - // We should now have one world imported! - Assert.assertEquals(1, creator.getCore().getMVWorldManager().getMVWorlds().size()); - - // Import the second world. - String[] netherArgs = new String[]{"import", "world_nether", "nether"}; - plugin.onCommand(mockCommandSender, mockCommand, "", netherArgs); - - // We should now have 2 worlds imported! - Assert.assertEquals(2, creator.getCore().getMVWorldManager().getMVWorlds().size()); - - // Import the third world. - String[] skyArgs = new String[]{"import", "world_skylands", "skylands"}; - plugin.onCommand(mockCommandSender, mockCommand, "", skyArgs); - - // We should now have 2 worlds imported! - Assert.assertEquals(3, creator.getCore().getMVWorldManager().getMVWorlds().size()); - - // Verify that the commandSender has been called 3 times. - verify(mockCommandSender, VerificationModeFactory.times(3)).sendMessage(ChatColor.AQUA + "Starting world import..."); - verify(mockCommandSender, VerificationModeFactory.times(3)).sendMessage(ChatColor.GREEN + "Complete!"); - } - - @Test - @Ignore - public void testWorldImportWithSeed() { - TestInstanceCreator creator = new TestInstanceCreator(); - Server mockServer = creator.setupDefaultServerInstance(); - CommandSender mockCommandSender = creator.getCommandSender(); - // Start actual testing. - // Pull a core instance from the server. - Plugin plugin = mockServer.getPluginManager().getPlugin("Multiverse-Core"); - - // Make sure Core is not null - Assert.assertNotNull(plugin); - - // Make sure Core is enabled - Assert.assertTrue(plugin.isEnabled()); - - // Initialize a fake command - Command mockCommand = mock(Command.class); - when(mockCommand.getName()).thenReturn("mv"); - - // Ensure that there are no worlds imported. This is a fresh setup. - Assert.assertEquals(0, creator.getCore().getMVWorldManager().getMVWorlds().size()); - - // Init a new WorldCreatorMatcher to match our seeded world - WorldCreator seedCreator = new WorldCreator("world"); - seedCreator.environment(World.Environment.NORMAL); - WorldCreatorMatcher seedMatcher = new WorldCreatorMatcher(seedCreator); - - // For this case, we're testing a seeded import, so we care about the world seed - seedMatcher.careAboutSeeds(true); - - - - // Import the first world. - String[] normalArgs = new String[]{"import", "world", "normal", "-s", "gargamel"}; - plugin.onCommand(mockCommandSender, mockCommand, "", normalArgs); - - // We should now have one world imported! - Assert.assertEquals(1, creator.getCore().getMVWorldManager().getMVWorlds().size()); - - // Verify that the commandSender has been called 1 time. - verify(mockCommandSender, VerificationModeFactory.times(1)).sendMessage(ChatColor.AQUA + "Starting world import..."); - verify(mockCommandSender, VerificationModeFactory.times(1)).sendMessage(ChatColor.GREEN + "Complete!"); - } -} diff --git a/src/test/java/com/onarandombox/MultiverseCore/test/TestWorldStuff.java b/src/test/java/com/onarandombox/MultiverseCore/test/TestWorldStuff.java new file mode 100644 index 00000000..350268cd --- /dev/null +++ b/src/test/java/com/onarandombox/MultiverseCore/test/TestWorldStuff.java @@ -0,0 +1,171 @@ +/****************************************************************************** + * 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.test; + +import static junit.framework.Assert.*; +import static org.mockito.Mockito.*; + +import java.io.File; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Server; +import org.bukkit.WorldCreator; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.permissions.Permission; +import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.PluginManager; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Matchers; +import org.mockito.internal.verification.VerificationModeFactory; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +import com.onarandombox.MultiverseCore.MultiverseCore; +import com.onarandombox.MultiverseCore.test.utils.TestInstanceCreator; +import com.onarandombox.MultiverseCore.test.utils.WorldCreatorMatcher; +import com.onarandombox.MultiverseCore.utils.WorldManager; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({ PluginManager.class, MultiverseCore.class, Permission.class, Bukkit.class, WorldManager.class }) +public class TestWorldStuff { + + TestInstanceCreator creator; + Server mockServer; + CommandSender mockCommandSender; + + @Before + public void setUp() throws Exception { + creator = new TestInstanceCreator(); + assertTrue(creator.setUp()); + mockServer = creator.getServer(); + mockCommandSender = creator.getCommandSender(); + } + + @After + public void tearDown() throws Exception { + creator.tearDown(); + } + + @Test + public void testWorldImportWithNoFolder() { + // Make sure the world directory do NOT exist + // (it was created by the TestInstanceCreator) + File worldFile = new File(TestInstanceCreator.serverDirectory, "world"); + assertTrue(worldFile.exists()); + assertTrue(worldFile.delete()); + + // Start actual testing. + // Pull a core instance from the server. + Plugin plugin = mockServer.getPluginManager().getPlugin("Multiverse-Core"); + + // Make sure Core is not null + assertNotNull(plugin); + + // Make sure Core is enabled + assertTrue(plugin.isEnabled()); + // Initialize a fake command + Command mockCommand = mock(Command.class); + when(mockCommand.getName()).thenReturn("mv"); + String[] normalArgs = new String[] { "import", "world", "normal" }; + + // Ensure we have a fresh copy of MV, 0 worlds. + assertEquals(0, creator.getCore().getMVWorldManager().getMVWorlds().size()); + + // Import the first world. The world folder does not exist. + plugin.onCommand(mockCommandSender, mockCommand, "", normalArgs); + verify(mockCommandSender).sendMessage(ChatColor.RED + "FAILED."); + verify(mockCommandSender).sendMessage("That world folder does not exist..."); + + // We should still have no worlds. + assertEquals(0, creator.getCore().getMVWorldManager().getMVWorlds().size()); + } + + @Test + public void testWorldImport() { + // Pull a core instance from the server. + Plugin plugin = mockServer.getPluginManager().getPlugin("Multiverse-Core"); + + // Make sure Core is not null + assertNotNull(plugin); + + // Make sure Core is enabled + assertTrue(plugin.isEnabled()); + + // Initialize a fake command + Command mockCommand = mock(Command.class); + when(mockCommand.getName()).thenReturn("mv"); + + // Ensure that there are no worlds imported. This is a fresh setup. + assertEquals(0, creator.getCore().getMVWorldManager().getMVWorlds().size()); + + // Import the first world. + String[] normalArgs = new String[] { "import", "world", "normal" }; + plugin.onCommand(mockCommandSender, mockCommand, "", normalArgs); + + // We should now have one world imported! + assertEquals(1, creator.getCore().getMVWorldManager().getMVWorlds().size()); + + // Import the second world. + String[] netherArgs = new String[] { "import", "world_nether", "nether" }; + plugin.onCommand(mockCommandSender, mockCommand, "", netherArgs); + + // We should now have 2 worlds imported! + assertEquals(2, creator.getCore().getMVWorldManager().getMVWorlds().size()); + + // Import the third world. + String[] skyArgs = new String[] { "import", "world_skylands", "end" }; + plugin.onCommand(mockCommandSender, mockCommand, "", skyArgs); + + // We should now have 2 worlds imported! + assertEquals(3, creator.getCore().getMVWorldManager().getMVWorlds().size()); + + // Verify that the commandSender has been called 3 times. + verify(mockCommandSender).sendMessage("Starting import of world 'world'..."); + verify(mockCommandSender).sendMessage("Starting import of world 'world_nether'..."); + verify(mockCommandSender).sendMessage("Starting import of world 'world_skylands'..."); + verify(mockCommandSender, VerificationModeFactory.times(3)).sendMessage("Complete!"); + } + + @Test + public void testWorldCreation() { + // Pull a core instance from the server. + Plugin plugin = mockServer.getPluginManager().getPlugin("Multiverse-Core"); + + // Make sure Core is not null + assertNotNull(plugin); + + // Make sure Core is enabled + assertTrue(plugin.isEnabled()); + + // Initialize a fake command + Command mockCommand = mock(Command.class); + when(mockCommand.getName()).thenReturn("mv"); + + // Ensure that there are no worlds imported. This is a fresh setup. + assertEquals(0, creator.getCore().getMVWorldManager().getMVWorlds().size()); + + // Create the world + String[] normalArgs = new String[] { "create", "newworld", "normal" }; + plugin.onCommand(mockCommandSender, mockCommand, "", normalArgs); + + // We should now have one world! + assertEquals(1, creator.getCore().getMVWorldManager().getMVWorlds().size()); + + // Verify + verify(mockCommandSender).sendMessage("Starting creation of world 'newworld'..."); + verify(mockCommandSender).sendMessage("Complete!"); + + WorldCreatorMatcher matcher = new WorldCreatorMatcher(new WorldCreator("newworld")); + verify(mockServer).createWorld(Matchers.argThat(matcher)); + } +} diff --git a/src/test/java/com/onarandombox/MultiverseCore/test/utils/MVCoreFactory.java b/src/test/java/com/onarandombox/MultiverseCore/test/utils/MVCoreFactory.java deleted file mode 100644 index 6e33ef4e..00000000 --- a/src/test/java/com/onarandombox/MultiverseCore/test/utils/MVCoreFactory.java +++ /dev/null @@ -1,41 +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.test.utils; - -import com.onarandombox.MultiverseCore.MultiverseCore; -import org.bukkit.plugin.PluginDescriptionFile; -import org.powermock.api.mockito.PowerMockito; - -import java.io.File; - -import static org.mockito.Mockito.doReturn; - -/** - * Multiverse 2 - * - * @author fernferret - */ -public class MVCoreFactory { - public static final File pluginDirectory = new File("bin/test/server/plugins/coretest"); - public static final File serverDirectory = new File("bin/test/server"); - - public MultiverseCore getNewCore() { - - MultiverseCore core = PowerMockito.spy(new MultiverseCore()); - - // Let's let all MV files go to bin/test - - doReturn(pluginDirectory).when(core).getDataFolder(); - - // Return a fake PDF file. - PluginDescriptionFile pdf = new PluginDescriptionFile("Multiverse-Core", "2.1-Test", "com.onarandombox.MultiverseCore.MultiverseCore"); - doReturn(pdf).when(core).getDescription(); - doReturn(true).when(core).isEnabled(); - return core; - } -} diff --git a/src/test/java/com/onarandombox/MultiverseCore/test/utils/MVTestLogFormatter.java b/src/test/java/com/onarandombox/MultiverseCore/test/utils/MVTestLogFormatter.java new file mode 100644 index 00000000..8691997d --- /dev/null +++ b/src/test/java/com/onarandombox/MultiverseCore/test/utils/MVTestLogFormatter.java @@ -0,0 +1,43 @@ +/****************************************************************************** + * 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.test.utils; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.logging.Formatter; +import java.util.logging.LogRecord; + +/** + * Formatter to format log-messages in tests + * + * @author main() + */ +public class MVTestLogFormatter extends Formatter { + private static final DateFormat df = new SimpleDateFormat("HH:mm:ss"); + + public String format(LogRecord record) { + StringBuilder ret = new StringBuilder(); + + ret.append("[").append(df.format(record.getMillis())).append("] [") + .append(record.getLoggerName()).append("] [") + .append(record.getLevel().getLocalizedName()).append("] "); + ret.append(record.getMessage()); + ret.append('\n'); + + if (record.getThrown() != null) { + // An Exception was thrown! Let's print the StackTrace! + StringWriter writer = new StringWriter(); + record.getThrown().printStackTrace(new PrintWriter(writer)); + ret.append(writer); + } + + return ret.toString(); + } +} \ No newline at end of file diff --git a/src/test/java/com/onarandombox/MultiverseCore/test/utils/MockBukkitServer.java b/src/test/java/com/onarandombox/MultiverseCore/test/utils/MockBukkitServer.java deleted file mode 100644 index 784fd0f1..00000000 --- a/src/test/java/com/onarandombox/MultiverseCore/test/utils/MockBukkitServer.java +++ /dev/null @@ -1,16 +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.test.utils; - -/** - * Multiverse 2 - * - * @author fernferret - */ -public class MockBukkitServer { -} diff --git a/src/test/java/com/onarandombox/MultiverseCore/test/utils/MockServerFactory.java b/src/test/java/com/onarandombox/MultiverseCore/test/utils/MockServerFactory.java deleted file mode 100644 index a7410214..00000000 --- a/src/test/java/com/onarandombox/MultiverseCore/test/utils/MockServerFactory.java +++ /dev/null @@ -1,34 +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.test.utils; - -import org.bukkit.Server; -import org.bukkit.WorldCreator; -import org.mockito.ArgumentMatcher; -import org.mockito.Matchers; - -import java.util.logging.Logger; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -/** - * Multiverse 2 - * - * @author fernferret - */ -public class MockServerFactory { - public Server getMockServer() { - Server server = mock(Server.class); - when(server.getName()).thenReturn("FernCraft"); - Logger logger = Logger.getLogger("Multiverse-Core-Test"); - when(server.getLogger()).thenReturn(logger); - - return server; - } -} diff --git a/src/test/java/com/onarandombox/MultiverseCore/test/utils/MockWorldFactory.java b/src/test/java/com/onarandombox/MultiverseCore/test/utils/MockWorldFactory.java index 667a16c0..c947a727 100644 --- a/src/test/java/com/onarandombox/MultiverseCore/test/utils/MockWorldFactory.java +++ b/src/test/java/com/onarandombox/MultiverseCore/test/utils/MockWorldFactory.java @@ -7,6 +7,14 @@ package com.onarandombox.MultiverseCore.test.utils; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; @@ -14,17 +22,14 @@ import org.bukkit.generator.ChunkGenerator; import org.mockito.ArgumentMatcher; import org.mockito.Matchers; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -/** - * Multiverse 2 - * - * @author fernferret - */ public class MockWorldFactory { - class LocationMatcher extends ArgumentMatcher { + private static final Map createdWorlds = new HashMap(); + + private MockWorldFactory() { + } + + private static class LocationMatcher extends ArgumentMatcher { private Location l; public LocationMatcher(Location location) { @@ -36,24 +41,24 @@ public class MockWorldFactory { } } - class LocationMatcherAbove extends LocationMatcher { + private static class LocationMatcherAbove extends LocationMatcher { public LocationMatcherAbove(Location location) { super(location); } public boolean matches(Object creator) { - System.out.println("Checking above..."); + Util.log("Checking above..."); if (super.l == null || creator == null) { return false; } boolean equal = ((Location) creator).getBlockY() >= super.l.getBlockY(); - System.out.println("Checking equals/\\..." + equal); + Util.log("Checking equals/\\..." + equal); return equal; } } - class LocationMatcherBelow extends LocationMatcher { + private static class LocationMatcherBelow extends LocationMatcher { public LocationMatcherBelow(Location location) { super(location); @@ -64,12 +69,16 @@ public class MockWorldFactory { return false; } boolean equal = ((Location) creator).getBlockY() < super.l.getBlockY(); - System.out.println("Checking equals\\/..." + equal); + Util.log("Checking equals\\/..." + equal); return equal; } } - public World makeNewMockWorld(String world, World.Environment env) { + private static void registerWorld(World world) { + createdWorlds.put(world.getName(), world); + } + + private static World basics(String world, World.Environment env) { World mockWorld = mock(World.class); when(mockWorld.getName()).thenReturn(world); when(mockWorld.getEnvironment()).thenReturn(env); @@ -81,10 +90,26 @@ public class MockWorldFactory { return mockWorld; } - public World makeNewMockWorld(String world, World.Environment env, long seed, ChunkGenerator generator) { - World w = this.makeNewMockWorld(world, env); - when(w.getGenerator()).thenReturn(generator); - when(w.getSeed()).thenReturn(seed); + public static World makeNewMockWorld(String world, World.Environment env) { + World w = basics(world, env); + registerWorld(w); return w; } + + public static World makeNewMockWorld(String world, World.Environment env, long seed, + ChunkGenerator generator) { + World mockWorld = basics(world, env); + when(mockWorld.getGenerator()).thenReturn(generator); + when(mockWorld.getSeed()).thenReturn(seed); + registerWorld(mockWorld); + return mockWorld; + } + + public static World getWorld(String name) { + return createdWorlds.get(name); + } + + public static List getWorlds() { + return new ArrayList(createdWorlds.values()); + } } diff --git a/src/test/java/com/onarandombox/MultiverseCore/test/utils/TestCommandSender.java b/src/test/java/com/onarandombox/MultiverseCore/test/utils/TestCommandSender.java index 29a8007c..341b7045 100644 --- a/src/test/java/com/onarandombox/MultiverseCore/test/utils/TestCommandSender.java +++ b/src/test/java/com/onarandombox/MultiverseCore/test/utils/TestCommandSender.java @@ -7,6 +7,9 @@ package com.onarandombox.MultiverseCore.test.utils; +import java.util.Set; +import java.util.logging.Logger; + import org.bukkit.ChatColor; import org.bukkit.Server; import org.bukkit.command.CommandSender; @@ -15,18 +18,17 @@ import org.bukkit.permissions.PermissionAttachment; import org.bukkit.permissions.PermissionAttachmentInfo; import org.bukkit.plugin.Plugin; -import java.util.Set; - -/** - * Multiverse 2 - * - * @author fernferret - */ public class TestCommandSender implements CommandSender { private Server server; private boolean isOp; + static { + Logger.getLogger("CommandSender").setParent(Util.logger); + } + + private static final Logger logger = Logger.getLogger("CommandSender"); + public TestCommandSender(Server server) { this.server = server; } @@ -38,7 +40,7 @@ public class TestCommandSender implements CommandSender { */ @Override public void sendMessage(String message) { - System.out.println(ChatColor.stripColor(message)); + logger.info(ChatColor.stripColor(message)); } /** diff --git a/src/test/java/com/onarandombox/MultiverseCore/test/utils/TestInstanceCreator.java b/src/test/java/com/onarandombox/MultiverseCore/test/utils/TestInstanceCreator.java index 846f0819..79a53624 100644 --- a/src/test/java/com/onarandombox/MultiverseCore/test/utils/TestInstanceCreator.java +++ b/src/test/java/com/onarandombox/MultiverseCore/test/utils/TestInstanceCreator.java @@ -7,104 +7,181 @@ package com.onarandombox.MultiverseCore.test.utils; -import com.onarandombox.MultiverseCore.MultiverseCore; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.*; + +import java.io.File; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; + +import junit.framework.Assert; + import org.bukkit.Bukkit; import org.bukkit.Server; import org.bukkit.World; import org.bukkit.WorldCreator; import org.bukkit.command.CommandSender; +import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; import org.mockito.Matchers; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; import org.powermock.api.mockito.PowerMockito; -import java.io.File; -import java.util.ArrayList; -import java.util.List; +import com.onarandombox.MultiverseCore.MultiverseCore; +import com.onarandombox.MultiverseCore.api.MultiverseWorld; +import com.onarandombox.MultiverseCore.utils.FileUtils; +import com.onarandombox.MultiverseCore.utils.WorldManager; -import static org.mockito.Mockito.*; - -/** - * Multiverse 2 - * - * @author fernferret - */ public class TestInstanceCreator { MultiverseCore core; + Server mockServer; private CommandSender commandSender; - public Server setupDefaultServerInstance() { + public static final File pluginDirectory = new File("bin/test/server/plugins/coretest"); + public static final File serverDirectory = new File("bin/test/server"); - MockWorldFactory worldFactory = new MockWorldFactory(); - MVCoreFactory coreFactory = new MVCoreFactory(); - MockServerFactory serverFactory = new MockServerFactory(); - core = coreFactory.getNewCore(); - // Add Core to the list of loaded plugins - JavaPlugin[] plugins = new JavaPlugin[]{core}; + public boolean setUp() { + try { + pluginDirectory.mkdirs(); + Assert.assertTrue(pluginDirectory.exists()); - // Mock the Plugin Manager - PluginManager mockPluginManager = PowerMockito.mock(PluginManager.class); - when(mockPluginManager.getPlugins()).thenReturn(plugins); - when(mockPluginManager.getPlugin("Multiverse-Core")).thenReturn(core); + core = PowerMockito.spy(new MultiverseCore()); - // Make some fake folders to fool the fake MV into thinking these worlds exist - new File(core.getServerFolder(), "world").mkdirs(); - new File(core.getServerFolder(), "world_nether").mkdirs(); - new File(core.getServerFolder(), "world_skylands").mkdirs(); + // Let's let all MV files go to bin/test + doReturn(pluginDirectory).when(core).getDataFolder(); - // Initialize the Mock Worlds - World mockWorld = worldFactory.makeNewMockWorld("world", World.Environment.NORMAL); - World mockNetherWorld = worldFactory.makeNewMockWorld("world_nether", World.Environment.NETHER); - World mockSkyWorld = worldFactory.makeNewMockWorld("world_skylands", World.Environment.THE_END); + // Return a fake PDF file. + PluginDescriptionFile pdf = new PluginDescriptionFile("Multiverse-Core", "2.1-Test", + "com.onarandombox.MultiverseCore.MultiverseCore"); + doReturn(pdf).when(core).getDescription(); + doReturn(true).when(core).isEnabled(); + core.setServerFolder(serverDirectory); - List worldList = new ArrayList(); - worldList.add(mockWorld); - worldList.add(mockNetherWorld); - worldList.add(mockSkyWorld); + // Add Core to the list of loaded plugins + JavaPlugin[] plugins = new JavaPlugin[] { core }; - // Initialize the Mock server. - Server mockServer = serverFactory.getMockServer(); + // Mock the Plugin Manager + PluginManager mockPluginManager = PowerMockito.mock(PluginManager.class); + when(mockPluginManager.getPlugins()).thenReturn(plugins); + when(mockPluginManager.getPlugin("Multiverse-Core")).thenReturn(core); + when(mockPluginManager.getPermission(anyString())).thenReturn(null); - // Give the server some worlds - when(mockServer.getWorld("world")).thenReturn(mockWorld); - when(mockServer.getWorld("world_nether")).thenReturn(mockNetherWorld); - when(mockServer.getWorld("world_skylands")).thenReturn(mockNetherWorld); - when(mockServer.getWorlds()).thenReturn(worldList); - when(mockServer.getPluginManager()).thenReturn(mockPluginManager); + // Make some fake folders to fool the fake MV into thinking these worlds exist + File worldNormalFile = new File(core.getServerFolder(), "world"); + Util.log("Creating world-folder: " + worldNormalFile.getAbsolutePath()); + worldNormalFile.mkdirs(); + File worldNetherFile = new File(core.getServerFolder(), "world_nether"); + Util.log("Creating world-folder: " + worldNetherFile.getAbsolutePath()); + worldNetherFile.mkdirs(); + File worldSkylandsFile = new File(core.getServerFolder(), "world_skylands"); + Util.log("Creating world-folder: " + worldSkylandsFile.getAbsolutePath()); + worldSkylandsFile.mkdirs(); - // Initialize some worldCreatorMatchers (so we can see when a specific creator is called) - WorldCreatorMatcher matchWorld = new WorldCreatorMatcher(new WorldCreator("world")); - WorldCreator netherCreator = new WorldCreator("world_nether"); - netherCreator.environment(World.Environment.NETHER); - WorldCreatorMatcher matchNetherWorld = new WorldCreatorMatcher(netherCreator); + // Initialize the Mock server. + mockServer = mock(Server.class); + when(mockServer.getName()).thenReturn("TestBukkit"); + Logger.getLogger("Minecraft").setParent(Util.logger); + when(mockServer.getLogger()).thenReturn(Util.logger); - WorldCreator skyCreator = new WorldCreator("world_skylands"); - skyCreator.environment(World.Environment.THE_END); - WorldCreatorMatcher matchSkyWorld = new WorldCreatorMatcher(skyCreator); + // Give the server some worlds + when(mockServer.getWorld(anyString())).thenAnswer(new Answer() { + public World answer(InvocationOnMock invocation) throws Throwable { + String arg; + try { + arg = (String) invocation.getArguments()[0]; + } catch (Exception e) { + return null; + } + return MockWorldFactory.getWorld(arg); + } + }); - // If a specific creator is called, return the appropreate world. - when(mockServer.createWorld(Matchers.argThat(matchWorld))).thenReturn(mockWorld); - when(mockServer.createWorld(Matchers.argThat(matchNetherWorld))).thenReturn(mockNetherWorld); - when(mockServer.createWorld(Matchers.argThat(matchSkyWorld))).thenReturn(mockSkyWorld); + when(mockServer.getWorlds()).thenAnswer(new Answer>() { + public List answer(InvocationOnMock invocation) throws Throwable { + return MockWorldFactory.getWorlds(); + } + }); - // Override some methods that bukkit normally provides us with for Core - doReturn(mockServer).when(core).getServer(); + when(mockServer.getPluginManager()).thenReturn(mockPluginManager); - // Init our command sender - commandSender = spy(new TestCommandSender(mockServer)); - Bukkit.setServer(mockServer); - // Load Multiverse Core - core.onLoad(); + when(mockServer.createWorld(Matchers.isA(WorldCreator.class))).thenAnswer( + new Answer() { + public World answer(InvocationOnMock invocation) throws Throwable { + WorldCreator arg; + try { + arg = (WorldCreator) invocation.getArguments()[0]; + } catch (Exception e) { + return null; + } + return MockWorldFactory.makeNewMockWorld(arg.name(), arg.environment()); + } + }); - // Enable it. - core.onEnable(); - return mockServer; + // Set server + Field serverfield = JavaPlugin.class.getDeclaredField("server"); + serverfield.setAccessible(true); + serverfield.set(core, mockServer); + + // Set worldManager + WorldManager wm = PowerMockito.spy(new WorldManager(core)); + Field worldmanagerfield = MultiverseCore.class.getDeclaredField("worldManager"); + worldmanagerfield.setAccessible(true); + worldmanagerfield.set(core, wm); + + // Init our command sender + commandSender = spy(new TestCommandSender(mockServer)); + Bukkit.setServer(mockServer); + + // Load Multiverse Core + core.onLoad(); + + // Enable it. + core.onEnable(); + + return true; + } catch (Exception e) { + e.printStackTrace(); + } + + return false; + } + + public boolean tearDown() { + List worlds = new ArrayList(core.getMVWorldManager() + .getMVWorlds()); + for (MultiverseWorld world : worlds) { + core.getMVWorldManager().deleteWorld(world.getName()); + } + + try { + Field serverField = Bukkit.class.getDeclaredField("server"); + serverField.setAccessible(true); + serverField.set(Class.forName("org.bukkit.Bukkit"), null); + } catch (Exception e) { + Util.log(Level.SEVERE, + "Error while trying to unregister the server from Bukkit. Has Bukkit changed?"); + e.printStackTrace(); + Assert.fail(e.getMessage()); + return false; + } + + FileUtils.deleteFolder(serverDirectory); + return true; } public MultiverseCore getCore() { return this.core; } + public Server getServer() { + return this.mockServer; + } + public CommandSender getCommandSender() { return commandSender; } diff --git a/src/test/java/com/onarandombox/MultiverseCore/test/utils/Util.java b/src/test/java/com/onarandombox/MultiverseCore/test/utils/Util.java new file mode 100644 index 00000000..27f947ae --- /dev/null +++ b/src/test/java/com/onarandombox/MultiverseCore/test/utils/Util.java @@ -0,0 +1,57 @@ +/****************************************************************************** + * 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.test.utils; + +import java.util.logging.ConsoleHandler; +import java.util.logging.Handler; +import java.util.logging.Level; +import java.util.logging.LogRecord; +import java.util.logging.Logger; + +public class Util { + public static final Logger logger = Logger.getLogger("MV-Test"); + + static { + logger.setUseParentHandlers(false); + + Handler handler = new ConsoleHandler(); + handler.setFormatter(new MVTestLogFormatter()); + Handler[] handlers = logger.getHandlers(); + + for (Handler h : handlers) + logger.removeHandler(h); + + logger.addHandler(handler); + } + + public static void log(Throwable t) { + log(Level.WARNING, t.getLocalizedMessage(), t); + } + + public static void log(Level level, Throwable t) { + log(level, t.getLocalizedMessage(), t); + } + + public static void log(String message, Throwable t) { + log(Level.WARNING, message, t); + } + + public static void log(Level level, String message, Throwable t) { + LogRecord record = new LogRecord(level, message); + record.setThrown(t); + logger.log(record); + } + + public static void log(String message) { + log(Level.INFO, message); + } + + public static void log(Level level, String message) { + logger.log(level, message); + } +} diff --git a/src/test/java/com/onarandombox/MultiverseCore/test/utils/WorldCreatorMatcher.java b/src/test/java/com/onarandombox/MultiverseCore/test/utils/WorldCreatorMatcher.java index 84498086..7eeb7bcc 100644 --- a/src/test/java/com/onarandombox/MultiverseCore/test/utils/WorldCreatorMatcher.java +++ b/src/test/java/com/onarandombox/MultiverseCore/test/utils/WorldCreatorMatcher.java @@ -16,7 +16,7 @@ public class WorldCreatorMatcher extends ArgumentMatcher { private boolean careAboutGenerators = false; public WorldCreatorMatcher(WorldCreator creator) { - System.out.println("Creating NEW world matcher.(" + creator.name() + ")"); + Util.log("Creating NEW world matcher.(" + creator.name() + ")"); this.worldCreator = creator; } @@ -29,17 +29,17 @@ public class WorldCreatorMatcher extends ArgumentMatcher { } public boolean matches(Object creator) { - System.out.println("Checking world creators."); + Util.log("Checking world creators."); if (creator == null) { - System.out.println("The given creator was null, but I was checking: " + this.worldCreator.name()); + Util.log("The given creator was null, but I was checking: " + this.worldCreator.name()); return false; } - System.out.println("Checking Names...(" + ((WorldCreator) creator).name() + ") vs (" + this.worldCreator.name() + ")"); - System.out.println("Checking Envs...(" + ((WorldCreator) creator).environment() + ") vs (" + this.worldCreator.environment() + ")"); + Util.log("Checking Names...(" + ((WorldCreator) creator).name() + ") vs (" + this.worldCreator.name() + ")"); + Util.log("Checking Envs...(" + ((WorldCreator) creator).environment() + ") vs (" + this.worldCreator.environment() + ")"); if (!((WorldCreator) creator).name().equals(this.worldCreator.name())) { return false; } else if (!((WorldCreator) creator).environment().equals(this.worldCreator.environment())) { - System.out.println("Checking Environments..."); + Util.log("Checking Environments..."); return false; } else if (careAboutSeeds && ((WorldCreator) creator).seed() != this.worldCreator.seed()) { System.out.print("Checking Seeds..."); @@ -48,7 +48,7 @@ public class WorldCreatorMatcher extends ArgumentMatcher { System.out.print("Checking Gens..."); return false; } - System.out.println("Creators matched!!!"); + Util.log("Creators matched!!!"); return true; } } diff --git a/worlds.yml b/worlds.yml deleted file mode 100644 index 8d904820..00000000 --- a/worlds.yml +++ /dev/null @@ -1 +0,0 @@ -worlds: {}