diff options
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/defaultimpl/GlobalAddedDataManagerImpl.kt')
-rw-r--r-- | src/main/kotlin/io/dico/parcels2/defaultimpl/GlobalAddedDataManagerImpl.kt | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/main/kotlin/io/dico/parcels2/defaultimpl/GlobalAddedDataManagerImpl.kt b/src/main/kotlin/io/dico/parcels2/defaultimpl/GlobalAddedDataManagerImpl.kt index 1ac053f..ba54375 100644 --- a/src/main/kotlin/io/dico/parcels2/defaultimpl/GlobalAddedDataManagerImpl.kt +++ b/src/main/kotlin/io/dico/parcels2/defaultimpl/GlobalAddedDataManagerImpl.kt @@ -3,33 +3,32 @@ package io.dico.parcels2.defaultimpl import io.dico.parcels2.* +import io.dico.parcels2.util.alsoIfTrue import java.util.Collections -import java.util.UUID class GlobalAddedDataManagerImpl(val plugin: ParcelsPlugin) : GlobalAddedDataManager { - private val map = mutableMapOf<ParcelOwner, GlobalAddedData>() + private val map = mutableMapOf<PlayerProfile, GlobalAddedData>() - override fun get(owner: ParcelOwner): GlobalAddedData { + override fun get(owner: PlayerProfile): GlobalAddedData { return map[owner] ?: GlobalAddedDataImpl(owner).also { map[owner] = it } } - private inner class GlobalAddedDataImpl(override val owner: ParcelOwner, + private inner class GlobalAddedDataImpl(override val owner: PlayerProfile, data: MutableAddedDataMap = emptyData) : AddedDataHolder(data), GlobalAddedData { private inline var data get() = addedMap; set(value) = run { addedMap = value } private inline val isEmpty get() = data === emptyData - override fun setAddedStatus(uuid: UUID, status: AddedStatus): Boolean { + override fun setAddedStatus(key: StatusKey, status: AddedStatus): Boolean { if (isEmpty) { if (status == AddedStatus.DEFAULT) return false data = mutableMapOf() } - return super.setAddedStatus(uuid, status).also { - if (it) plugin.storage.setGlobalAddedStatus(owner, uuid, status) + return super.setAddedStatus(key, status).alsoIfTrue { + plugin.storage.setGlobalAddedStatus(owner, key, status) } } - } private companion object { |