Remove privilegesOfStar exposure
This commit is contained in:
@@ -64,8 +64,7 @@ typealias PrivilegeMap = Map<PrivilegeKey, Privilege>
|
||||
fun MutablePrivilegeMap(): MutablePrivilegeMap = hashMapOf()
|
||||
|
||||
interface PrivilegesMinimal {
|
||||
val map: PrivilegeMap
|
||||
var privilegeOfStar: Privilege
|
||||
val privilegeMap: PrivilegeMap
|
||||
|
||||
fun getStoredPrivilege(key: PrivilegeKey): Privilege
|
||||
fun setStoredPrivilege(key: PrivilegeKey, privilege: Privilege): Boolean
|
||||
@@ -120,13 +119,12 @@ enum class PrivilegeChangeResult {
|
||||
val OfflinePlayer.privilegeKey: PrivilegeKey
|
||||
inline get() = PlayerProfile.nameless(this)
|
||||
|
||||
open class PrivilegesHolder(override var map: MutablePrivilegeMap = MutablePrivilegeMap()) : PrivilegesMinimal {
|
||||
override var privilegeOfStar: Privilege = DEFAULT
|
||||
set(value) = run { field = value.requireNonTransient() }
|
||||
open class PrivilegesHolder(override var privilegeMap: MutablePrivilegeMap = MutablePrivilegeMap()) : PrivilegesMinimal {
|
||||
private var privilegeOfStar: Privilege = DEFAULT
|
||||
|
||||
override fun getStoredPrivilege(key: PrivilegeKey) =
|
||||
if (key.isStar) privilegeOfStar
|
||||
else map.getOrDefault(key, privilegeOfStar)
|
||||
else privilegeMap.getOrDefault(key, privilegeOfStar)
|
||||
|
||||
override fun setStoredPrivilege(key: PrivilegeKey, privilege: Privilege): Boolean {
|
||||
privilege.requireNonTransient()
|
||||
@@ -137,8 +135,8 @@ open class PrivilegesHolder(override var map: MutablePrivilegeMap = MutablePrivi
|
||||
return true
|
||||
}
|
||||
|
||||
return if (privilege == DEFAULT) map.remove(key) != null
|
||||
else map.put(key, privilege) != privilege
|
||||
return if (privilege == DEFAULT) privilegeMap.remove(key) != null
|
||||
else privilegeMap.put(key, privilege) != privilege
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ class GlobalPrivilegesManagerImpl(val plugin: ParcelsPlugin) : GlobalPrivilegesM
|
||||
data: MutablePrivilegeMap = emptyData
|
||||
) : PrivilegesHolder(data), GlobalPrivileges {
|
||||
|
||||
private inline var data get() = map; set(value) = run { map = value }
|
||||
private inline var data get() = privilegeMap; set(value) = run { privilegeMap = value }
|
||||
private inline val isEmpty get() = data === emptyData
|
||||
|
||||
override fun setStoredPrivilege(key: PrivilegeKey, privilege: Privilege): Boolean {
|
||||
|
||||
@@ -36,7 +36,7 @@ class ParcelImpl(
|
||||
world.storage.setParcelData(this, null)
|
||||
}
|
||||
|
||||
override val map: PrivilegeMap get() = data.map
|
||||
override val privilegeMap: PrivilegeMap get() = data.privilegeMap
|
||||
override fun getStoredPrivilege(key: PrivilegeKey) = data.getStoredPrivilege(key)
|
||||
|
||||
override fun setStoredPrivilege(key: PrivilegeKey, privilege: Privilege): Boolean {
|
||||
@@ -51,10 +51,6 @@ class ParcelImpl(
|
||||
else privilege
|
||||
}
|
||||
|
||||
override var privilegeOfStar: Privilege
|
||||
get() = data.privilegeOfStar.let { if (it == DEFAULT) globalPrivileges?.privilegeOfStar ?: DEFAULT else it }
|
||||
set(value) = run { setStoredPrivilege(PlayerProfile.Star, value) }
|
||||
|
||||
override val globalPrivileges: GlobalPrivileges?
|
||||
get() = keyOfOwner?.let { world.globalPrivileges[it] }
|
||||
|
||||
@@ -223,8 +219,8 @@ private object ParcelInfoStringComputer {
|
||||
|
||||
append('\n')
|
||||
|
||||
val local = parcel.map
|
||||
val global = parcel.globalPrivileges?.map ?: emptyMap()
|
||||
val local = parcel.privilegeMap
|
||||
val global = parcel.globalPrivileges?.privilegeMap ?: emptyMap()
|
||||
appendAddedList(local, global, CAN_BUILD, "Allowed") // includes CAN_MANAGE privilege
|
||||
append('\n')
|
||||
appendAddedList(local, global, BANNED, "Banned")
|
||||
|
||||
@@ -189,7 +189,7 @@ class ExposedBacking(private val dataSourceFactory: () -> DataSource, val poolSi
|
||||
|
||||
setParcelOwner(parcel, data.owner)
|
||||
|
||||
for ((profile, privilege) in data.map) {
|
||||
for ((profile, privilege) in data.privilegeMap) {
|
||||
PrivilegesLocalT.setPrivilege(parcel, profile, privilege)
|
||||
}
|
||||
|
||||
@@ -267,7 +267,7 @@ class ExposedBacking(private val dataSourceFactory: () -> DataSource, val poolSi
|
||||
System.arraycopy(source, 0, target, 0, source.size.clampMax(target.size))
|
||||
}
|
||||
|
||||
map = PrivilegesLocalT.readPrivileges(id)
|
||||
privilegeMap = PrivilegesLocalT.readPrivileges(id)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user