mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2026-05-18 03:36:27 +08:00
quest fix & personal line impl
This commit is contained in:
committed by
Luke H-W
Unverified
parent
7bae35f51b
commit
910008216f
@@ -0,0 +1,35 @@
|
||||
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::getQuestId)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
GameData.getPersonalLineDataMap().values().stream()
|
||||
.filter(i -> !questList.contains(i.getStartQuestId()))
|
||||
.forEach(i -> proto.addCanBeUnlockedPersonalLineList(i.getId()));
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user