mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-02-13 12:02:56 +08:00
Make 'seen' status persistent
This commit is contained in:
parent
7c6138c423
commit
e0c0ed688d
@ -119,6 +119,7 @@ public class Player {
|
||||
@Getter @Setter private Set<Integer> rewardedLevels;
|
||||
@Getter @Setter private Set<Integer> homeRewardedLevels;
|
||||
@Getter @Setter private Set<Integer> realmList;
|
||||
@Getter @Setter private Set<Integer> seenRealmList;
|
||||
@Getter private Set<Integer> unlockedForgingBlueprints;
|
||||
@Getter private Set<Integer> unlockedCombines;
|
||||
@Getter private Set<Integer> unlockedFurniture;
|
||||
@ -250,6 +251,7 @@ public class Player {
|
||||
this.birthday = new PlayerBirthday();
|
||||
this.rewardedLevels = new HashSet<>();
|
||||
this.homeRewardedLevels = new HashSet<>();
|
||||
this.seenRealmList = new HashSet<>();
|
||||
this.moonCardGetTimes = new HashSet<>();
|
||||
this.codex = new PlayerCodex(this);
|
||||
this.progressManager = new PlayerProgressManager(this);
|
||||
@ -398,6 +400,15 @@ public class Player {
|
||||
}
|
||||
}
|
||||
|
||||
public void addSeenRealmList(int seenId) {
|
||||
if (this.seenRealmList == null) {
|
||||
this.seenRealmList = new HashSet<>();
|
||||
} else if (this.seenRealmList.contains(seenId)) {
|
||||
return;
|
||||
}
|
||||
this.seenRealmList.add(seenId);
|
||||
}
|
||||
|
||||
public int getExpeditionLimit() {
|
||||
final int CONST_VALUE_EXPEDITION_INIT_LIMIT = 2; // TODO: pull from ConstValueExcelConfigData.json
|
||||
int expeditionLimit = CONST_VALUE_EXPEDITION_INIT_LIMIT;
|
||||
|
@ -6,6 +6,7 @@ import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.HomeModuleSeenReqOuterClass.HomeModuleSeenReq;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketHomeModuleSeenRsp;
|
||||
import emu.grasscutter.server.packet.send.PacketPlayerHomeCompInfoNotify;
|
||||
|
||||
@Opcodes(PacketOpcodes.HomeModuleSeenReq)
|
||||
public class HandlerHomeModuleSeenReq extends PacketHandler {
|
||||
@ -13,7 +14,13 @@ public class HandlerHomeModuleSeenReq extends PacketHandler {
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
var req = HomeModuleSeenReq.parseFrom(payload);
|
||||
var seen = req.getSeenModuleIdListList();
|
||||
// TODO: Make 'seen' status persist
|
||||
|
||||
// As multiple may be seen at once, add each
|
||||
for (int i : seen) {
|
||||
session.getPlayer().addSeenRealmList(i);
|
||||
}
|
||||
|
||||
session.send(new PacketPlayerHomeCompInfoNotify(session.getPlayer()));
|
||||
session.send(new PacketHomeModuleSeenRsp(seen));
|
||||
}
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ public class PacketPlayerHomeCompInfoNotify extends BasePacket {
|
||||
.setCompInfo(
|
||||
PlayerHomeCompInfoOuterClass.PlayerHomeCompInfo.newBuilder()
|
||||
.addAllUnlockedModuleIdList(player.getRealmList())
|
||||
.addAllSeenModuleIdList(player.getSeenRealmList())
|
||||
.addAllLevelupRewardGotLevelList(player.getHomeRewardedLevels())
|
||||
.setFriendEnterHomeOptionValue(player.getHome().getEnterHomeOption())
|
||||
.build()
|
||||
|
Loading…
Reference in New Issue
Block a user