summaryrefslogtreecommitdiff
path: root/src/main/kotlin/io/dico/parcels2/ParcelWorld.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/ParcelWorld.kt')
-rw-r--r--src/main/kotlin/io/dico/parcels2/ParcelWorld.kt15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/main/kotlin/io/dico/parcels2/ParcelWorld.kt b/src/main/kotlin/io/dico/parcels2/ParcelWorld.kt
index a3c6c24..c31b11a 100644
--- a/src/main/kotlin/io/dico/parcels2/ParcelWorld.kt
+++ b/src/main/kotlin/io/dico/parcels2/ParcelWorld.kt
@@ -9,8 +9,11 @@ import org.bukkit.World
import org.bukkit.block.Block
import org.bukkit.entity.Entity
import org.joda.time.DateTime
+import java.lang.IllegalStateException
import java.util.UUID
+class Permit
+
interface ParcelProvider {
val worlds: Map<String, ParcelWorld>
@@ -43,6 +46,15 @@ interface ParcelProvider {
fun getWorldGenerator(worldName: String): ParcelGenerator?
fun loadWorlds()
+
+ fun acquireBlockVisitorPermit(parcelId: ParcelId, with: Permit): Boolean
+
+ @Throws(IllegalStateException::class)
+ fun releaseBlockVisitorPermit(parcelId: ParcelId, with: Permit)
+
+ fun trySubmitBlockVisitor(permit: Permit, parcelIds: Array<out ParcelId>, function: JobFunction): Job?
+
+ fun swapParcels(parcelId1: ParcelId, parcelId2: ParcelId): Job?
}
interface ParcelLocator {
@@ -69,7 +81,7 @@ interface ParcelContainer {
fun getParcelById(id: Vec2i): Parcel? = getParcelById(id.x, id.z)
- fun getParcelById(id: ParcelId): Parcel? = getParcelById(id.x, id.z)
+ fun getParcelById(id: ParcelId): Parcel?
fun nextEmptyParcel(): Parcel?
@@ -88,5 +100,4 @@ interface ParcelWorld : ParcelLocator, ParcelContainer {
val globalPrivileges: GlobalPrivilegesManager
val creationTime: DateTime?
-
}