Fix daily dungeon didn't display in note(笔记) (#1296)

* Fix Daily dungeon didn't display in note(笔记) -- Buggy

* 123
This commit is contained in:
诗音澄鸢 镜苑芳依
2022-06-18 14:50:55 +08:00
committed by GitHub
parent 45438cd2a7
commit af6c27a002
7 changed files with 131 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
package emu.grasscutter.server.packet.recv;
import emu.grasscutter.Grasscutter;
import emu.grasscutter.net.packet.Opcodes;
import emu.grasscutter.net.packet.PacketHandler;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.GetDailyDungeonEntryInfoReqOuterClass;
import emu.grasscutter.server.game.GameSession;
import emu.grasscutter.server.packet.send.PacketGetDailyDungeonEntryInfoRsp;
@Opcodes(PacketOpcodes.GetDailyDungeonEntryInfoReq)
public class HandlerGetDailyDungeonEntryInfoReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
var req=
GetDailyDungeonEntryInfoReqOuterClass.GetDailyDungeonEntryInfoReq.parseFrom(payload);
session.send(new PacketGetDailyDungeonEntryInfoRsp(req.getSceneId()));
}
}

View File

@@ -0,0 +1,43 @@
package emu.grasscutter.server.packet.send;
import emu.grasscutter.Grasscutter;
import emu.grasscutter.data.GameData;
import emu.grasscutter.data.excels.DungeonEntryData;
import emu.grasscutter.net.packet.BasePacket;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.DailyDungeonEntryInfoOuterClass;
import emu.grasscutter.net.proto.DungeonEntryInfoOuterClass;
import emu.grasscutter.net.proto.GetDailyDungeonEntryInfoRspOuterClass;
import java.util.List;
public class PacketGetDailyDungeonEntryInfoRsp extends BasePacket {
public PacketGetDailyDungeonEntryInfoRsp(Integer sceneID) {
super(PacketOpcodes.GetDailyDungeonEntryInfoRsp);
var resp= GetDailyDungeonEntryInfoRspOuterClass.GetDailyDungeonEntryInfoRsp.newBuilder();
for (var info : GameData.getDungeonEntryDatatMap().values().parallelStream().filter(d -> d.getSceneId() == sceneID).map(this::getDungonEntryInfo).toList())
resp.addDailyDungeonInfoList(info);
this.setData(resp.build());
}
private DailyDungeonEntryInfoOuterClass.DailyDungeonEntryInfo getDungonEntryInfo(DungeonEntryData data) {
var dungeonEntryId = data.getDungeonEntryId();
var id = data.getId();
//TODO: 来个爹把这块整活了吧 咚咚咚
DungeonEntryInfoOuterClass.DungeonEntryInfo dungeonEntryInfo
= DungeonEntryInfoOuterClass.DungeonEntryInfo.newBuilder().setDungeonId(130).build();
var builder = DailyDungeonEntryInfoOuterClass.DailyDungeonEntryInfo.newBuilder();
builder.setDungeonEntryId(dungeonEntryId);
builder.setDungeonEntryConfigId(id);
builder.setRecommendDungeonEntryInfo(dungeonEntryInfo);
return builder.build();
}
}