Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ dependencies {

// Tests
testImplementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.21'
testImplementation 'org.mockbukkit.mockbukkit:mockbukkit-v1.21:4.22.2'
testImplementation 'org.mockbukkit.mockbukkit:mockbukkit-v1.21:4.24.1'
testImplementation('com.googlecode.json-simple:json-simple:1.1.1') {
exclude group: 'junit', module: 'junit'
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ public GameRulesStore copyFrom(LoadedMultiverseWorld world) {
gameRuleMap.put(gameRuleEnum, bukkitWorld.getGameRuleValue(gameRuleEnum));
}
});
Logging.finer("Copied " + gameRuleMap.size() + " game rules from world " + world.getName());
return this;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
package org.mvplugins.multiverse.core.commands

import org.bukkit.Bukkit
import org.bukkit.GameRule
import org.mvplugins.multiverse.core.world.LoadedMultiverseWorld
import org.mvplugins.multiverse.core.world.options.CreateWorldOptions
import kotlin.test.*

class RegenCommandTest : AbstractWorldCommandTest() {

private lateinit var testWorld : LoadedMultiverseWorld

@BeforeTest
fun setUp() {
testWorld = worldManager.createWorld(CreateWorldOptions.worldName("test")).get()
}

@Test
fun `Regen world`() {
val previousUID = testWorld.uid
val previousSeed = testWorld.seed
testWorld.scale = 69.5
testWorld.bukkitWorld.map {
it.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false)
}
testWorld.bukkitWorld.map {
it.worldBorder.size = 123.4
}
assertTrue(Bukkit.dispatchCommand(console, "mv regen test"))
assertTrue(Bukkit.dispatchCommand(console, "mv confirm"))

val newWorld = worldManager.getLoadedWorld("test").orNull

assertNotNull(newWorld)
assertNotEquals(previousUID, newWorld.uid)
assertEquals(previousSeed, newWorld.seed)
assertEquals(69.5, newWorld.scale)
assertEquals(false, newWorld.bukkitWorld.map { it.getGameRuleValue(GameRule.DO_DAYLIGHT_CYCLE) }.orNull)
assertEquals(123.4, newWorld.bukkitWorld.map { it.worldBorder.size }.orNull)
}

@Test
fun `Regen world with specific seed`() {
val previousUID = testWorld.uid

assertTrue(Bukkit.dispatchCommand(console, "mv regen test --seed 456"))
assertTrue(Bukkit.dispatchCommand(console, "mv confirm"))

val newWorld = worldManager.getLoadedWorld("test").orNull

assertNotNull(newWorld)
assertNotEquals(previousUID, newWorld.uid)
assertEquals(456, newWorld.seed)
}

@Test
fun `Regen world with random seed`() {
val previousUID = testWorld.uid
val previousSeed = testWorld.seed

assertTrue(Bukkit.dispatchCommand(console, "mv regen test --seed"))
assertTrue(Bukkit.dispatchCommand(console, "mv confirm"))

val newWorld = worldManager.getLoadedWorld("test").orNull

assertNotNull(newWorld)
assertNotEquals(previousUID, newWorld.uid)
assertNotEquals(previousSeed, newWorld.seed)
}

@Test
fun `Regen world and reset world config`() {
val previousUID = testWorld.uid
testWorld.scale = 69.5

assertTrue(Bukkit.dispatchCommand(console, "mv regen test --reset-world-config"))
assertTrue(Bukkit.dispatchCommand(console, "mv confirm"))

val newWorld = worldManager.getLoadedWorld("test").orNull

assertNotNull(newWorld)
assertNotEquals(previousUID, newWorld.uid)
assertEquals(1.0, newWorld.scale)
}

@Test
fun `Regen world and reset gamerules`() {
val previousUID = testWorld.uid
testWorld.bukkitWorld.map {
it.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false)
}

assertTrue(Bukkit.dispatchCommand(console, "mv regen test --reset-gamerules"))
assertTrue(Bukkit.dispatchCommand(console, "mv confirm"))

val newWorld = worldManager.getLoadedWorld("test").orNull

assertNotNull(newWorld)
assertNotEquals(previousUID, newWorld.uid)
assertEquals(true, newWorld.bukkitWorld.map { it.getGameRuleValue(GameRule.DO_DAYLIGHT_CYCLE) }.orNull)
}

@Test
fun `Regen world and reset world border`() {
val previousUID = testWorld.uid
testWorld.bukkitWorld.map {
it.worldBorder.size = 123.4
}

assertTrue(Bukkit.dispatchCommand(console, "mv regen test --reset-world-border"))
assertTrue(Bukkit.dispatchCommand(console, "mv confirm"))

val newWorld = worldManager.getLoadedWorld("test").orNull

assertNotNull(newWorld)
assertNotEquals(previousUID, newWorld.uid)
assertEquals(6.0E7, newWorld.bukkitWorld.map { it.worldBorder.size }.orNull)
}
}
Loading