diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/core/collect/ConditionalSet.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/core/collect/ConditionalSet.kt index 9596f15e9..7b70a3f0a 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/core/collect/ConditionalSet.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/core/collect/ConditionalSet.kt @@ -30,6 +30,10 @@ class ConditionalSet : Set { return backing.entries.iterator().filter { it.value.asBoolean }.map { it.key } } + fun actuallyContains(element: E): Boolean { + return element in backing + } + fun add(element: E, condition: BooleanSupplier): Boolean { if (element in backing) return false backing[element] = condition diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/MatteryMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/MatteryMenu.kt index 702258b2e..0e4260970 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/MatteryMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/MatteryMenu.kt @@ -440,7 +440,7 @@ abstract class MatteryMenu @JvmOverloads protected constructor( * [condition] allows to specify when slot is invisible on GUI (hence being ignored by quick move) */ protected fun addStorageSlot(slot: T, addMapping: Boolean = true, prepend: Boolean = false, condition: BooleanSupplier = BooleanSupplier { true }): T { - if (slot !in externalSlots) { + if (!externalSlots.actuallyContains(slot)) { addSlot(slot) if (prepend)