mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-22 20:04:56 +01:00
and misc bug fixes
This commit is contained in:
@@ -2,21 +2,25 @@ package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.GameMainQuest;
|
||||
import emu.grasscutter.game.quest.enums.ParentQuestState;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.FinishedParentQuestNotifyOuterClass.FinishedParentQuestNotify;
|
||||
|
||||
public class PacketFinishedParentQuestNotify extends BasePacket {
|
||||
|
||||
|
||||
public PacketFinishedParentQuestNotify(Player player) {
|
||||
super(PacketOpcodes.FinishedParentQuestNotify, true);
|
||||
|
||||
FinishedParentQuestNotify.Builder proto = FinishedParentQuestNotify.newBuilder();
|
||||
|
||||
for (GameMainQuest mainQuest : player.getQuestManager().getQuests().values()) {
|
||||
proto.addParentQuestList(mainQuest.toProto());
|
||||
|
||||
for (GameMainQuest mainQuest : player.getQuestManager().getMainQuests().values()) {
|
||||
//Canceled Quests do not appear in this packet
|
||||
if(mainQuest.getState() != ParentQuestState.PARENT_QUEST_STATE_CANCELED) {
|
||||
proto.addParentQuestList(mainQuest.toProto());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,15 +5,29 @@ import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.FinishedParentQuestUpdateNotifyOuterClass.FinishedParentQuestUpdateNotify;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class PacketFinishedParentQuestUpdateNotify extends BasePacket {
|
||||
|
||||
|
||||
public PacketFinishedParentQuestUpdateNotify(GameMainQuest quest) {
|
||||
super(PacketOpcodes.FinishedParentQuestUpdateNotify);
|
||||
|
||||
|
||||
FinishedParentQuestUpdateNotify proto = FinishedParentQuestUpdateNotify.newBuilder()
|
||||
.addParentQuestList(quest.toProto())
|
||||
.build();
|
||||
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
public PacketFinishedParentQuestUpdateNotify(List<GameMainQuest> quests) {
|
||||
super(PacketOpcodes.FinishedParentQuestUpdateNotify);
|
||||
|
||||
var proto = FinishedParentQuestUpdateNotify.newBuilder();
|
||||
|
||||
for(GameMainQuest mainQuest : quests) {
|
||||
proto.addParentQuestList(mainQuest.toProto());
|
||||
}
|
||||
proto.build();
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ public class PacketPersonalLineAllDataRsp extends BasePacket {
|
||||
.map(GameMainQuest::getChildQuests)
|
||||
.map(Map::values)
|
||||
.flatMap(Collection::stream)
|
||||
.map(GameQuest::getQuestId)
|
||||
.map(GameQuest::getSubQuestId)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
GameData.getPersonalLineDataMap().values().stream()
|
||||
|
||||
@@ -3,21 +3,24 @@ package emu.grasscutter.server.packet.send;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.GameMainQuest;
|
||||
import emu.grasscutter.game.quest.QuestManager;
|
||||
import emu.grasscutter.game.quest.enums.QuestState;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.QuestListNotifyOuterClass.QuestListNotify;
|
||||
|
||||
public class PacketQuestListNotify extends BasePacket {
|
||||
|
||||
|
||||
public PacketQuestListNotify(Player player) {
|
||||
super(PacketOpcodes.QuestListNotify, true);
|
||||
|
||||
QuestListNotify.Builder proto = QuestListNotify.newBuilder();
|
||||
|
||||
|
||||
player.getQuestManager().forEachQuest(quest -> {
|
||||
proto.addQuestList(quest.toProto());
|
||||
if(quest.getState() != QuestState.QUEST_STATE_UNSTARTED) {
|
||||
proto.addQuestList(quest.toProto());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,15 +6,28 @@ import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.QuestListUpdateNotifyOuterClass.QuestListUpdateNotify;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class PacketQuestListUpdateNotify extends BasePacket {
|
||||
|
||||
|
||||
public PacketQuestListUpdateNotify(GameQuest quest) {
|
||||
super(PacketOpcodes.QuestListUpdateNotify);
|
||||
|
||||
QuestListUpdateNotify proto = QuestListUpdateNotify.newBuilder()
|
||||
.addQuestList(quest.toProto())
|
||||
.build();
|
||||
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
public PacketQuestListUpdateNotify(List<GameQuest> quests) {
|
||||
super(PacketOpcodes.QuestListUpdateNotify);
|
||||
var proto = QuestListUpdateNotify.newBuilder();
|
||||
for(GameQuest quest : quests) {
|
||||
proto.addQuestList(quest.toProto());
|
||||
}
|
||||
proto.build();
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user