summaryrefslogtreecommitdiff
path: root/src/main/kotlin/io/dico/parcels2/storage/SerializableTypes.kt
blob: 121e251b06e9b35038b4a633e0e61d9765eb76e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package io.dico.parcels2.storage

import io.dico.parcels2.Parcel
import io.dico.parcels2.ParcelWorld
import io.dico.parcels2.math.Vec2i
import org.bukkit.Bukkit
import org.bukkit.World
import java.util.*

data class SerializableWorld(val name: String? = null,
                             val uid: UUID? = null) {

    init {
        uid ?: name ?: throw IllegalArgumentException("uuid and/or name must be present")
    }

    val world: World? by lazy { uid?.let { Bukkit.getWorld(it) } ?: name?.let { Bukkit.getWorld(it) } }
    val parcelWorld: ParcelWorld? by lazy { TODO() }
}

/**
 * Used by storage backing options to encompass the location of a parcel
 */
data class SerializableParcel(val world: SerializableWorld,
                              val pos: Vec2i) {

    val parcel: Parcel? by lazy { TODO() }
}