diff --git a/src/main/java/de/iani/treasurechest/listener/ChestInventoryListener.java b/src/main/java/de/iani/treasurechest/listener/ChestInventoryListener.java index b7c3845..5812996 100644 --- a/src/main/java/de/iani/treasurechest/listener/ChestInventoryListener.java +++ b/src/main/java/de/iani/treasurechest/listener/ChestInventoryListener.java @@ -16,11 +16,8 @@ import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.ChatColor; -import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.block.Block; -import org.bukkit.block.BlockState; -import org.bukkit.block.ShulkerBox; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -34,7 +31,6 @@ import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.BlockStateMeta; import org.bukkit.inventory.meta.Damageable; import org.bukkit.inventory.meta.ItemMeta; @@ -261,59 +257,62 @@ } private FilledInventory addItemsToInventory(Inventory inventory, ItemStack[] items) { - int itemCount = 0; - for (ItemStack itemStack : items) { - if (itemStack != null && itemStack.getType() != Material.AIR) { - itemCount++; - } - } - - int inventorySpace = 0; - for (ItemStack shulkerItem : inventory.getContents()) { - if (shulkerItem == null || shulkerItem.getType() == Material.AIR) { - inventorySpace++; - } - } - if (inventorySpace >= itemCount) { - inventory.addItem(items); - return FilledInventory.PlayerInventory; - } - - for (ItemStack itemStack : items) { - if (itemStack.getItemMeta() instanceof BlockStateMeta blockStateMeta) { - BlockState blockState = blockStateMeta.getBlockState(); - if (blockState instanceof ShulkerBox) { - return FilledInventory.ShulkerInShulkerError; - } - } - } - - for (ItemStack inventoryItemStack : inventory.getContents()) { - if (inventoryItemStack != null) { - if (inventoryItemStack.getItemMeta() instanceof BlockStateMeta blockStateMeta) { - BlockState blockState = blockStateMeta.getBlockState(); - if (blockState instanceof ShulkerBox shulkerBox) { - ItemStack[] shulkerContents = shulkerBox.getSnapshotInventory().getStorageContents(); - boolean shulkerEmpty = true; - for (ItemStack shulkerItem : shulkerContents) { - if (shulkerItem != null && shulkerItem.getType() != Material.AIR) { - shulkerEmpty = false; - } - } - if (shulkerEmpty) { - shulkerBox.getSnapshotInventory().setStorageContents(items); - blockStateMeta.setBlockState(blockState); - inventoryItemStack.setItemMeta(blockStateMeta); - return FilledInventory.ShulkerBox; - } - } - } - } - } - return null; + return inventory.addItem(items).isEmpty() ? FilledInventory.PlayerInventory : null; + // int itemCount = 0; + // for (ItemStack itemStack : items) { + // if (itemStack != null && itemStack.getType() != Material.AIR) { + // itemCount++; + // } + // } + // + // int inventorySpace = 0; + // for (ItemStack shulkerItem : inventory.getContents()) { + // if (shulkerItem == null || shulkerItem.getType() == Material.AIR) { + // inventorySpace++; + // } + // } + // if (inventorySpace >= itemCount) { + // inventory.addItem(items); + // return FilledInventory.PlayerInventory; + // } + // + // for (ItemStack itemStack : items) { + // if (itemStack.getItemMeta() instanceof BlockStateMeta blockStateMeta) { + // BlockState blockState = blockStateMeta.getBlockState(); + // if (blockState instanceof ShulkerBox) { + // return FilledInventory.ShulkerInShulkerError; + // } + // } + // } + // + // for (ItemStack inventoryItemStack : inventory.getContents()) { + // if (inventoryItemStack != null) { + // if (inventoryItemStack.getItemMeta() instanceof BlockStateMeta blockStateMeta) { + // BlockState blockState = blockStateMeta.getBlockState(); + // if (blockState instanceof ShulkerBox shulkerBox) { + // ItemStack[] shulkerContents = shulkerBox.getSnapshotInventory().getStorageContents(); + // boolean shulkerEmpty = true; + // for (ItemStack shulkerItem : shulkerContents) { + // if (shulkerItem != null && shulkerItem.getType() != Material.AIR) { + // shulkerEmpty = false; + // } + // } + // if (shulkerEmpty) { + // shulkerBox.getSnapshotInventory().setStorageContents(items); + // blockStateMeta.setBlockState(blockState); + // inventoryItemStack.setItemMeta(blockStateMeta); + // return FilledInventory.ShulkerBox; + // } + // } + // } + // } + // } + // return null; } private enum FilledInventory { - PlayerInventory, ShulkerBox, ShulkerInShulkerError + PlayerInventory, + ShulkerBox, + ShulkerInShulkerError } }