diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/AddItemsPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/AddItemsPanel.java index e7f15cb..54868ce 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/AddItemsPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/AddItemsPanel.java @@ -36,12 +36,7 @@ public class AddItemsPanel extends PanelHandler { @Override public void initializePanel(PanelBuilder panelBuilder) { - PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter(); - panelBuilderCounter - .addSlotCounter("Cancel", getCancelAction()) - .addSlotCounter("Accept", getAcceptAction()) - .addSlotCounter("SelectedSlot", getSelectedSlotAction(panelBuilderCounter)); } @Override @@ -56,7 +51,13 @@ public class AddItemsPanel extends PanelHandler { .setCancelClick(true) .setCancelLowerClick(false); - ServerUtils.get().runTaskAsync(() -> + PanelBuilderCounter counter = panel.getPanelBuilderCounter(); + + ServerUtils.get().runTaskAsync(() -> { + counter.getSlotsWith("Accept").forEach(slot -> panel.setOnClick(slot, getAcceptAction(panel))); + counter.getSlotsWith("Cancel").forEach(slot -> panel.setOnClick(slot, getCancelAction(panel))); + counter.getSlotsWith("SelectedSlot").forEach(slot -> panel.setOnClick(slot, getSelectedSlotAction(counter, panel))); + panel.setOnClick(event -> { Player playerWhoClicked = (Player) event.getWhoClicked(); UUID uuid = playerWhoClicked.getUniqueId(); @@ -75,14 +76,18 @@ public class AddItemsPanel extends PanelHandler { panel.getPanelBuilderCounter().getSlotsWith("SelectedSlot").forEach(s -> event.getInventory().setItem(s, itemStack.clone())); event.getClickedInventory().setItem(slot, new ItemStack(Material.AIR)); } - }) - ); + }); + }); panel.openFor(player); } - private ClickAction getSelectedSlotAction(PanelBuilderCounter panelBuilderCounter) { + private ClickAction getSelectedSlotAction(PanelBuilderCounter panelBuilderCounter, Panel panel) { return event -> { + int rawSlot = event.getRawSlot(); + + if(panel.isLowerClick(rawSlot)) return; + Player player = (Player) event.getWhoClicked(); UUID uuid = player.getUniqueId(); @@ -95,8 +100,12 @@ public class AddItemsPanel extends PanelHandler { }; } - private ClickAction getAcceptAction() { + private ClickAction getAcceptAction(Panel panel) { return event -> { + int rawSlot = event.getRawSlot(); + + if(panel.isLowerClick(rawSlot)) return; + Player player = (Player) event.getWhoClicked(); UUID uuid = player.getUniqueId(); @@ -110,8 +119,12 @@ public class AddItemsPanel extends PanelHandler { }; } - private ClickAction getCancelAction() { + private ClickAction getCancelAction(Panel panel) { return event -> { + int rawSlot = event.getRawSlot(); + + if(panel.isLowerClick(rawSlot)) return; + Player player = (Player) event.getWhoClicked(); UUID uuid = player.getUniqueId(); diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/utils/EnchantFinder.java b/plugin-modules/Core/src/com/songoda/epicbosses/utils/EnchantFinder.java index e4e191b..148b538 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/utils/EnchantFinder.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/utils/EnchantFinder.java @@ -70,9 +70,13 @@ public enum EnchantFinder { } public static EnchantFinder getByEnchant(Enchantment enchantment) { + if(enchantment == null) return null; + for(EnchantFinder enchantFinder : values()) { Enchantment enchantFinderEnchant = enchantFinder.getEnchantment(); + if(enchantFinderEnchant == null) continue; + if(enchantFinderEnchant.equals(enchantment)) return enchantFinder; } diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/utils/itemstack/converters/EnchantConverter.java b/plugin-modules/Core/src/com/songoda/epicbosses/utils/itemstack/converters/EnchantConverter.java index 514775c..d630207 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/utils/itemstack/converters/EnchantConverter.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/utils/itemstack/converters/EnchantConverter.java @@ -25,9 +25,7 @@ public class EnchantConverter implements IConverter, Map { } public boolean isLowerClick(int rawSlot) { - return rawSlot > inventory.getSize(); + return rawSlot >= inventory.getSize(); } /** diff --git a/pom.xml b/pom.xml index 686dd86..3de27f6 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ - 1.0.2-U1 + 1.0.2-U2 EpicBosses com.songoda.epicbosses.CustomBosses AMinecraftDev