From 2f1c45cae157f3067a5d315da9c28d706ef4abab Mon Sep 17 00:00:00 2001 From: Intelli Date: Thu, 22 Jul 2021 13:31:08 -0600 Subject: [PATCH] Moved inventory checkTasks to directly before onInventoryInteract This improves performance (allows unused threads to return faster), and resolves issues with pass-through transactions --- .../net/coreprotect/listener/player/HopperPullListener.java | 2 +- .../net/coreprotect/listener/player/HopperPushListener.java | 2 +- .../coreprotect/listener/player/InventoryChangeListener.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/coreprotect/listener/player/HopperPullListener.java b/src/main/java/net/coreprotect/listener/player/HopperPullListener.java index 22b4b82..127ad95 100644 --- a/src/main/java/net/coreprotect/listener/player/HopperPullListener.java +++ b/src/main/java/net/coreprotect/listener/player/HopperPullListener.java @@ -39,7 +39,6 @@ public final class HopperPullListener { final long taskStarted = InventoryChangeListener.tasksStarted.incrementAndGet(); Bukkit.getServer().getScheduler().runTaskAsynchronously(CoreProtect.getInstance(), () -> { try { - InventoryChangeListener.checkTasks(taskStarted); if (sourceHolder == null || destinationHolder == null) { return; } @@ -133,6 +132,7 @@ public final class HopperPullListener { } originalSource[inventoryContents.length] = movedItem; + InventoryChangeListener.checkTasks(taskStarted); InventoryChangeListener.onInventoryInteract("#hopper", sourceInventory, originalSource, null, sourceInventory.getLocation(), true); } catch (Exception e) { diff --git a/src/main/java/net/coreprotect/listener/player/HopperPushListener.java b/src/main/java/net/coreprotect/listener/player/HopperPushListener.java index df8d3b8..480998c 100644 --- a/src/main/java/net/coreprotect/listener/player/HopperPushListener.java +++ b/src/main/java/net/coreprotect/listener/player/HopperPushListener.java @@ -39,7 +39,6 @@ public final class HopperPushListener { final long taskStarted = InventoryChangeListener.tasksStarted.incrementAndGet(); Bukkit.getServer().getScheduler().runTaskAsynchronously(CoreProtect.getInstance(), () -> { try { - InventoryChangeListener.checkTasks(taskStarted); if (sourceHolder == null || destinationHolder == null) { return; } @@ -110,6 +109,7 @@ public final class HopperPushListener { } } + InventoryChangeListener.checkTasks(taskStarted); InventoryChangeListener.onInventoryInteract("#hopper", destinationInventory, originalDestination, null, destinationInventory.getLocation(), true); } catch (Exception e) { diff --git a/src/main/java/net/coreprotect/listener/player/InventoryChangeListener.java b/src/main/java/net/coreprotect/listener/player/InventoryChangeListener.java index 86d05e6..fe03dcb 100644 --- a/src/main/java/net/coreprotect/listener/player/InventoryChangeListener.java +++ b/src/main/java/net/coreprotect/listener/player/InventoryChangeListener.java @@ -227,8 +227,8 @@ public final class InventoryChangeListener extends Queue implements Listener { final long taskStarted = InventoryChangeListener.tasksStarted.incrementAndGet(); Bukkit.getServer().getScheduler().runTaskAsynchronously(CoreProtect.getInstance(), () -> { try { - InventoryChangeListener.checkTasks(taskStarted); Material containerType = (enderChest != true ? null : Material.ENDER_CHEST); + InventoryChangeListener.checkTasks(taskStarted); onInventoryInteract(player.getName(), inventory, containerState, containerType, inventoryLocation, true); } catch (Exception e) {