diff options
author | Dico <dico.karssiens@gmail.com> | 2018-09-24 02:45:41 +0100 |
---|---|---|
committer | Dico <dico.karssiens@gmail.com> | 2018-09-24 02:45:41 +0100 |
commit | 1a440767b3d8d7b267ecfeeb37f8c315bae9d112 (patch) | |
tree | 7250af6b41be34f41c2b5702922bb1d3948f15ce /src/main/kotlin/io/dico/parcels2/Parcel.kt | |
parent | e0bf8249bdf23386039d395ec55b2a011c2e09ac (diff) |
Replace AddedData API with Privileges API, adding CAN_MANAGE and required changes
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/Parcel.kt')
-rw-r--r-- | src/main/kotlin/io/dico/parcels2/Parcel.kt | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/main/kotlin/io/dico/parcels2/Parcel.kt b/src/main/kotlin/io/dico/parcels2/Parcel.kt index 2c56627..6ec6121 100644 --- a/src/main/kotlin/io/dico/parcels2/Parcel.kt +++ b/src/main/kotlin/io/dico/parcels2/Parcel.kt @@ -1,7 +1,7 @@ package io.dico.parcels2 import io.dico.parcels2.util.Vec2i -import io.dico.parcels2.util.ext.hasBuildAnywhere +import io.dico.parcels2.util.ext.hasPermBuildAnywhere import org.bukkit.Location import org.bukkit.OfflinePlayer import org.bukkit.entity.Player @@ -37,7 +37,7 @@ interface Parcel : ParcelData { val homeLocation: Location get() = world.blockManager.getHomeLocation(id) } -interface ParcelData : AddedData { +interface ParcelData : Privileges { var owner: PlayerProfile? val lastClaimTime: DateTime? var ownerSignOutdated: Boolean @@ -54,14 +54,15 @@ interface ParcelData : AddedData { } } -class ParcelDataHolder(addedMap: MutableAddedDataMap = mutableMapOf()) - : ParcelData, AddedDataHolder(addedMap) { +class ParcelDataHolder(addedMap: MutablePrivilegeMap = mutableMapOf()) + : ParcelData, PrivilegesHolder(addedMap) { override var owner: PlayerProfile? = null override var lastClaimTime: DateTime? = null override var ownerSignOutdated = false - override fun canBuild(player: OfflinePlayer, checkAdmin: Boolean, checkGlobal: Boolean) = isAllowed(player.statusKey) + override fun canBuild(player: OfflinePlayer, checkAdmin: Boolean, checkGlobal: Boolean) = + hasPrivilegeToBuild(player) || owner.let { it != null && it.matches(player, allowNameMatch = false) } - || (checkAdmin && player is Player && player.hasBuildAnywhere) + || (checkAdmin && player is Player && player.hasPermBuildAnywhere) override var interactableConfig: InteractableConfiguration = BitmaskInteractableConfiguration() } |