diff --git a/src/main/java/de/bixilon/minosoft/data/container/click/SimpleContainerAction.kt b/src/main/java/de/bixilon/minosoft/data/container/click/SimpleContainerAction.kt index 599b28a1a..c6bf12033 100644 --- a/src/main/java/de/bixilon/minosoft/data/container/click/SimpleContainerAction.kt +++ b/src/main/java/de/bixilon/minosoft/data/container/click/SimpleContainerAction.kt @@ -82,6 +82,7 @@ class SimpleContainerAction( target.item._count -= subtract floatingItem.item._count += subtract } + target.commit(false) if (floatingItem._valid) { container.floatingItem = floatingItem diff --git a/src/main/java/de/bixilon/minosoft/data/container/stack/ItemStack.kt b/src/main/java/de/bixilon/minosoft/data/container/stack/ItemStack.kt index aa21918a8..cccd8126c 100644 --- a/src/main/java/de/bixilon/minosoft/data/container/stack/ItemStack.kt +++ b/src/main/java/de/bixilon/minosoft/data/container/stack/ItemStack.kt @@ -198,11 +198,13 @@ class ItemStack { lock.lock() } - fun commit() { + fun commit(unlock: Boolean = true) { if (!_valid) { holder?.container?._validate() } - lock.unlock() + if (unlock) { + lock.unlock() + } revision++ holder?.container?.apply { revision++ } // increase revision after unlock to prevent deadlock }