Skip to content

Commit

Permalink
Fixed IncompatibleClassChangeError on inventory transactions (fixes #571
Browse files Browse the repository at this point in the history
)
  • Loading branch information
Intelli committed Jun 24, 2024
1 parent 40e7f04 commit ce8c194
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ protected static void playerCraftItem(InventoryClickEvent event, boolean isTrade
return;
}

Inventory bottomInventory = event.getView().getBottomInventory();
Inventory bottomInventory = player.getInventory();
if (bottomInventory.getType() != InventoryType.PLAYER) {
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import org.bukkit.inventory.BlockInventoryHolder;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.InventoryView;
import org.bukkit.inventory.ItemStack;

import net.coreprotect.CoreProtect;
Expand Down Expand Up @@ -251,7 +250,12 @@ protected void onInventoryClick(InventoryClickEvent event) {
// Perform this check to prevent triggering onInventoryInteractAsync when a user is just clicking items in their own inventory
Inventory inventory = null;
try {
inventory = event.getView().getInventory(event.getRawSlot());
try {
inventory = event.getView().getInventory(event.getRawSlot());
}
catch (IncompatibleClassChangeError e) {
inventory = event.getClickedInventory();
}
}
catch (Exception e) {
return;
Expand Down Expand Up @@ -288,19 +292,16 @@ protected void onInventoryClick(InventoryClickEvent event) {
protected void onInventoryDragEvent(InventoryDragEvent event) {
boolean movedItem = false;
boolean enderChest = false;
InventoryView inventoryView = event.getView();
for (Integer slot : event.getRawSlots()) {
Inventory inventory = inventoryView.getInventory(slot);
if (inventory == null) {
continue;
}

InventoryHolder inventoryHolder = inventory.getHolder();
enderChest = inventory.equals(event.getWhoClicked().getEnderChest());
if ((inventoryHolder != null && (inventoryHolder instanceof BlockInventoryHolder || inventoryHolder instanceof DoubleChest)) || enderChest) {
movedItem = true;
break;
}
Inventory inventory = event.getInventory();
if (inventory == null || inventory.equals(event.getWhoClicked().getInventory())) {
return;
}

InventoryHolder inventoryHolder = inventory.getHolder();
enderChest = inventory.equals(event.getWhoClicked().getEnderChest());
if ((inventoryHolder != null && (inventoryHolder instanceof BlockInventoryHolder || inventoryHolder instanceof DoubleChest)) || enderChest) {
movedItem = true;
}

if (!movedItem) {
Expand Down

0 comments on commit ce8c194

Please sign in to comment.