From db5209ff06767fc5536f52abbe5683349044f53e Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Sun, 9 Nov 2025 21:27:08 -0800 Subject: [PATCH] Merge ascension/instance/infinite arena/vampire survivor progress into one manager --- .../infinitytower/InfinityTowerManager.java | 16 +-- .../nebula/game/instance/InstanceManager.java | 124 ++-------------- .../java/emu/nebula/game/player/Player.java | 19 +-- .../nebula/game/player/PlayerProgress.java | 134 ++++++++++++++++++ .../nebula/game/tower/StarTowerManager.java | 29 +--- .../game/vampire/VampireSurvivorManager.java | 19 +-- .../HandlerCharGemInstanceSettleReq.java | 2 +- .../HandlerCharGemInstanceSweepReq.java | 2 +- .../handlers/HandlerDailyInstanceRaidReq.java | 2 +- .../HandlerDailyInstanceSettleReq.java | 2 +- .../HandlerRegionBossLevelSettleReq.java | 2 +- .../HandlerRegionBossLevelSweepReq.java | 2 +- .../HandlerSkillInstanceSettleReq.java | 2 +- .../HandlerSkillInstanceSweepReq.java | 2 +- .../handlers/HandlerWeekBossSettleReq.java | 2 +- 15 files changed, 172 insertions(+), 187 deletions(-) create mode 100644 src/main/java/emu/nebula/game/player/PlayerProgress.java diff --git a/src/main/java/emu/nebula/game/infinitytower/InfinityTowerManager.java b/src/main/java/emu/nebula/game/infinitytower/InfinityTowerManager.java index d2610ee..bfe3b06 100644 --- a/src/main/java/emu/nebula/game/infinitytower/InfinityTowerManager.java +++ b/src/main/java/emu/nebula/game/infinitytower/InfinityTowerManager.java @@ -1,6 +1,5 @@ package emu.nebula.game.infinitytower; -import dev.morphia.annotations.Id; import emu.nebula.data.GameData; import emu.nebula.game.player.Player; import emu.nebula.game.player.PlayerChangeInfo; @@ -10,22 +9,11 @@ import lombok.Getter; @Getter public class InfinityTowerManager extends PlayerManager { - @Id - private int uid; - - private transient int levelId; - private transient long buildId; - - @Deprecated // Morphia only - public InfinityTowerManager() { - - } + private int levelId; + private long buildId; public InfinityTowerManager(Player player) { super(player); - this.uid = player.getUid(); - - //this.save(); } public int getBountyLevel() { diff --git a/src/main/java/emu/nebula/game/instance/InstanceManager.java b/src/main/java/emu/nebula/game/instance/InstanceManager.java index 81eb774..7693400 100644 --- a/src/main/java/emu/nebula/game/instance/InstanceManager.java +++ b/src/main/java/emu/nebula/game/instance/InstanceManager.java @@ -2,58 +2,24 @@ package emu.nebula.game.instance; import java.util.ArrayList; -import dev.morphia.annotations.Entity; -import dev.morphia.annotations.Id; import emu.nebula.GameConstants; -import emu.nebula.Nebula; -import emu.nebula.data.GameData; -import emu.nebula.database.GameDatabaseObject; import emu.nebula.game.inventory.ItemParamMap; import emu.nebula.game.player.Player; import emu.nebula.game.player.PlayerChangeInfo; import emu.nebula.game.player.PlayerManager; +import emu.nebula.game.player.PlayerProgress; import emu.nebula.game.quest.QuestCondType; -import emu.nebula.proto.PlayerData.PlayerInfo; -import emu.nebula.proto.Public.CharGemInstance; -import emu.nebula.proto.Public.DailyInstance; -import emu.nebula.proto.Public.RegionBossLevel; -import emu.nebula.proto.Public.SkillInstance; -import emu.nebula.proto.Public.WeekBossLevel; + import it.unimi.dsi.fastutil.ints.Int2IntMap; -import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap; import lombok.Getter; @Getter -@Entity(value = "instances", useDiscriminator = false) -public class InstanceManager extends PlayerManager implements GameDatabaseObject { - @Id - private int uid; - - private Int2IntMap dailyInstanceLog; - private Int2IntMap regionBossLog; - private Int2IntMap skillInstanceLog; - private Int2IntMap charGemLog; - private Int2IntMap weekBossLog; - - private transient int curInstanceId; - private transient int rewardType; - - @Deprecated // Morphia - public InstanceManager() { - - } +public class InstanceManager extends PlayerManager { + private int curInstanceId; + private int rewardType; public InstanceManager(Player player) { super(player); - this.uid = player.getUid(); - - this.dailyInstanceLog = new Int2IntOpenHashMap(); - this.regionBossLog = new Int2IntOpenHashMap(); - this.skillInstanceLog = new Int2IntOpenHashMap(); - this.charGemLog = new Int2IntOpenHashMap(); - this.weekBossLog = new Int2IntOpenHashMap(); - - this.save(); } public void setCurInstanceId(int id) { @@ -65,18 +31,8 @@ public class InstanceManager extends PlayerManager implements GameDatabaseObject this.rewardType = rewardType; } - public void saveInstanceLog(Int2IntMap log, String logName, int id, int newStar) { - // Get current star - int star = log.get(id); - - // Check star - if (newStar <= star || newStar > 7) { - return; - } - - // Add to log and update database - log.put(id, newStar); - Nebula.getGameDatabase().update(this, this.getUid(), logName + "." + id, newStar); + private PlayerProgress getProgress() { + return this.getPlayer().getProgress(); } public PlayerChangeInfo settleInstance(InstanceData data, QuestCondType questCondition, Int2IntMap log, String logName, int star) { @@ -104,7 +60,7 @@ public class InstanceManager extends PlayerManager implements GameDatabaseObject getPlayer().getInventory().addItems(settleData.getFirstRewards(), change); // Log - this.saveInstanceLog(log, logName, data.getId(), star); + this.getProgress().saveInstanceLog(log, logName, data.getId(), star); // Quest triggers this.getPlayer().getQuestManager().triggerQuest(questCondition, 1); @@ -182,68 +138,4 @@ public class InstanceManager extends PlayerManager implements GameDatabaseObject return change.setSuccess(true); } - // Proto - - public void toProto(PlayerInfo proto) { - // Init - int minStars = 0; - - // Simple hack to unlock all instances - if (Nebula.getConfig().getServerOptions().unlockInstances) { - minStars = 1; - } - - // Daily instance - for (var data : GameData.getDailyInstanceDataTable()) { - int stars = Math.max(getDailyInstanceLog().get(data.getId()), minStars); - - var p = DailyInstance.newInstance() - .setId(data.getId()) - .setStar(stars); - - proto.addDailyInstances(p); - } - - // Regional boss - for (var data : GameData.getRegionBossLevelDataTable()) { - int stars = Math.max(getRegionBossLog().get(data.getId()), minStars); - - var p = RegionBossLevel.newInstance() - .setId(data.getId()) - .setStar(stars); - - proto.addRegionBossLevels(p); - } - - // Skill instance - for (var data : GameData.getSkillInstanceDataTable()) { - int stars = Math.max(getSkillInstanceLog().get(data.getId()), minStars); - - var p = SkillInstance.newInstance() - .setId(data.getId()) - .setStar(stars); - - proto.addSkillInstances(p); - } - - // Char gem instance - for (var data : GameData.getCharGemInstanceDataTable()) { - int stars = Math.max(getCharGemLog().get(data.getId()), minStars); - - var p = CharGemInstance.newInstance() - .setId(data.getId()) - .setStar(stars); - - proto.addCharGemInstances(p); - } - - // Weekly boss - for (var data : GameData.getWeekBossLevelDataTable()) { - var p = WeekBossLevel.newInstance() - .setId(data.getId()) - .setFirst(this.getWeekBossLog().get(data.getId()) == 1); - - proto.addWeekBossLevels(p); - } - } } diff --git a/src/main/java/emu/nebula/game/player/Player.java b/src/main/java/emu/nebula/game/player/Player.java index 1736553..afb295d 100644 --- a/src/main/java/emu/nebula/game/player/Player.java +++ b/src/main/java/emu/nebula/game/player/Player.java @@ -72,6 +72,8 @@ public class Player implements GameDatabaseObject { // Managers private final transient CharacterStorage characters; private final transient GachaManager gachaManager; + private final transient StarTowerManager starTowerManager; + private final transient InstanceManager instanceManager; private final transient InfinityTowerManager infinityTowerManager; private final transient VampireSurvivorManager vampireSurvivorManager; private final transient ScoreBossManager scoreBossManager; @@ -80,8 +82,7 @@ public class Player implements GameDatabaseObject { private transient Inventory inventory; private transient FormationManager formations; private transient Mailbox mailbox; - private transient StarTowerManager starTowerManager; - private transient InstanceManager instanceManager; + private transient PlayerProgress progress; private transient StoryManager storyManager; private transient QuestManager questManager; @@ -93,6 +94,8 @@ public class Player implements GameDatabaseObject { // Init player managers this.characters = new CharacterStorage(this); this.gachaManager = new GachaManager(this); + this.starTowerManager = new StarTowerManager(this); + this.instanceManager = new InstanceManager(this); this.infinityTowerManager = new InfinityTowerManager(this); this.vampireSurvivorManager = new VampireSurvivorManager(this); this.scoreBossManager = new ScoreBossManager(this); @@ -482,18 +485,18 @@ public class Player implements GameDatabaseObject { public void onLoad() { // Load from database this.getCharacters().loadFromDatabase(); + this.getStarTowerManager().loadFromDatabase(); - // Load inventory first + // Load inventory before referenced classes if (this.inventory == null) { this.inventory = this.loadManagerFromDatabase(Inventory.class); } this.getInventory().loadFromDatabase(); - // Load referenced classes + // Load referenced classes from the database this.formations = this.loadManagerFromDatabase(FormationManager.class); this.mailbox = this.loadManagerFromDatabase(Mailbox.class); - this.starTowerManager = this.loadManagerFromDatabase(StarTowerManager.class); - this.instanceManager = this.loadManagerFromDatabase(InstanceManager.class); + this.progress = this.loadManagerFromDatabase(PlayerProgress.class); this.storyManager = this.loadManagerFromDatabase(StoryManager.class); this.questManager = this.loadManagerFromDatabase(QuestManager.class); } @@ -646,8 +649,8 @@ public class Player implements GameDatabaseObject { proto.addDictionaries(dictionaryProto); } - // Add instances - this.getInstanceManager().toProto(proto); + // Add progress + this.getProgress().toProto(proto); // Handbook proto.addHandbook(this.getCharacters().getCharacterHandbook()); diff --git a/src/main/java/emu/nebula/game/player/PlayerProgress.java b/src/main/java/emu/nebula/game/player/PlayerProgress.java new file mode 100644 index 0000000..06093c2 --- /dev/null +++ b/src/main/java/emu/nebula/game/player/PlayerProgress.java @@ -0,0 +1,134 @@ +package emu.nebula.game.player; + +import dev.morphia.annotations.Entity; +import dev.morphia.annotations.Id; +import emu.nebula.Nebula; +import emu.nebula.data.GameData; +import emu.nebula.database.GameDatabaseObject; +import emu.nebula.proto.PlayerData.PlayerInfo; +import emu.nebula.proto.Public.CharGemInstance; +import emu.nebula.proto.Public.DailyInstance; +import emu.nebula.proto.Public.RegionBossLevel; +import emu.nebula.proto.Public.SkillInstance; +import emu.nebula.proto.Public.WeekBossLevel; +import it.unimi.dsi.fastutil.ints.Int2IntMap; +import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap; +import lombok.Getter; + +@Getter +@Entity(value = "progress", useDiscriminator = false) +public class PlayerProgress extends PlayerManager implements GameDatabaseObject { + @Id + private int uid; + + private Int2IntMap dailyInstanceLog; + private Int2IntMap regionBossLog; + private Int2IntMap skillInstanceLog; + private Int2IntMap charGemLog; + private Int2IntMap weekBossLog; + + @Deprecated // Morphia only + public PlayerProgress() { + + } + + public PlayerProgress(Player player) { + super(player); + this.uid = player.getUid(); + + // Star Tower + + // Instances + this.dailyInstanceLog = new Int2IntOpenHashMap(); + this.regionBossLog = new Int2IntOpenHashMap(); + this.skillInstanceLog = new Int2IntOpenHashMap(); + this.charGemLog = new Int2IntOpenHashMap(); + this.weekBossLog = new Int2IntOpenHashMap(); + + // Infinity Arena + + // Vampire Survivor + + // Save to database + this.save(); + } + + public void saveInstanceLog(Int2IntMap log, String logName, int id, int newStar) { + // Get current star + int star = log.get(id); + + // Check star + if (newStar <= star || newStar > 7) { + return; + } + + // Add to log and update database + log.put(id, newStar); + Nebula.getGameDatabase().update(this, this.getUid(), logName + "." + id, newStar); + } + + // Proto + + public void toProto(PlayerInfo proto) { + // Init + int minStars = 0; + + // Simple hack to unlock all instances + if (Nebula.getConfig().getServerOptions().unlockInstances) { + minStars = 1; + } + + // Daily instance + for (var data : GameData.getDailyInstanceDataTable()) { + int stars = Math.max(this.getDailyInstanceLog().get(data.getId()), minStars); + + var p = DailyInstance.newInstance() + .setId(data.getId()) + .setStar(stars); + + proto.addDailyInstances(p); + } + + // Regional boss + for (var data : GameData.getRegionBossLevelDataTable()) { + int stars = Math.max(this.getRegionBossLog().get(data.getId()), minStars); + + var p = RegionBossLevel.newInstance() + .setId(data.getId()) + .setStar(stars); + + proto.addRegionBossLevels(p); + } + + // Skill instance + for (var data : GameData.getSkillInstanceDataTable()) { + int stars = Math.max(this.getSkillInstanceLog().get(data.getId()), minStars); + + var p = SkillInstance.newInstance() + .setId(data.getId()) + .setStar(stars); + + proto.addSkillInstances(p); + } + + // Char gem instance + for (var data : GameData.getCharGemInstanceDataTable()) { + int stars = Math.max(this.getCharGemLog().get(data.getId()), minStars); + + var p = CharGemInstance.newInstance() + .setId(data.getId()) + .setStar(stars); + + proto.addCharGemInstances(p); + } + + // Weekly boss + for (var data : GameData.getWeekBossLevelDataTable()) { + var p = WeekBossLevel.newInstance() + .setId(data.getId()) + .setFirst(this.getWeekBossLog().get(data.getId()) == 1); + + proto.addWeekBossLevels(p); + } + } +} diff --git a/src/main/java/emu/nebula/game/tower/StarTowerManager.java b/src/main/java/emu/nebula/game/tower/StarTowerManager.java index 2c7473e..a99ab2b 100644 --- a/src/main/java/emu/nebula/game/tower/StarTowerManager.java +++ b/src/main/java/emu/nebula/game/tower/StarTowerManager.java @@ -1,44 +1,29 @@ package emu.nebula.game.tower; -import dev.morphia.annotations.Entity; -import dev.morphia.annotations.Id; import emu.nebula.Nebula; import emu.nebula.data.GameData; -import emu.nebula.database.GameDatabaseObject; import emu.nebula.game.player.Player; import emu.nebula.game.player.PlayerChangeInfo; import emu.nebula.game.player.PlayerManager; import emu.nebula.game.quest.QuestCondType; import emu.nebula.proto.StarTowerApply.StarTowerApplyReq; + import it.unimi.dsi.fastutil.longs.Long2ObjectMap; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; + import lombok.Getter; @Getter -@Entity(value = "star_tower", useDiscriminator = false) -public class StarTowerManager extends PlayerManager implements GameDatabaseObject { - @Id - private int uid; - - // TODO add tower talents here - +public class StarTowerManager extends PlayerManager { // Tower game instance - private transient StarTowerGame game; + private StarTowerGame game; // Tower builds - private transient Long2ObjectMap builds; - private transient StarTowerBuild lastBuild; - - @Deprecated // Morphia only - public StarTowerManager() { - - } + private Long2ObjectMap builds; + private StarTowerBuild lastBuild; public StarTowerManager(Player player) { super(player); - this.uid = player.getUid(); - - this.save(); } public Long2ObjectMap getBuilds() { @@ -167,7 +152,7 @@ public class StarTowerManager extends PlayerManager implements GameDatabaseObjec // Database - private void loadFromDatabase() { + public void loadFromDatabase() { this.builds = new Long2ObjectOpenHashMap<>(); Nebula.getGameDatabase().getObjects(StarTowerBuild.class, "playerUid", getPlayerUid()).forEach(build -> { diff --git a/src/main/java/emu/nebula/game/vampire/VampireSurvivorManager.java b/src/main/java/emu/nebula/game/vampire/VampireSurvivorManager.java index f72fac4..f597148 100644 --- a/src/main/java/emu/nebula/game/vampire/VampireSurvivorManager.java +++ b/src/main/java/emu/nebula/game/vampire/VampireSurvivorManager.java @@ -1,35 +1,18 @@ package emu.nebula.game.vampire; -import dev.morphia.annotations.Entity; -import dev.morphia.annotations.Id; import emu.nebula.data.GameData; -import emu.nebula.database.GameDatabaseObject; import emu.nebula.game.player.Player; import emu.nebula.game.player.PlayerManager; import lombok.Getter; @Getter -@Entity(value = "vampire", useDiscriminator = false) -public class VampireSurvivorManager extends PlayerManager implements GameDatabaseObject { - @Id - private int uid; - +public class VampireSurvivorManager extends PlayerManager { // Game private transient VampireSurvivorGame game; - // TODO talents - - @Deprecated // Morphia only - public VampireSurvivorManager() { - - } - public VampireSurvivorManager(Player player) { super(player); - this.uid = player.getUid(); - - //this.save(); } public VampireSurvivorGame apply(int levelId) { diff --git a/src/main/java/emu/nebula/server/handlers/HandlerCharGemInstanceSettleReq.java b/src/main/java/emu/nebula/server/handlers/HandlerCharGemInstanceSettleReq.java index 6fc0f1a..98f8630 100644 --- a/src/main/java/emu/nebula/server/handlers/HandlerCharGemInstanceSettleReq.java +++ b/src/main/java/emu/nebula/server/handlers/HandlerCharGemInstanceSettleReq.java @@ -31,7 +31,7 @@ public class HandlerCharGemInstanceSettleReq extends NetHandler { var changes = player.getInstanceManager().settleInstance( data, QuestCondType.CharGemInstanceClearTotal, - player.getInstanceManager().getCharGemLog(), + player.getProgress().getCharGemLog(), "charGemLog", req.getStar() ); diff --git a/src/main/java/emu/nebula/server/handlers/HandlerCharGemInstanceSweepReq.java b/src/main/java/emu/nebula/server/handlers/HandlerCharGemInstanceSweepReq.java index ad95c79..86694a0 100644 --- a/src/main/java/emu/nebula/server/handlers/HandlerCharGemInstanceSweepReq.java +++ b/src/main/java/emu/nebula/server/handlers/HandlerCharGemInstanceSweepReq.java @@ -32,7 +32,7 @@ public class HandlerCharGemInstanceSweepReq extends NetHandler { var change = session.getPlayer().getInstanceManager().sweepInstance( data, QuestCondType.CharGemInstanceClearTotal, - session.getPlayer().getInstanceManager().getCharGemLog(), + session.getPlayer().getProgress().getCharGemLog(), 0, req.getTimes() ); diff --git a/src/main/java/emu/nebula/server/handlers/HandlerDailyInstanceRaidReq.java b/src/main/java/emu/nebula/server/handlers/HandlerDailyInstanceRaidReq.java index be1bb36..023a1d9 100644 --- a/src/main/java/emu/nebula/server/handlers/HandlerDailyInstanceRaidReq.java +++ b/src/main/java/emu/nebula/server/handlers/HandlerDailyInstanceRaidReq.java @@ -37,7 +37,7 @@ public class HandlerDailyInstanceRaidReq extends NetHandler { var change = session.getPlayer().getInstanceManager().sweepInstance( data, QuestCondType.DailyInstanceClearTotal, - session.getPlayer().getInstanceManager().getDailyInstanceLog(), + session.getPlayer().getProgress().getDailyInstanceLog(), req.getRewardType(), req.getTimes() ); diff --git a/src/main/java/emu/nebula/server/handlers/HandlerDailyInstanceSettleReq.java b/src/main/java/emu/nebula/server/handlers/HandlerDailyInstanceSettleReq.java index a59ddd8..9858050 100644 --- a/src/main/java/emu/nebula/server/handlers/HandlerDailyInstanceSettleReq.java +++ b/src/main/java/emu/nebula/server/handlers/HandlerDailyInstanceSettleReq.java @@ -31,7 +31,7 @@ public class HandlerDailyInstanceSettleReq extends NetHandler { var changes = player.getInstanceManager().settleInstance( data, QuestCondType.DailyInstanceClearTotal, - player.getInstanceManager().getDailyInstanceLog(), + player.getProgress().getDailyInstanceLog(), "dailyInstanceLog", req.getStar() ); diff --git a/src/main/java/emu/nebula/server/handlers/HandlerRegionBossLevelSettleReq.java b/src/main/java/emu/nebula/server/handlers/HandlerRegionBossLevelSettleReq.java index 5cfd87e..0868412 100644 --- a/src/main/java/emu/nebula/server/handlers/HandlerRegionBossLevelSettleReq.java +++ b/src/main/java/emu/nebula/server/handlers/HandlerRegionBossLevelSettleReq.java @@ -31,7 +31,7 @@ public class HandlerRegionBossLevelSettleReq extends NetHandler { var changes = player.getInstanceManager().settleInstance( data, QuestCondType.RegionBossClearTotal, - player.getInstanceManager().getRegionBossLog(), + player.getProgress().getRegionBossLog(), "regionBossLog", req.getStar() ); diff --git a/src/main/java/emu/nebula/server/handlers/HandlerRegionBossLevelSweepReq.java b/src/main/java/emu/nebula/server/handlers/HandlerRegionBossLevelSweepReq.java index 8b01648..ce054e3 100644 --- a/src/main/java/emu/nebula/server/handlers/HandlerRegionBossLevelSweepReq.java +++ b/src/main/java/emu/nebula/server/handlers/HandlerRegionBossLevelSweepReq.java @@ -32,7 +32,7 @@ public class HandlerRegionBossLevelSweepReq extends NetHandler { var change = session.getPlayer().getInstanceManager().sweepInstance( data, QuestCondType.RegionBossClearTotal, - session.getPlayer().getInstanceManager().getRegionBossLog(), + session.getPlayer().getProgress().getRegionBossLog(), 0, req.getTimes() ); diff --git a/src/main/java/emu/nebula/server/handlers/HandlerSkillInstanceSettleReq.java b/src/main/java/emu/nebula/server/handlers/HandlerSkillInstanceSettleReq.java index 5781224..2ffc14f 100644 --- a/src/main/java/emu/nebula/server/handlers/HandlerSkillInstanceSettleReq.java +++ b/src/main/java/emu/nebula/server/handlers/HandlerSkillInstanceSettleReq.java @@ -31,7 +31,7 @@ public class HandlerSkillInstanceSettleReq extends NetHandler { var changes = player.getInstanceManager().settleInstance( data, QuestCondType.SkillInstanceClearTotal, - player.getInstanceManager().getSkillInstanceLog(), + player.getProgress().getSkillInstanceLog(), "skillInstanceLog", req.getStar() ); diff --git a/src/main/java/emu/nebula/server/handlers/HandlerSkillInstanceSweepReq.java b/src/main/java/emu/nebula/server/handlers/HandlerSkillInstanceSweepReq.java index fe20dee..7ab8f51 100644 --- a/src/main/java/emu/nebula/server/handlers/HandlerSkillInstanceSweepReq.java +++ b/src/main/java/emu/nebula/server/handlers/HandlerSkillInstanceSweepReq.java @@ -32,7 +32,7 @@ public class HandlerSkillInstanceSweepReq extends NetHandler { var change = session.getPlayer().getInstanceManager().sweepInstance( data, QuestCondType.SkillInstanceClearTotal, - session.getPlayer().getInstanceManager().getSkillInstanceLog(), + session.getPlayer().getProgress().getSkillInstanceLog(), 0, req.getTimes() ); diff --git a/src/main/java/emu/nebula/server/handlers/HandlerWeekBossSettleReq.java b/src/main/java/emu/nebula/server/handlers/HandlerWeekBossSettleReq.java index 6abccda..fc9a34a 100644 --- a/src/main/java/emu/nebula/server/handlers/HandlerWeekBossSettleReq.java +++ b/src/main/java/emu/nebula/server/handlers/HandlerWeekBossSettleReq.java @@ -31,7 +31,7 @@ public class HandlerWeekBossSettleReq extends NetHandler { var changes = player.getInstanceManager().settleInstance( data, QuestCondType.WeekBoosClearSpecificDifficultyAndTotal, - player.getInstanceManager().getWeekBossLog(), + player.getProgress().getWeekBossLog(), "weekBossLog", req.getResult() ? 1 : 0 );