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

View File

@@ -1,26 +1,25 @@
package emu.nebula.game.activity.type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import dev.morphia.annotations.Entity;
import emu.nebula.data.GameData;
import emu.nebula.data.resources.ActivityDef;
import emu.nebula.game.activity.ActivityManager;
import emu.nebula.game.activity.GameActivity;
import emu.nebula.game.inventory.ItemParamMap;
import emu.nebula.game.player.PlayerChangeInfo;
import emu.nebula.proto.ActivityDetail.ActivityMsg;
import emu.nebula.proto.Public.ActivityQuest;
import emu.nebula.proto.Public.ActivityTowerDefenseLevel;
import it.unimi.dsi.fastutil.ints.Int2IntMap;
import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap;
import lombok.Getter;
@Getter
@Entity
public class TowerDefenseActivity extends GameActivity {
private Map<Integer, Integer> completedStages;
private Map<Integer, Integer> completedQuests;
private Int2IntMap completedStages;
private Int2IntMap completedQuests;
@Deprecated // Morphia only
public TowerDefenseActivity() {
@@ -29,19 +28,16 @@ public class TowerDefenseActivity extends GameActivity {
public TowerDefenseActivity(ActivityManager manager, ActivityDef data) {
super(manager, data);
this.completedStages = new HashMap<Integer, Integer>();
this.completedQuests = new HashMap<Integer, Integer>();
this.completedStages = new Int2IntOpenHashMap();
this.completedQuests = new Int2IntOpenHashMap();
}
public PlayerChangeInfo claimReward(int level) {
// Initialize change info
var change = new PlayerChangeInfo();
// Get rewards
var rewards = GameData.getTowerDefenseLevelDataTable().get(level).getRewards();
// Add rewards
return getPlayer().getInventory().addItems(rewards, change);
return getPlayer().getInventory().addItems(rewards);
}
// public PlayerChangeInfo claimReward(int groupId) {

View File

@@ -10,6 +10,8 @@ import emu.nebula.Nebula;
import emu.nebula.game.GameContext;
import emu.nebula.game.GameContextModule;
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.battlepass.BattlePass;
import emu.nebula.game.character.GameCharacter;
@@ -179,6 +181,8 @@ public class PlayerModule extends GameContextModule {
datastore.getCollection(StoryManager.class).deleteOne(idFilter);
datastore.getCollection(QuestManager.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(ScoreBossRankEntry.class).deleteOne(idFilter);

View File

@@ -132,7 +132,6 @@ public class QuestManager extends PlayerManager implements GameDatabaseObject {
}
}
/**
* Update this quest on the player client
*/

View File

@@ -4,7 +4,6 @@ import emu.nebula.net.NetHandler;
import emu.nebula.net.NetMsgId;
import emu.nebula.proto.ActivityTowerDefenseLevelSettle.ActivityTowerDefenseLevelSettleReq;
import emu.nebula.net.HandlerId;
import emu.nebula.Nebula;
import emu.nebula.game.activity.type.TowerDefenseActivity;
import emu.nebula.net.GameSession;
@@ -20,7 +19,7 @@ public class HandlerActivityTowerDefenseLevelSettleReq extends NetHandler {
var activity = session.getPlayer().getActivityManager().getActivity(TowerDefenseActivity.class, 102001);
// Claim rewards
var change = activity.claimReward((int)req.getLevelId());
var change = activity.claimReward(req.getLevelId());
// Update completed stages
activity.getCompletedStages().put(req.getLevelId(), req.getStar());