mirror of
https://github.com/songoda/EpicBosses.git
synced 2025-03-12 14:39:05 +01:00
1.0.2-U2
+ Fixed issue with AddItems Panel duplicating buttons to the bottom panel + Fixed issue with Lower versions (running Legacy build) having issues with enchanted items
This commit is contained in:
parent
5fad88bb5c
commit
3198dafd4b
@ -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();
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -25,9 +25,7 @@ public class EnchantConverter implements IConverter<List<String>, Map<Enchantmen
|
||||
Enchantment enchantment = entry.getKey();
|
||||
EnchantFinder enchantFinder = EnchantFinder.getByEnchant(enchantment);
|
||||
|
||||
if(enchantFinder == null) {
|
||||
throw new EnumConstantNotPresentException(EnchantFinder.class, "EnchantFinder couldn't find a value for " + enchantment.getName() + ". Please report this to @AMinecraftDev so he can fix it.");
|
||||
}
|
||||
if(enchantFinder == null) continue;
|
||||
|
||||
enchants.add(enchantFinder.getFancyName() + ":" + level);
|
||||
}
|
||||
|
@ -312,7 +312,7 @@ public class Panel implements Listener, ICloneable<Panel> {
|
||||
}
|
||||
|
||||
public boolean isLowerClick(int rawSlot) {
|
||||
return rawSlot > inventory.getSize();
|
||||
return rawSlot >= inventory.getSize();
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user