From 5a13e181bb2d60773c859a30b32b9fe2919b5a63 Mon Sep 17 00:00:00 2001 From: Bixilon Date: Tue, 15 Nov 2022 16:22:35 +0100 Subject: [PATCH] fix some container actions/tests --- .../data/container/click/CloneContainerActionTest.kt | 2 +- .../data/container/click/FastMoveContainerActionTest.kt | 3 +-- .../data/container/click/PickAllContainerActionTest.kt | 6 +++--- .../minosoft/data/container/click/PickAllContainerAction.kt | 3 +++ 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/integration-test/kotlin/de/bixilon/minosoft/data/container/click/CloneContainerActionTest.kt b/src/integration-test/kotlin/de/bixilon/minosoft/data/container/click/CloneContainerActionTest.kt index 29cb6fe7e..babbb5b0f 100644 --- a/src/integration-test/kotlin/de/bixilon/minosoft/data/container/click/CloneContainerActionTest.kt +++ b/src/integration-test/kotlin/de/bixilon/minosoft/data/container/click/CloneContainerActionTest.kt @@ -85,7 +85,7 @@ class CloneContainerActionTest { container.invokeAction(CloneContainerAction(8)) assertEquals(container.floatingItem, ItemStack(EggTestO.item, count = 16)) // TODO: Not sending any packet in 1.18.2? - connection.assertOnlyPacket(ContainerClickC2SP(9, container.serverRevision, 8, 3, 0, 0, slotsOf(), ItemStack(EggTestO.item, count = 64))) + connection.assertOnlyPacket(ContainerClickC2SP(9, container.serverRevision, 8, 3, 0, 0, slotsOf(), ItemStack(EggTestO.item, count = 16))) } fun testRevert() { diff --git a/src/integration-test/kotlin/de/bixilon/minosoft/data/container/click/FastMoveContainerActionTest.kt b/src/integration-test/kotlin/de/bixilon/minosoft/data/container/click/FastMoveContainerActionTest.kt index 2b4dfd89a..f933b9f42 100644 --- a/src/integration-test/kotlin/de/bixilon/minosoft/data/container/click/FastMoveContainerActionTest.kt +++ b/src/integration-test/kotlin/de/bixilon/minosoft/data/container/click/FastMoveContainerActionTest.kt @@ -57,8 +57,7 @@ class FastMoveContainerActionTest { container[0] = ItemStack(AppleTestO.item, 9) container.invokeAction(FastMoveContainerAction(0)) assertNull(container.floatingItem) - assertNull(container[0]) - assertEquals(container[62], ItemStack(AppleTestO.item, 9)) + assertEquals(container.slots, slotsOf(62 to ItemStack(AppleTestO.item, 9))) connection.assertOnlyPacket(ContainerClickC2SP(9, container.serverRevision, 0, 1, 0, 0, slotsOf(62 to null, 0 to ItemStack(AppleTestO.item, count = 9)), null)) } diff --git a/src/integration-test/kotlin/de/bixilon/minosoft/data/container/click/PickAllContainerActionTest.kt b/src/integration-test/kotlin/de/bixilon/minosoft/data/container/click/PickAllContainerActionTest.kt index 5c7da2673..e16ac0e45 100644 --- a/src/integration-test/kotlin/de/bixilon/minosoft/data/container/click/PickAllContainerActionTest.kt +++ b/src/integration-test/kotlin/de/bixilon/minosoft/data/container/click/PickAllContainerActionTest.kt @@ -106,7 +106,7 @@ class PickAllContainerActionTest { container[0] = ItemStack(AppleTestO.item, 64) container[5] = ItemStack(AppleTestO.item, 2) container.invokeAction(PickAllContainerAction(5)) - assertEquals(container[0], ItemStack(AppleTestO.item, count = 62)) + assertEquals(container[0], ItemStack(AppleTestO.item, count = 2)) assertNull(container[5]) assertEquals(container.floatingItem, ItemStack(AppleTestO.item, count = 64)) connection.assertOnlyPacket(ContainerClickC2SP(9, container.serverRevision, 5, 6, 0, 0, slotsOf(0 to ItemStack(AppleTestO.item, count = 2), 5 to null), ItemStack(AppleTestO.item, count = 64))) @@ -116,7 +116,7 @@ class PickAllContainerActionTest { val connection = createConnection() val container = createContainer(connection) container[0] = ItemStack(AppleTestO.item, 7) - val action = PickAllContainerAction(5) + val action = PickAllContainerAction(0) container.invokeAction(action) assertNull(container[0]) assertEquals(container.floatingItem, ItemStack(AppleTestO.item, count = 7)) @@ -130,7 +130,7 @@ class PickAllContainerActionTest { val container = createContainer(connection) container[0] = ItemStack(AppleTestO.item, 7) container[1] = ItemStack(AppleTestO.item, 8) - val action = PickAllContainerAction(5) + val action = PickAllContainerAction(0) container.invokeAction(action) assertNull(container[0]) assertNull(container[1]) diff --git a/src/main/java/de/bixilon/minosoft/data/container/click/PickAllContainerAction.kt b/src/main/java/de/bixilon/minosoft/data/container/click/PickAllContainerAction.kt index 1180f3618..7624f0830 100644 --- a/src/main/java/de/bixilon/minosoft/data/container/click/PickAllContainerAction.kt +++ b/src/main/java/de/bixilon/minosoft/data/container/click/PickAllContainerAction.kt @@ -62,6 +62,9 @@ class PickAllContainerAction( } container._validate() container.floatingItem = clicked + if (previous == clicked) { + return + } connection.sendPacket(ContainerClickC2SP(containerId, container.serverRevision, this.slot, 6, 0, container.createAction(this), changes, previous)) } finally { container.commit()