From c03a2992ef1987ff1025e65a12759c398b17df76 Mon Sep 17 00:00:00 2001 From: themode Date: Wed, 4 Nov 2020 15:41:56 +0100 Subject: [PATCH] Stop the whole click process if the event is canceled --- src/main/java/net/minestom/server/instance/Chunk.java | 2 ++ .../server/instance/MinestomBasicChunkLoader.java | 2 +- .../inventory/click/InventoryClickProcessor.java | 10 +++++----- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/minestom/server/instance/Chunk.java b/src/main/java/net/minestom/server/instance/Chunk.java index 959edf807..6f144b39b 100644 --- a/src/main/java/net/minestom/server/instance/Chunk.java +++ b/src/main/java/net/minestom/server/instance/Chunk.java @@ -293,6 +293,8 @@ public abstract class Chunk implements Viewable, DataContainer { /** * Gets if this chunk will or had been loaded with a {@link ChunkGenerator}. + *

+ * If false, the chunk will be entirely empty when loaded. * * @return true if this chunk is affected by a {@link ChunkGenerator} */ diff --git a/src/main/java/net/minestom/server/instance/MinestomBasicChunkLoader.java b/src/main/java/net/minestom/server/instance/MinestomBasicChunkLoader.java index c0539d2e3..f87b33c1c 100644 --- a/src/main/java/net/minestom/server/instance/MinestomBasicChunkLoader.java +++ b/src/main/java/net/minestom/server/instance/MinestomBasicChunkLoader.java @@ -66,7 +66,7 @@ public class MinestomBasicChunkLoader implements IChunkLoader { } @Override - public boolean loadChunk(@NotNull Instance instance, int chunkX, int chunkZ, ChunkCallback callback) { + public boolean loadChunk(@NotNull Instance instance, int chunkX, int chunkZ, @Nullable ChunkCallback callback) { final StorageLocation storageLocation = instanceContainer.getStorageLocation(); final byte[] bytes = storageLocation == null ? null : storageLocation.get(getChunkKey(chunkX, chunkZ)); diff --git a/src/main/java/net/minestom/server/inventory/click/InventoryClickProcessor.java b/src/main/java/net/minestom/server/inventory/click/InventoryClickProcessor.java index 7304b8b6e..946751fae 100644 --- a/src/main/java/net/minestom/server/inventory/click/InventoryClickProcessor.java +++ b/src/main/java/net/minestom/server/inventory/click/InventoryClickProcessor.java @@ -199,7 +199,7 @@ public class InventoryClickProcessor { clickResult = startCondition(clickResult, inventory, player, index, ClickType.SHIFT_CLICK, item, cursor); if (clickResult.isCancel()) - continue; + break; final int amount = itemRule.getAmount(item); if (!clickedRule.canApply(clicked, amount + 1)) @@ -230,7 +230,7 @@ public class InventoryClickProcessor { clickResult = startCondition(clickResult, inventory, player, index, ClickType.SHIFT_CLICK, item, cursor); if (clickResult.isCancel()) - continue; + break; // Switch itemSetter.accept(index, resultClicked); @@ -283,7 +283,7 @@ public class InventoryClickProcessor { clickResult = startCondition(clickResult, inventory, player, s, ClickType.DRAGGING, slotItem, cursor); if (clickResult.isCancel()) - continue; + break; final int maxSize = stackingRule.getMaxSize(); if (stackingRule.canBeStacked(draggedItem, slotItem)) { @@ -323,7 +323,7 @@ public class InventoryClickProcessor { clickResult = startCondition(clickResult, inventory, player, s, ClickType.DRAGGING, slotItem, cursor); if (clickResult.isCancel()) - continue; + break; if (stackingRule.canBeStacked(draggedItem, slotItem)) { final int amount = slotItem.getAmount() + 1; @@ -399,7 +399,7 @@ public class InventoryClickProcessor { if (cursorRule.canBeStacked(cursor, item)) { clickResult = startCondition(clickResult, inventory, player, index, ClickType.DOUBLE_CLICK, item, cursor); if (clickResult.isCancel()) - continue; + break; final int totalAmount = amount + cursorRule.getAmount(item); if (!cursorRule.canApply(cursor, totalAmount)) {