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