Update player delete function to remove achievements and activities

Also cleaned up some stuff
This commit is contained in:
Melledy
2025-12-07 15:07:48 -08:00
parent f8bd7d5db2
commit 7f0bdb1824
4 changed files with 14 additions and 16 deletions
@@ -1,26 +1,25 @@
package emu.nebula.game.activity.type; package emu.nebula.game.activity.type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import dev.morphia.annotations.Entity; import dev.morphia.annotations.Entity;
import emu.nebula.data.GameData; import emu.nebula.data.GameData;
import emu.nebula.data.resources.ActivityDef; import emu.nebula.data.resources.ActivityDef;
import emu.nebula.game.activity.ActivityManager; import emu.nebula.game.activity.ActivityManager;
import emu.nebula.game.activity.GameActivity; import emu.nebula.game.activity.GameActivity;
import emu.nebula.game.inventory.ItemParamMap;
import emu.nebula.game.player.PlayerChangeInfo; import emu.nebula.game.player.PlayerChangeInfo;
import emu.nebula.proto.ActivityDetail.ActivityMsg; import emu.nebula.proto.ActivityDetail.ActivityMsg;
import emu.nebula.proto.Public.ActivityQuest; import emu.nebula.proto.Public.ActivityQuest;
import emu.nebula.proto.Public.ActivityTowerDefenseLevel; import emu.nebula.proto.Public.ActivityTowerDefenseLevel;
import it.unimi.dsi.fastutil.ints.Int2IntMap;
import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap;
import lombok.Getter; import lombok.Getter;
@Getter @Getter
@Entity @Entity
public class TowerDefenseActivity extends GameActivity { public class TowerDefenseActivity extends GameActivity {
private Map<Integer, Integer> completedStages; private Int2IntMap completedStages;
private Map<Integer, Integer> completedQuests; private Int2IntMap completedQuests;
@Deprecated // Morphia only @Deprecated // Morphia only
public TowerDefenseActivity() { public TowerDefenseActivity() {
@@ -29,19 +28,16 @@ public class TowerDefenseActivity extends GameActivity {
public TowerDefenseActivity(ActivityManager manager, ActivityDef data) { public TowerDefenseActivity(ActivityManager manager, ActivityDef data) {
super(manager, data); super(manager, data);
this.completedStages = new HashMap<Integer, Integer>(); this.completedStages = new Int2IntOpenHashMap();
this.completedQuests = new HashMap<Integer, Integer>(); this.completedQuests = new Int2IntOpenHashMap();
} }
public PlayerChangeInfo claimReward(int level) { public PlayerChangeInfo claimReward(int level) {
// Initialize change info
var change = new PlayerChangeInfo();
// Get rewards // Get rewards
var rewards = GameData.getTowerDefenseLevelDataTable().get(level).getRewards(); var rewards = GameData.getTowerDefenseLevelDataTable().get(level).getRewards();
// Add rewards // Add rewards
return getPlayer().getInventory().addItems(rewards, change); return getPlayer().getInventory().addItems(rewards);
} }
// public PlayerChangeInfo claimReward(int groupId) { // public PlayerChangeInfo claimReward(int groupId) {
@@ -10,6 +10,8 @@ import emu.nebula.Nebula;
import emu.nebula.game.GameContext; import emu.nebula.game.GameContext;
import emu.nebula.game.GameContextModule; import emu.nebula.game.GameContextModule;
import emu.nebula.game.account.Account; import emu.nebula.game.account.Account;
import emu.nebula.game.achievement.AchievementManager;
import emu.nebula.game.activity.ActivityManager;
import emu.nebula.game.agent.AgentManager; import emu.nebula.game.agent.AgentManager;
import emu.nebula.game.battlepass.BattlePass; import emu.nebula.game.battlepass.BattlePass;
import emu.nebula.game.character.GameCharacter; import emu.nebula.game.character.GameCharacter;
@@ -179,6 +181,8 @@ public class PlayerModule extends GameContextModule {
datastore.getCollection(StoryManager.class).deleteOne(idFilter); datastore.getCollection(StoryManager.class).deleteOne(idFilter);
datastore.getCollection(QuestManager.class).deleteOne(idFilter); datastore.getCollection(QuestManager.class).deleteOne(idFilter);
datastore.getCollection(AgentManager.class).deleteOne(idFilter); datastore.getCollection(AgentManager.class).deleteOne(idFilter);
datastore.getCollection(AchievementManager.class).deleteOne(idFilter);
datastore.getCollection(ActivityManager.class).deleteOne(idFilter);
datastore.getCollection(BattlePass.class).deleteOne(idFilter); datastore.getCollection(BattlePass.class).deleteOne(idFilter);
datastore.getCollection(ScoreBossRankEntry.class).deleteOne(idFilter); datastore.getCollection(ScoreBossRankEntry.class).deleteOne(idFilter);
@@ -132,7 +132,6 @@ public class QuestManager extends PlayerManager implements GameDatabaseObject {
} }
} }
/** /**
* Update this quest on the player client * Update this quest on the player client
*/ */
@@ -4,7 +4,6 @@ import emu.nebula.net.NetHandler;
import emu.nebula.net.NetMsgId; import emu.nebula.net.NetMsgId;
import emu.nebula.proto.ActivityTowerDefenseLevelSettle.ActivityTowerDefenseLevelSettleReq; import emu.nebula.proto.ActivityTowerDefenseLevelSettle.ActivityTowerDefenseLevelSettleReq;
import emu.nebula.net.HandlerId; import emu.nebula.net.HandlerId;
import emu.nebula.Nebula;
import emu.nebula.game.activity.type.TowerDefenseActivity; import emu.nebula.game.activity.type.TowerDefenseActivity;
import emu.nebula.net.GameSession; import emu.nebula.net.GameSession;
@@ -20,7 +19,7 @@ public class HandlerActivityTowerDefenseLevelSettleReq extends NetHandler {
var activity = session.getPlayer().getActivityManager().getActivity(TowerDefenseActivity.class, 102001); var activity = session.getPlayer().getActivityManager().getActivity(TowerDefenseActivity.class, 102001);
// Claim rewards // Claim rewards
var change = activity.claimReward((int)req.getLevelId()); var change = activity.claimReward(req.getLevelId());
// Update completed stages // Update completed stages
activity.getCompletedStages().put(req.getLevelId(), req.getStar()); activity.getCompletedStages().put(req.getLevelId(), req.getStar());