From b361ee774de7255a8cf463d3898f36beed7cbffe Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Fri, 23 Oct 2026 23:44:15 -0700 Subject: [PATCH] Fix players having broken character honor titles --- .../java/emu/nebula/game/inventory/Inventory.java | 8 ++++++++ src/main/java/emu/nebula/game/player/Player.java | 15 +++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/main/java/emu/nebula/game/inventory/Inventory.java b/src/main/java/emu/nebula/game/inventory/Inventory.java index 6f0b3a7..7cb799d 100644 --- a/src/main/java/emu/nebula/game/inventory/Inventory.java +++ b/src/main/java/emu/nebula/game/inventory/Inventory.java @@ -284,6 +284,14 @@ public class Inventory extends PlayerManager implements GameDatabaseObject { return false; } + // Get honor data + var honor = GameData.getHonorDataTable().get(id); + + // Skip character honor as those are tied to characters + if (honor == null || honor.isCharacterHonor()) { + return false; + } + // Add this.getHonorList().add(id); diff --git a/src/main/java/emu/nebula/game/player/Player.java b/src/main/java/emu/nebula/game/player/Player.java index 00632ba..8ea6178 100644 --- a/src/main/java/emu/nebula/game/player/Player.java +++ b/src/main/java/emu/nebula/game/player/Player.java @@ -854,6 +854,21 @@ public class Player implements GameDatabaseObject { Nebula.getGameDatabase().update(this, this.getUid(), "monthlyCardLastRewardDays", this.monthlyCardLastRewardDays); } + // Players should not have character honor titles in their honor list + for (int id : this.getInventory().getHonorList()) { + boolean honorChanged = false; + var honor = GameData.getHonorDataTable().get(id); + + if (honor == null || honor.isCharacterHonor()) { + this.getInventory().getHonorList().remove(id); + honorChanged = true; + } + + if (honorChanged) { + Nebula.getGameDatabase().update(this.getInventory(), this.getUid(), "honorList", this.getInventory().getHonorList()); + } + } + // Init activities this.getActivityManager().init();