From 3c8429aa6d69ae44ff1aeb694b24463c6efa6e23 Mon Sep 17 00:00:00 2001 From: fullwall Date: Sun, 25 Feb 2024 01:07:30 +0800 Subject: [PATCH] Nullcheck getShopType() --- .../net/citizensnpcs/trait/ShopTrait.java | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/main/src/main/java/net/citizensnpcs/trait/ShopTrait.java b/main/src/main/java/net/citizensnpcs/trait/ShopTrait.java index a4af620b5..339c25ba9 100644 --- a/main/src/main/java/net/citizensnpcs/trait/ShopTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/ShopTrait.java @@ -176,7 +176,7 @@ public class ShopTrait extends Trait { } public ShopType getShopType() { - return type; + return type == null ? type = ShopType.DEFAULT : type; } public String getTitle() { @@ -769,16 +769,19 @@ public class ShopTrait extends Trait { @MenuSlot(slot = { 0, 8 }, material = Material.CHEST, amount = 1, title = "Set shop type") public void onSetInventoryType(InventoryMenuSlot slot, CitizensInventoryClickEvent event) { - ctx.getMenu() - .transition(InputMenus.picker("Set shop type", - (Choice choice) -> shop.setShopType(choice.getValue()), - Choice.of(ShopType.DEFAULT, Material.CHEST, "Default (5x9 chest)", - shop.type == ShopType.DEFAULT), - Choice.of(ShopType.CHEST_4X9, Material.CHEST, "4x9 chest", shop.type == ShopType.CHEST_4X9), - Choice.of(ShopType.CHEST_3X9, Material.CHEST, "3x9 chest", shop.type == ShopType.CHEST_3X9), - Choice.of(ShopType.CHEST_2X9, Material.CHEST, "2x9 chest", shop.type == ShopType.CHEST_2X9), - Choice.of(ShopType.CHEST_1X9, Material.CHEST, "1x9 chest", shop.type == ShopType.CHEST_1X9), - Choice.of(ShopType.TRADER, Material.EMERALD, "Trader", shop.type == ShopType.TRADER))); + ctx.getMenu().transition(InputMenus.picker("Set shop type", + (Choice choice) -> shop.setShopType(choice.getValue()), + Choice.of(ShopType.DEFAULT, Material.CHEST, "Default (5x9 chest)", + shop.getShopType() == ShopType.DEFAULT), + Choice.of(ShopType.CHEST_4X9, Material.CHEST, "4x9 chest", + shop.getShopType() == ShopType.CHEST_4X9), + Choice.of(ShopType.CHEST_3X9, Material.CHEST, "3x9 chest", + shop.getShopType() == ShopType.CHEST_3X9), + Choice.of(ShopType.CHEST_2X9, Material.CHEST, "2x9 chest", + shop.getShopType() == ShopType.CHEST_2X9), + Choice.of(ShopType.CHEST_1X9, Material.CHEST, "1x9 chest", + shop.getShopType() == ShopType.CHEST_1X9), + Choice.of(ShopType.TRADER, Material.EMERALD, "Trader", shop.getShopType() == ShopType.TRADER))); } @MenuSlot(slot = { 0, 4 }, material = Material.NAME_TAG, amount = 1) @@ -916,7 +919,7 @@ public class ShopTrait extends Trait { if (!evt.getView().equals(view)) return; evt.setCancelled(true); - if (evt.getSlotType() != SlotType.RESULT) + if (evt.getSlotType() != SlotType.RESULT || !evt.getAction().name().contains("PICKUP")) return; // TODO: work around crafting slot limitations in minecraft player.getInventory().addItem(evt.getClickedInventory().getItem(0));