Fix error in avatar menu that prevented details from being auto selected

This commit is contained in:
Melledy
2023-10-15 05:28:55 -07:00
parent 4c06121497
commit 4f45e54e12
5 changed files with 947 additions and 1 deletions

View File

@@ -0,0 +1,18 @@
package emu.lunarcore.server.packet.recv;
import emu.lunarcore.server.game.GameSession;
import emu.lunarcore.server.packet.CmdId;
import emu.lunarcore.server.packet.Opcodes;
import emu.lunarcore.server.packet.PacketHandler;
import emu.lunarcore.server.packet.send.PacketGetArchiveDataScRsp;
@Opcodes(CmdId.GetArchiveDataCsReq)
public class HandlerGetArchiveDataCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
// TODO The client does not send this packet right now to the server so we send it in HandlerPlayerLoginFinishCsReq instead
session.send(new PacketGetArchiveDataScRsp());
}
}

View File

@@ -5,13 +5,15 @@ import emu.lunarcore.server.packet.BasePacket;
import emu.lunarcore.server.packet.CmdId;
import emu.lunarcore.server.packet.Opcodes;
import emu.lunarcore.server.packet.PacketHandler;
import emu.lunarcore.server.packet.send.PacketGetArchiveDataScRsp;
@Opcodes(CmdId.PlayerLoginFinishCsReq)
public class HandlerPlayerLoginFinishCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
session.send(new BasePacket(CmdId.PlayerLoginFinishScRsp));
session.send(CmdId.PlayerLoginFinishScRsp);
session.send(new PacketGetArchiveDataScRsp());
}
}

View File

@@ -0,0 +1,24 @@
package emu.lunarcore.server.packet.send;
import emu.lunarcore.data.GameData;
import emu.lunarcore.proto.ArchiveDataOuterClass.ArchiveData;
import emu.lunarcore.proto.GetArchiveDataScRspOuterClass.GetArchiveDataScRsp;
import emu.lunarcore.server.packet.BasePacket;
import emu.lunarcore.server.packet.CmdId;
public class PacketGetArchiveDataScRsp extends BasePacket {
public PacketGetArchiveDataScRsp() {
super(CmdId.GetArchiveDataScRsp);
var archive = ArchiveData.newInstance();
for (var avatarExcel : GameData.getAvatarExcelMap().values()) {
archive.addArchiveAvatarIdList(avatarExcel.getAvatarID());
}
var data = GetArchiveDataScRsp.newInstance().setArchiveData(archive);
this.setData(data);
}
}