diff --git a/main/src/main/java/net/citizensnpcs/trait/ShopTrait.java b/main/src/main/java/net/citizensnpcs/trait/ShopTrait.java index e1b43aa62..15dd8dc94 100644 --- a/main/src/main/java/net/citizensnpcs/trait/ShopTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/ShopTrait.java @@ -241,10 +241,14 @@ public class ShopTrait extends Trait { InventoryMenuSlot prev = ctx.getSlot(4 * 9 + 3); InventoryMenuSlot edit = ctx.getSlot(4 * 9 + 4); InventoryMenuSlot next = ctx.getSlot(4 * 9 + 5); - prev.clear(); if (page > 0) { prev.setItemStack(new ItemStack(Material.FEATHER, 1), "Previous page (" + (page) + ")"); + Consumer prevItemEditor = prev.getClickHandlers().get(0); prev.setClickHandler(evt -> { + if (evt.isShiftClick()) { + prevItemEditor.accept(evt); + return; + } evt.setCancelled(true); changePage(page - 1); }); @@ -252,13 +256,25 @@ public class ShopTrait extends Trait { next.setItemStack(new ItemStack(Material.FEATHER, 1), page + 1 >= shop.pages.size() ? "New page" : "Next page (" + (page + 1) + ")"); + Consumer nextItemEditor = next.getClickHandlers().get(0); next.setClickHandler(evt -> { + if (evt.isShiftClick()) { + nextItemEditor.accept(evt); + return; + } evt.setCancelled(true); changePage(page + 1); }); + Consumer editPageItem = edit.getClickHandlers().get(0); edit.setItemStack(new ItemStack(Material.BOOK), "Edit page"); - edit.setClickHandler(evt -> ctx.getMenu().transition(new NPCShopPageSettings(shop.getOrCreatePage(page)))); + edit.setClickHandler(evt -> { + if (evt.isShiftClick()) { + editPageItem.accept(evt); + return; + } + ctx.getMenu().transition(new NPCShopPageSettings(shop.getOrCreatePage(page))); + }); } @Override