diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.kt index e51b3e857..1599f9f19 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.kt @@ -466,6 +466,11 @@ abstract class MatteryScreen(menu: T, inventory: Inventory, tit } } + override fun onClose() { + super.onClose() + panels.forEach { it.markRemoved() } + } + public override fun recalculateQuickCraftRemaining() { super.recalculateQuickCraftRemaining() } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/EditablePanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/EditablePanel.kt index b18ff638d..cccf0c93e 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/EditablePanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/EditablePanel.kt @@ -1782,6 +1782,14 @@ open class EditablePanel @JvmOverloads constructor( protected open fun beforeRemoved() {} protected open fun onRemoved() {} + internal fun markRemoved() { + if (!isRemoved) { + isRemoved = true + onRemoved() + children.forEach { it.markRemoved() } + } + } + fun remove() { if (isRemoved) { return