From e5ffb1743afc4081a981712a706f1bd09f28aa98 Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Sat, 13 Dec 2025 16:11:51 -0800 Subject: [PATCH] Fix wrong materials used for emblem generation --- .../java/emu/nebula/data/resources/CharGemDef.java | 5 ----- .../java/emu/nebula/data/resources/CharacterDef.java | 4 ---- .../emu/nebula/game/character/CharacterStorage.java | 6 ++++-- .../emu/nebula/game/character/GameCharacter.java | 12 ++++++++++-- src/main/java/emu/nebula/net/GameSession.java | 3 ++- 5 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/main/java/emu/nebula/data/resources/CharGemDef.java b/src/main/java/emu/nebula/data/resources/CharGemDef.java index 57b09e7..8006ebd 100644 --- a/src/main/java/emu/nebula/data/resources/CharGemDef.java +++ b/src/main/java/emu/nebula/data/resources/CharGemDef.java @@ -1,7 +1,6 @@ package emu.nebula.data.resources; import emu.nebula.data.BaseDef; -import emu.nebula.data.GameData; import emu.nebula.data.ResourceType; import lombok.Getter; @@ -17,8 +16,4 @@ public class CharGemDef extends BaseDef { public int getId() { return Id; } - - public CharGemSlotControlDef getControlData() { - return GameData.getCharGemSlotControlDataTable().get(this.Type); - } } diff --git a/src/main/java/emu/nebula/data/resources/CharacterDef.java b/src/main/java/emu/nebula/data/resources/CharacterDef.java index 59bbf00..a0ffab8 100644 --- a/src/main/java/emu/nebula/data/resources/CharacterDef.java +++ b/src/main/java/emu/nebula/data/resources/CharacterDef.java @@ -1,6 +1,5 @@ package emu.nebula.data.resources; -import java.util.Arrays; import java.util.List; import emu.nebula.data.BaseDef; @@ -62,8 +61,5 @@ public class CharacterDef extends BaseDef { public void onLoad() { this.elementType = ElementType.getByValue(this.EET); this.chats = new ObjectArrayList<>(); - - // Sort gem slots - this.GemSlots = Arrays.stream(this.GemSlots).sorted().toArray(); } } diff --git a/src/main/java/emu/nebula/game/character/CharacterStorage.java b/src/main/java/emu/nebula/game/character/CharacterStorage.java index 1ae441c..954fa1b 100644 --- a/src/main/java/emu/nebula/game/character/CharacterStorage.java +++ b/src/main/java/emu/nebula/game/character/CharacterStorage.java @@ -275,7 +275,8 @@ public class CharacterStorage extends PlayerManager { this.updateCharHandbook = false; this.getPlayer().addNextPackage( NetMsgId.handbook_change_notify, - this.getPlayer().getCharacters().getCharacterHandbook()); + this.getCharacterHandbook() + ); } // Check if we need to trigger disc achievements @@ -298,7 +299,8 @@ public class CharacterStorage extends PlayerManager { this.updateDiscHandbook = false; this.getPlayer().addNextPackage( NetMsgId.handbook_change_notify, - this.getPlayer().getCharacters().getDiscHandbook()); + this.getDiscHandbook() + ); } } diff --git a/src/main/java/emu/nebula/game/character/GameCharacter.java b/src/main/java/emu/nebula/game/character/GameCharacter.java index fba8385..e315082 100644 --- a/src/main/java/emu/nebula/game/character/GameCharacter.java +++ b/src/main/java/emu/nebula/game/character/GameCharacter.java @@ -675,7 +675,11 @@ public class GameCharacter implements GameDatabaseObject { // Get gem data var gemData = this.getData().getCharGemData(slotId); - var gemControl = gemData.getControlData(); + var gemControl = GameData.getCharGemSlotControlDataTable().get(slotId); + + if (gemControl == null) { + throw new ServerException(110105, "Emblem slot data doesn't exist"); + } // Check character level if (this.getLevel() < gemControl.getUnlockLevel()) { @@ -717,7 +721,11 @@ public class GameCharacter implements GameDatabaseObject { // Get gem data var gemData = this.getData().getCharGemData(slotId); - var gemControl = gemData.getControlData(); + var gemControl = GameData.getCharGemSlotControlDataTable().get(slotId); + + if (gemControl == null) { + throw new ServerException(110105, "Emblem slot data doesn't exist"); + } // Check character level if (this.getLevel() < gemControl.getUnlockLevel()) { diff --git a/src/main/java/emu/nebula/net/GameSession.java b/src/main/java/emu/nebula/net/GameSession.java index 17dafdc..3f6445f 100644 --- a/src/main/java/emu/nebula/net/GameSession.java +++ b/src/main/java/emu/nebula/net/GameSession.java @@ -209,7 +209,8 @@ public class GameSession { // Send mail state notify this.getPlayer().addNextPackage( NetMsgId.mail_state_notify, - MailState.newInstance().setNew(true)); + MailState.newInstance().setNew(true) + ); } // Check handbook states