From 4a291cb936d42ff50f439aff7c7757a30eb43797 Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Tue, 5 Dec 2023 22:09:08 -0800 Subject: [PATCH] Fix null pointer exception that occurs when certain items are added --- src/main/java/emu/lunarcore/game/enums/ItemMainType.java | 2 +- src/main/java/emu/lunarcore/game/inventory/Inventory.java | 5 ++++- .../server/packet/send/PacketPlayerSyncScNotify.java | 5 ++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/emu/lunarcore/game/enums/ItemMainType.java b/src/main/java/emu/lunarcore/game/enums/ItemMainType.java index f5bf0da..60cc130 100644 --- a/src/main/java/emu/lunarcore/game/enums/ItemMainType.java +++ b/src/main/java/emu/lunarcore/game/enums/ItemMainType.java @@ -19,7 +19,7 @@ public enum ItemMainType { private InventoryTabType tabType; private ItemMainType(int value) { - this.val = value; + this(value, InventoryTabType.NONE); } private ItemMainType(int value, InventoryTabType tabType) { diff --git a/src/main/java/emu/lunarcore/game/inventory/Inventory.java b/src/main/java/emu/lunarcore/game/inventory/Inventory.java index 98923bf..6309e21 100644 --- a/src/main/java/emu/lunarcore/game/inventory/Inventory.java +++ b/src/main/java/emu/lunarcore/game/inventory/Inventory.java @@ -62,7 +62,10 @@ public class Inventory extends BasePlayerManager { } public InventoryTab getTab(InventoryTabType type) { - if (type == null) return null; + if (type == null || type == InventoryTabType.NONE) { + return null; + } + return this.inventoryTypes.get(type.getVal()); } diff --git a/src/main/java/emu/lunarcore/server/packet/send/PacketPlayerSyncScNotify.java b/src/main/java/emu/lunarcore/server/packet/send/PacketPlayerSyncScNotify.java index fb2b19f..a236512 100644 --- a/src/main/java/emu/lunarcore/server/packet/send/PacketPlayerSyncScNotify.java +++ b/src/main/java/emu/lunarcore/server/packet/send/PacketPlayerSyncScNotify.java @@ -103,6 +103,9 @@ public class PacketPlayerSyncScNotify extends BasePacket { private void addItemToProto(PlayerSyncScNotify data, GameItem item) { switch (item.getExcel().getItemMainType().getTabType()) { + case MATERIAL -> { + data.addMaterialList(item.toMaterialProto()); + } case RELIC -> { if (item.getCount() > 0) { data.addRelicList(item.toRelicProto()); @@ -118,7 +121,7 @@ public class PacketPlayerSyncScNotify extends BasePacket { } } default -> { - data.addMaterialList(item.toMaterialProto()); + // Skip } } }