From 6c8a5777011e71b9fcf46a129209d3677f5e8c49 Mon Sep 17 00:00:00 2001 From: William Date: Mon, 17 Jun 2024 22:14:42 +0100 Subject: [PATCH] fix: suppress `IncompatibleClassChangeError` on paper Paper plugins don't get run through bytecode fixups by Spigot's Commodore. Spigot changed InventoryView to an interface recently, which causes this to be thrown. --- .../net/william278/husksync/data/BukkitData.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/bukkit/src/main/java/net/william278/husksync/data/BukkitData.java b/bukkit/src/main/java/net/william278/husksync/data/BukkitData.java index 2663a830..62bf87f1 100644 --- a/bukkit/src/main/java/net/william278/husksync/data/BukkitData.java +++ b/bukkit/src/main/java/net/william278/husksync/data/BukkitData.java @@ -161,11 +161,15 @@ public abstract class BukkitData implements Data { } private void clearInventoryCraftingSlots(@NotNull Player player) { - final org.bukkit.inventory.Inventory inventory = player.getOpenInventory().getTopInventory(); - if (inventory.getType() == InventoryType.CRAFTING) { - for (int slot = 0; slot < 5; slot++) { - inventory.setItem(slot, null); + try { + final org.bukkit.inventory.Inventory inventory = player.getOpenInventory().getTopInventory(); + if (inventory.getType() == InventoryType.CRAFTING) { + for (int slot = 0; slot < 5; slot++) { + inventory.setItem(slot, null); + } } + } catch (Throwable e) { + // Ignore any exceptions } }