воцыа9гыаоу2п

ппи8ва729уц2улв
цыпцуле94пыва
ашпцувлцйа
аша94аца
в9н3р3
ццццццццццццццццццццццццццццвааупъма
аа
пм
м

мравркр
ук
ц
йке
пцу
рпыв
пр
варп
This commit is contained in:
DBotThePony 2024-09-14 18:55:09 +07:00
parent fdf8e47e5e
commit a06fd6a31a
Signed by: DBot
GPG Key ID: DCC23B5715498507

View File

@ -4,6 +4,7 @@ import net.minecraft.core.HolderLookup
import net.minecraft.nbt.CompoundTag
import net.minecraft.nbt.ListTag
import net.neoforged.neoforge.common.util.INBTSerializable
import org.apache.logging.log4j.LogManager
import ru.dbotthepony.mc.otm.core.nbt.contains
import java.util.UUID
@ -33,15 +34,14 @@ class UUIDIntModifiersMap(private val observer: (Int) -> Unit, private val backi
}
operator fun set(key: UUID, value: Int): Boolean {
val old = backingMap.put(key, value)
if (old == value) {
return false
}
ignoreRecompute = true
try {
val old = backingMap.put(key, value)
if (old == value)
return false
this.value += value - (old ?: 0)
observer.invoke(this.value)
return true
@ -113,7 +113,13 @@ class UUIDIntModifiersMap(private val observer: (Int) -> Unit, private val backi
if (value.contains("key", "value")) {
val int = value.getInt("value")
backingMap.put(value.getUUID("key"), int)
val previous = backingMap.put(value.getUUID("key"), int)
if (previous != null) {
LOGGER.warn("Duplicate modifier in UUID Int Modifier Map with UUID ${value.getUUID("key")}")
this.value -= previous
}
this.value += int
}
}
@ -125,4 +131,8 @@ class UUIDIntModifiersMap(private val observer: (Int) -> Unit, private val backi
ignoreRecompute = false
}
}
companion object {
private val LOGGER = LogManager.getLogger()
}
}