From 300a838e060b588cca1c50bce1f487fc2b10533e Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Fri, 13 Feb 2026 02:02:26 -0800 Subject: [PATCH] Fix tower defense first clear rewards --- ...lerActivityTowerDefenseLevelSettleReq.java | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/main/java/emu/nebula/server/handlers/HandlerActivityTowerDefenseLevelSettleReq.java b/src/main/java/emu/nebula/server/handlers/HandlerActivityTowerDefenseLevelSettleReq.java index 65d9635..b9c7c77 100644 --- a/src/main/java/emu/nebula/server/handlers/HandlerActivityTowerDefenseLevelSettleReq.java +++ b/src/main/java/emu/nebula/server/handlers/HandlerActivityTowerDefenseLevelSettleReq.java @@ -22,17 +22,20 @@ public class HandlerActivityTowerDefenseLevelSettleReq extends NetHandler { return session.encodeMsg(NetMsgId.activity_tower_defense_level_settle_failed_ack); } - // Claim rewards - var change = activity.claimReward(req.getLevelId()); - - // Update completed stages - activity.getCompletedStages().put(req.getLevelId(), req.getStar()); - - // Save changes - session.getPlayer().save(); - - // Encode and send - return session.encodeMsg(NetMsgId.activity_tower_defense_level_settle_succeed_ack, change.toProto()); + // Only receive rewards if we havent completed the stage + if (!activity.getCompletedStages().containsKey(req.getLevelId())) { + // Claim rewards + var change = activity.claimReward(req.getLevelId()); + + // Update completed stages and save activity to the database + activity.getCompletedStages().put(req.getLevelId(), req.getStar()); + activity.save(); + + // Encode and send + return session.encodeMsg(NetMsgId.activity_tower_defense_level_settle_succeed_ack, change.toProto()); + } else { + return session.encodeMsg(NetMsgId.activity_tower_defense_level_settle_succeed_ack); + } } }