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();