mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2026-06-11 13:43:34 +08:00
36 lines
1.3 KiB
Java
36 lines
1.3 KiB
Java
package emu.grasscutter.server.packet.send;
|
|
|
|
import emu.grasscutter.data.GameData;
|
|
import emu.grasscutter.game.player.Player;
|
|
import emu.grasscutter.net.packet.BasePacket;
|
|
import emu.grasscutter.net.packet.PacketOpcodes;
|
|
import emu.grasscutter.net.proto.BattlePassAllDataNotifyOuterClass.BattlePassAllDataNotify;
|
|
|
|
public class PacketBattlePassAllDataNotify extends BasePacket {
|
|
public PacketBattlePassAllDataNotify(Player player) {
|
|
super(PacketOpcodes.BattlePassAllDataNotify);
|
|
|
|
var proto = BattlePassAllDataNotify.newBuilder();
|
|
|
|
proto.setHaveCurSchedule(true).setCurSchedule(player.getBattlePassManager().getScheduleProto());
|
|
|
|
for (var missionData : GameData.getBattlePassMissionDataMap().values()) {
|
|
// Dont send invalid refresh types
|
|
if (!missionData.isValidRefreshType()) {
|
|
continue;
|
|
}
|
|
|
|
// Check if player has mission in bp manager. If not, then add an empty proto from the mission
|
|
// data
|
|
if (player.getBattlePassManager().hasMission(missionData.getId())) {
|
|
proto.addMissionList(
|
|
player.getBattlePassManager().loadMissionById(missionData.getId()).toProto());
|
|
} else {
|
|
proto.addMissionList(missionData.toProto());
|
|
}
|
|
}
|
|
|
|
setData(proto.build());
|
|
}
|
|
}
|