mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2026-05-17 03:22:33 +08:00
36 lines
1.2 KiB
Java
36 lines
1.2 KiB
Java
package emu.grasscutter.server.packet.send;
|
|
|
|
import emu.grasscutter.data.GameData;
|
|
import emu.grasscutter.game.quest.GameMainQuest;
|
|
import emu.grasscutter.game.quest.GameQuest;
|
|
import emu.grasscutter.net.packet.BasePacket;
|
|
import emu.grasscutter.net.packet.PacketOpcodes;
|
|
import emu.grasscutter.net.proto.PersonalLineAllDataRspOuterClass;
|
|
|
|
import java.util.Collection;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.stream.Collectors;
|
|
|
|
public class PacketPersonalLineAllDataRsp extends BasePacket {
|
|
|
|
public PacketPersonalLineAllDataRsp(Collection<GameMainQuest> gameMainQuestList) {
|
|
super(PacketOpcodes.PersonalLineAllDataRsp);
|
|
|
|
var proto = PersonalLineAllDataRspOuterClass.PersonalLineAllDataRsp.newBuilder();
|
|
|
|
var questList = gameMainQuestList.stream()
|
|
.map(GameMainQuest::getChildQuests)
|
|
.map(Map::values)
|
|
.flatMap(Collection::stream)
|
|
.map(GameQuest::getSubQuestId)
|
|
.collect(Collectors.toSet());
|
|
|
|
GameData.getPersonalLineDataMap().values().stream()
|
|
.filter(i -> !questList.contains(i.getStartQuestId()))
|
|
.forEach(i -> proto.addCanBeUnlockedPersonalLineList(i.getId()));
|
|
|
|
this.setData(proto);
|
|
}
|
|
}
|