From 6d709d2a64af596e1c8dde7f9f9c8f6c6f4b5afd Mon Sep 17 00:00:00 2001 From: bluefireoly Date: Fri, 23 Oct 2020 17:44:54 +0200 Subject: [PATCH] Added SerializableWorld --- .../serializables/SerializableLocation.kt | 7 +++---- .../serializables/SerializableWorld.kt | 21 +++++++++++++++++++ 2 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 src/main/kotlin/net/axay/kspigot/serialization/serializables/SerializableWorld.kt diff --git a/src/main/kotlin/net/axay/kspigot/serialization/serializables/SerializableLocation.kt b/src/main/kotlin/net/axay/kspigot/serialization/serializables/SerializableLocation.kt index 20152fd6..87ee53a1 100644 --- a/src/main/kotlin/net/axay/kspigot/serialization/serializables/SerializableLocation.kt +++ b/src/main/kotlin/net/axay/kspigot/serialization/serializables/SerializableLocation.kt @@ -4,11 +4,10 @@ package net.axay.kspigot.serialization.serializables import net.axay.kspigot.serialization.SpigotSerializable import net.axay.kspigot.serialization.SpigotSerializableCompanion -import org.bukkit.Bukkit import org.bukkit.Location data class SerializableLocation( - val world: String?, + val world: SerializableWorld?, val x: Double, val y: Double, val z: Double, @@ -17,9 +16,9 @@ data class SerializableLocation( companion object : SpigotSerializableCompanion - constructor(loc: Location) : this(loc.world?.name, loc.x, loc.y, loc.z, SerializableVector(loc.direction)) + constructor(loc: Location) : this(loc.world?.let { SerializableWorld(it) }, loc.x, loc.y, loc.z, SerializableVector(loc.direction)) - override fun toSpigot() = Location(world?.let { Bukkit.getWorld(world) }, x, y, z) + override fun toSpigot() = Location(world?.toSpigot(), x, y, z) .apply { direction = this@SerializableLocation.direction.toSpigot() } } \ No newline at end of file diff --git a/src/main/kotlin/net/axay/kspigot/serialization/serializables/SerializableWorld.kt b/src/main/kotlin/net/axay/kspigot/serialization/serializables/SerializableWorld.kt new file mode 100644 index 00000000..a06057c7 --- /dev/null +++ b/src/main/kotlin/net/axay/kspigot/serialization/serializables/SerializableWorld.kt @@ -0,0 +1,21 @@ +@file:Suppress("MemberVisibilityCanBePrivate") + +package net.axay.kspigot.serialization.serializables + +import net.axay.kspigot.serialization.SpigotSerializable +import net.axay.kspigot.serialization.SpigotSerializableCompanion +import org.bukkit.Bukkit +import org.bukkit.World + +class SerializableWorld( + val name: String +) : SpigotSerializable { + + companion object : SpigotSerializableCompanion + + constructor(world: World) : this(world.name) + + override fun toSpigot() = Bukkit.getWorld(name) + ?: throw NullPointerException("The world \"$name\" does not exist") + +} \ No newline at end of file