From 5259f6a503a9de3ac3d757698782424082abd87b Mon Sep 17 00:00:00 2001 From: Ben Woo <30431861+benwoo1110@users.noreply.github.com> Date: Sat, 4 Jan 2025 10:21:47 +0800 Subject: [PATCH] Fix spawn location in world config should use SpawnLocation class not bukkit Location --- .../multiverse/core/world/MultiverseWorld.java | 14 +++++++++++++- .../multiverse/core/world/config/WorldConfig.java | 4 ++-- .../core/world/config/WorldConfigNodes.java | 2 +- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/mvplugins/multiverse/core/world/MultiverseWorld.java b/src/main/java/org/mvplugins/multiverse/core/world/MultiverseWorld.java index b6656d52..d043d9a7 100644 --- a/src/main/java/org/mvplugins/multiverse/core/world/MultiverseWorld.java +++ b/src/main/java/org/mvplugins/multiverse/core/world/MultiverseWorld.java @@ -14,6 +14,7 @@ import org.jetbrains.annotations.Nullable; import org.mvplugins.multiverse.core.configuration.handle.StringPropertyHandle; import org.mvplugins.multiverse.core.world.config.AllowedPortalType; +import org.mvplugins.multiverse.core.world.config.SpawnLocation; import org.mvplugins.multiverse.core.world.config.WorldConfig; /** @@ -533,7 +534,7 @@ public class MultiverseWorld { * * @return The spawn location of this world. */ - public Location getSpawnLocation() { + public SpawnLocation getSpawnLocation() { return worldConfig.getSpawnLocation(); } @@ -544,6 +545,17 @@ public class MultiverseWorld { * @return Result of setting property. */ public Try setSpawnLocation(Location spawnLocation) { + return setSpawnLocation(new SpawnLocation(spawnLocation)); + } + + /** + * Sets the spawn location for a world. + * + * @param spawnLocation The spawn location for a world. + * @return Result of setting property. + */ + public Try setSpawnLocation(SpawnLocation spawnLocation) { + //todo: Maybe check of safe location if adjust spawn is enabled return worldConfig.setSpawnLocation(spawnLocation); } diff --git a/src/main/java/org/mvplugins/multiverse/core/world/config/WorldConfig.java b/src/main/java/org/mvplugins/multiverse/core/world/config/WorldConfig.java index 43e36069..e9eb8508 100644 --- a/src/main/java/org/mvplugins/multiverse/core/world/config/WorldConfig.java +++ b/src/main/java/org/mvplugins/multiverse/core/world/config/WorldConfig.java @@ -301,11 +301,11 @@ public final class WorldConfig { return configHandle.set(configNodes.SEED, seed); } - public Location getSpawnLocation() { + public SpawnLocation getSpawnLocation() { return configHandle.get(configNodes.SPAWN_LOCATION); } - public Try setSpawnLocation(Location spawnLocation) { + public Try setSpawnLocation(SpawnLocation spawnLocation) { return configHandle.set(configNodes.SPAWN_LOCATION, spawnLocation); } diff --git a/src/main/java/org/mvplugins/multiverse/core/world/config/WorldConfigNodes.java b/src/main/java/org/mvplugins/multiverse/core/world/config/WorldConfigNodes.java index ad8ec86d..353c7557 100644 --- a/src/main/java/org/mvplugins/multiverse/core/world/config/WorldConfigNodes.java +++ b/src/main/java/org/mvplugins/multiverse/core/world/config/WorldConfigNodes.java @@ -186,7 +186,7 @@ public class WorldConfigNodes { .name(null) .build()); - final ConfigNode SPAWN_LOCATION = node(ConfigNode.builder("spawn-location", Location.class) + final ConfigNode SPAWN_LOCATION = node(ConfigNode.builder("spawn-location", SpawnLocation.class) .defaultValue(NullLocation.get()) .name(null) .onSetValue((oldValue, newValue) -> {