Use setClickHandler

This commit is contained in:
fullwall 2022-07-27 03:40:46 +08:00
parent d888d13955
commit 1f9931fdff
4 changed files with 14 additions and 17 deletions

View File

@ -36,7 +36,7 @@ public class NPCConfigurator extends InventoryMenuPage {
ConfiguratorInfo info = entry.getValue();
InventoryMenuSlot slot = ctx.getSlot(entry.getKey());
slot.setItemStack(new ItemStack(info.material, 1));
slot.addClickHandler((evt) -> {
slot.setClickHandler((evt) -> {
info.clickHandler.accept(new ConfiguratorEvent(ctx, npc, slot, evt));
});
info.clickHandler.accept(new ConfiguratorEvent(ctx, npc, slot, null));

View File

@ -86,7 +86,7 @@ public class DropsTrait extends Trait {
InventoryMenuSlot slot = ctx.getSlot(i * 9 + j);
slot.setItemStack(new ItemStack(Util.getFallbackMaterial("BARRIER", "FIRE")),
"Drop chance <e>" + chance + "%");
slot.addClickHandler(new PercentageSlotHandler((pct) -> {
slot.setClickHandler(new PercentageSlotHandler((pct) -> {
if (chances.containsKey(islot)) {
chances.put(islot, pct / 100.0);
}

View File

@ -141,7 +141,7 @@ public class ShopTrait extends Trait {
ctx.getSlot(i).clear();
NPCShopItem item = sp.getItem(i);
final int idx = i;
ctx.getSlot(i).addClickHandler(evt -> {
ctx.getSlot(i).setClickHandler(evt -> {
ctx.clearSlots();
NPCShopItem display = item;
if (display == null) {
@ -171,23 +171,21 @@ public class ShopTrait extends Trait {
prev.clear();
if (page > 0) {
prev.setItemStack(new ItemStack(Material.FEATHER, 1), "Previous page (" + (page) + ")");
prev.addClickHandler(evt -> {
prev.setClickHandler(evt -> {
evt.setCancelled(true);
changePage(page - 1);
});
}
next.clear();
next.setItemStack(new ItemStack(Material.FEATHER, 1),
page + 1 >= shop.pages.size() ? "New page" : "Next page (" + (page + 1) + ")");
next.addClickHandler(evt -> {
next.setClickHandler(evt -> {
evt.setCancelled(true);
changePage(page + 1);
});
edit.clear();
edit.setItemStack(new ItemStack(Material.BOOK), "Edit page");
edit.addClickHandler(evt -> {
edit.setClickHandler(evt -> {
evt.setCancelled(true);
ctx.getMenu().transition(new NPCShopPageSettings(shop.getOrCreatePage(page)));
});
@ -309,9 +307,9 @@ public class ShopTrait extends Trait {
ItemStack item = template.createMenuItem();
if (item == null)
continue;
costItems.getSlots().get(pos).clear();
costItems.getSlots().get(pos).setItemStack(item);
costItems.getSlots().get(pos).addClickHandler(event -> {
costItems.getSlots().get(pos).setClickHandler(event -> {
event.setCancelled(true);
ctx.getMenu()
.transition(template.createEditor(
@ -319,7 +317,6 @@ public class ShopTrait extends Trait {
cost -> modified.changeCost(template::manages, cost)));
});
actionItems.getSlots().get(pos).clear();
actionItems.getSlots().get(pos).setItemStack(item);
actionItems.getSlots().get(pos).addClickHandler(event -> {
event.setCancelled(true);
@ -473,7 +470,7 @@ public class ShopTrait extends Trait {
ctx.getSlot(8).clear();
if (shop.pages.size() > 0) {
ctx.getSlot(8).setItemStack(new ItemStack(Material.CHEST, 1), "Open shop");
ctx.getSlot(8).addClickHandler(evt -> {
ctx.getSlot(8).setClickHandler(evt -> {
evt.setCancelled(true);
ctx.getMenu().transition(new NPCShopViewer(shop));
});
@ -537,7 +534,7 @@ public class ShopTrait extends Trait {
continue;
ctx.getSlot(i).setItemStack(item.display);
ctx.getSlot(i).addClickHandler(evt -> {
ctx.getSlot(i).setClickHandler(evt -> {
evt.setCancelled(true);
item.onClick(shop, evt);
});
@ -547,7 +544,7 @@ public class ShopTrait extends Trait {
prev.clear();
if (currentPage > 0) {
prev.setItemStack(new ItemStack(Material.FEATHER, 1), "Previous page (" + (currentPage) + ")");
prev.addClickHandler(evt -> {
prev.setClickHandler(evt -> {
evt.setCancelled(true);
changePage(currentPage - 1);
});
@ -556,7 +553,7 @@ public class ShopTrait extends Trait {
next.clear();
if (currentPage + 1 < shop.pages.size()) {
next.setItemStack(new ItemStack(Material.FEATHER, 1), "Next page (" + (currentPage + 1) + ")");
next.addClickHandler(evt -> {
next.setClickHandler(evt -> {
evt.setCancelled(true);
changePage(currentPage + 1);
});

View File

@ -123,7 +123,7 @@ public abstract class NPCShopAction implements Cloneable {
if (i < base.items.size()) {
slot.setItemStack(base.items.get(i).clone());
}
slot.addClickHandler(event -> {
slot.setClickHandler(event -> {
event.setCancelled(true);
event.setCurrentItem(event.getCursorNonNull());
});
@ -315,7 +315,7 @@ public abstract class NPCShopAction implements Cloneable {
ctx.getSlot(i).setItemStack(new ItemStack(Material.FEATHER), "<f>Set permission",
"Right click to remove\nCurrently: " + base.permissions.get(i));
}
ctx.getSlot(i).addClickHandler(event -> {
ctx.getSlot(i).setClickHandler(event -> {
if (event.isRightClick()) {
if (idx < base.permissions.size()) {
base.permissions.remove(idx);