mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2026-03-29 20:12:27 +02:00
Make 'seen' status persistent
This commit is contained in:
@@ -119,6 +119,7 @@ public class Player {
|
|||||||
@Getter @Setter private Set<Integer> rewardedLevels;
|
@Getter @Setter private Set<Integer> rewardedLevels;
|
||||||
@Getter @Setter private Set<Integer> homeRewardedLevels;
|
@Getter @Setter private Set<Integer> homeRewardedLevels;
|
||||||
@Getter @Setter private Set<Integer> realmList;
|
@Getter @Setter private Set<Integer> realmList;
|
||||||
|
@Getter @Setter private Set<Integer> seenRealmList;
|
||||||
@Getter private Set<Integer> unlockedForgingBlueprints;
|
@Getter private Set<Integer> unlockedForgingBlueprints;
|
||||||
@Getter private Set<Integer> unlockedCombines;
|
@Getter private Set<Integer> unlockedCombines;
|
||||||
@Getter private Set<Integer> unlockedFurniture;
|
@Getter private Set<Integer> unlockedFurniture;
|
||||||
@@ -250,6 +251,7 @@ public class Player {
|
|||||||
this.birthday = new PlayerBirthday();
|
this.birthday = new PlayerBirthday();
|
||||||
this.rewardedLevels = new HashSet<>();
|
this.rewardedLevels = new HashSet<>();
|
||||||
this.homeRewardedLevels = new HashSet<>();
|
this.homeRewardedLevels = new HashSet<>();
|
||||||
|
this.seenRealmList = new HashSet<>();
|
||||||
this.moonCardGetTimes = new HashSet<>();
|
this.moonCardGetTimes = new HashSet<>();
|
||||||
this.codex = new PlayerCodex(this);
|
this.codex = new PlayerCodex(this);
|
||||||
this.progressManager = new PlayerProgressManager(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() {
|
public int getExpeditionLimit() {
|
||||||
final int CONST_VALUE_EXPEDITION_INIT_LIMIT = 2; // TODO: pull from ConstValueExcelConfigData.json
|
final int CONST_VALUE_EXPEDITION_INIT_LIMIT = 2; // TODO: pull from ConstValueExcelConfigData.json
|
||||||
int expeditionLimit = CONST_VALUE_EXPEDITION_INIT_LIMIT;
|
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.net.proto.HomeModuleSeenReqOuterClass.HomeModuleSeenReq;
|
||||||
import emu.grasscutter.server.game.GameSession;
|
import emu.grasscutter.server.game.GameSession;
|
||||||
import emu.grasscutter.server.packet.send.PacketHomeModuleSeenRsp;
|
import emu.grasscutter.server.packet.send.PacketHomeModuleSeenRsp;
|
||||||
|
import emu.grasscutter.server.packet.send.PacketPlayerHomeCompInfoNotify;
|
||||||
|
|
||||||
@Opcodes(PacketOpcodes.HomeModuleSeenReq)
|
@Opcodes(PacketOpcodes.HomeModuleSeenReq)
|
||||||
public class HandlerHomeModuleSeenReq extends PacketHandler {
|
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 {
|
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||||
var req = HomeModuleSeenReq.parseFrom(payload);
|
var req = HomeModuleSeenReq.parseFrom(payload);
|
||||||
var seen = req.getSeenModuleIdListList();
|
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));
|
session.send(new PacketHomeModuleSeenRsp(seen));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ public class PacketPlayerHomeCompInfoNotify extends BasePacket {
|
|||||||
.setCompInfo(
|
.setCompInfo(
|
||||||
PlayerHomeCompInfoOuterClass.PlayerHomeCompInfo.newBuilder()
|
PlayerHomeCompInfoOuterClass.PlayerHomeCompInfo.newBuilder()
|
||||||
.addAllUnlockedModuleIdList(player.getRealmList())
|
.addAllUnlockedModuleIdList(player.getRealmList())
|
||||||
|
.addAllSeenModuleIdList(player.getSeenRealmList())
|
||||||
.addAllLevelupRewardGotLevelList(player.getHomeRewardedLevels())
|
.addAllLevelupRewardGotLevelList(player.getHomeRewardedLevels())
|
||||||
.setFriendEnterHomeOptionValue(player.getHome().getEnterHomeOption())
|
.setFriendEnterHomeOptionValue(player.getHome().getEnterHomeOption())
|
||||||
.build()
|
.build()
|
||||||
|
|||||||
Reference in New Issue
Block a user