Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,10 @@ public void onRender(Player player, InventoryEngine inventory) {
}

private void setVaultItem(Integer slot, Vault vault, VaultItem vaultItem, InventoryEngine inventory, Player player) {
if (!isValidInventorySlot(slot)) {
this.plugin.getLogger().warning("Skip rendering invalid vault slot " + slot + " for vault " + vault.getVaultId());
return;
}
ItemStack itemStack = vaultItem.getDisplayItemStack(player, this.plugin.getComponentMessage());
inventory.addItem(slot, itemStack).setClick(event -> {
event.setCancelled(true);
Expand Down Expand Up @@ -101,13 +105,20 @@ private void onBagClick(Player player, Vault vault, VaultItem vaultItem, ClickTy
}

private void updateInventoryBag(Player player, VaultItem bagItem, int slot, InventoryEngine inventoryDefault, Vault vault) {
if (!isValidInventorySlot(slot)) {
return;
}

if (bagItem.getQuantity() <= 0 || !vault.contains(slot)) {
releaseSlot(inventoryDefault, slot);
} else
inventoryDefault.getSpigotInventory().setItem(slot, bagItem.getDisplayItemStack(player, this.plugin.getComponentMessage()));
}

protected void releaseSlot(InventoryEngine inventory, int slot) {
if (!isValidInventorySlot(slot)) {
return;
}
inventory.addItem(slot, new ItemStack(Material.AIR)).setClick(event -> event.setCancelled(true));
}

Expand Down Expand Up @@ -215,6 +226,10 @@ public void onDrag(InventoryDragEvent event, Player player, InventoryEngine inve
*/
private boolean isValidSlot(int slot, Player player) {

if (!isValidInventorySlot(slot)) {
return false;
}

int startSlot = getStartSlot(player);

if (startSlot > 0 && startSlot < this.slots.size()) {
Expand All @@ -223,6 +238,10 @@ private boolean isValidSlot(int slot, Player player) {
return true;
}

private boolean isValidInventorySlot(Integer slot) {
return slot != null && slot >= 0 && slot < this.slots.size();
}

/**
* Returns the start slot for the given player's target vault.
*
Expand Down