+ 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:
Charles 2019-01-24 01:18:35 +08:00
parent 5fad88bb5c
commit 3198dafd4b
5 changed files with 31 additions and 16 deletions

View File

@ -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();

View File

@ -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;
}

View File

@ -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);
}

View File

@ -312,7 +312,7 @@ public class Panel implements Listener, ICloneable<Panel> {
}
public boolean isLowerClick(int rawSlot) {
return rawSlot > inventory.getSize();
return rawSlot >= inventory.getSize();
}
/**

View File

@ -19,7 +19,7 @@
</modules>
<properties>
<plugin.version>1.0.2-U1</plugin.version>
<plugin.version>1.0.2-U2</plugin.version>
<plugin.name>EpicBosses</plugin.name>
<plugin.main>com.songoda.epicbosses.CustomBosses</plugin.main>
<plugin.author>AMinecraftDev</plugin.author>