mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2026-05-20 16:19:50 +08:00
62 lines
2.1 KiB
Java
62 lines
2.1 KiB
Java
package emu.grasscutter.server.packet.send;
|
|
|
|
import emu.grasscutter.data.common.PointData;
|
|
import emu.grasscutter.net.packet.BasePacket;
|
|
import emu.grasscutter.net.packet.PacketOpcodes;
|
|
import emu.grasscutter.net.proto.DungeonEntryInfoOuterClass.DungeonEntryInfo;
|
|
import emu.grasscutter.net.proto.DungeonEntryInfoRspOuterClass.DungeonEntryInfoRsp;
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
|
|
public class PacketDungeonEntryInfoRsp extends BasePacket {
|
|
|
|
public PacketDungeonEntryInfoRsp(PointData pointData) {
|
|
super(PacketOpcodes.DungeonEntryInfoRsp);
|
|
|
|
DungeonEntryInfoRsp.Builder proto =
|
|
DungeonEntryInfoRsp.newBuilder().setPointId(pointData.getId());
|
|
|
|
if (pointData.getDungeonIds() != null) {
|
|
for (int dungeonId : pointData.getDungeonIds()) {
|
|
DungeonEntryInfo info = DungeonEntryInfo.newBuilder().setDungeonId(dungeonId).build();
|
|
proto.addDungeonEntryList(info);
|
|
}
|
|
}
|
|
|
|
this.setData(proto);
|
|
}
|
|
|
|
/**
|
|
* Used in conjunction with quest-related dungeons.
|
|
*
|
|
* @param pointData The data associated with the dungeon.
|
|
* @param additional A collection of additional quest-related dungeon IDs.
|
|
*/
|
|
public PacketDungeonEntryInfoRsp(PointData pointData, List<Integer> additional) {
|
|
super(PacketOpcodes.DungeonEntryInfoRsp);
|
|
|
|
var packet = DungeonEntryInfoRsp.newBuilder().setPointId(pointData.getId());
|
|
|
|
// Add dungeon IDs from the point data.
|
|
if (pointData.getDungeonIds() != null) {
|
|
Arrays.stream(pointData.getDungeonIds())
|
|
.forEach(
|
|
id -> packet.addDungeonEntryList(DungeonEntryInfo.newBuilder().setDungeonId(id)));
|
|
}
|
|
|
|
// Add additional dungeon IDs.
|
|
additional.forEach(
|
|
id -> packet.addDungeonEntryList(DungeonEntryInfo.newBuilder().setDungeonId(id)));
|
|
|
|
this.setData(packet);
|
|
}
|
|
|
|
public PacketDungeonEntryInfoRsp() {
|
|
super(PacketOpcodes.DungeonEntryInfoRsp);
|
|
|
|
DungeonEntryInfoRsp proto = DungeonEntryInfoRsp.newBuilder().setRetcode(1).build();
|
|
|
|
this.setData(proto);
|
|
}
|
|
}
|