Optimize packet handling and empty packet creation

This commit is contained in:
Melledy
2023-11-18 19:08:56 -08:00
parent 7fac5a6263
commit c80cda408d
107 changed files with 144 additions and 123 deletions

View File

@@ -28,7 +28,9 @@ public class GameServer extends KcpServer {
private final Timer gameLoopTimer;
// Managers
@Getter private final GameServerPacketHandler packetHandler;
@Getter private final GameServerPacketHandler packetHandler;
@Getter private final GameServerPacketCache packetCache;
@Getter private final BattleService battleService;
@Getter private final DropService dropService;
@Getter private final InventoryService inventoryService;
@@ -39,11 +41,12 @@ public class GameServer extends KcpServer {
this.serverConfig = serverConfig;
this.info = new RegionInfo(this);
this.address = new InetSocketAddress(serverConfig.bindAddress, serverConfig.getPort());
this.packetHandler = new GameServerPacketHandler();
this.players = new Int2ObjectOpenHashMap<>();
// Setup managers
this.packetHandler = new GameServerPacketHandler();
this.packetCache = new GameServerPacketCache();
this.battleService = new BattleService(this);
this.dropService = new DropService(this);
this.inventoryService = new InventoryService(this);

View File

@@ -0,0 +1,19 @@
package emu.lunarcore.server.game;
import emu.lunarcore.server.packet.BasePacket;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
public class GameServerPacketCache {
private final Int2ObjectMap<ByteBuf> packets;
public GameServerPacketCache() {
this.packets = new Int2ObjectOpenHashMap<>();
}
public ByteBuf getCachedPacket(int cmdId) {
return this.packets.computeIfAbsent(cmdId, id -> Unpooled.wrappedBuffer(new BasePacket(id).build()));
}
}

View File

@@ -29,10 +29,8 @@ public class GameServerPacketHandler {
if (opcode == null || opcode.disabled() || opcode.value() <= 0) {
return;
}
PacketHandler packetHandler = handlerClass.getDeclaredConstructor().newInstance();
this.handlers.put(opcode.value(), packetHandler);
this.handlers.put(opcode.value(), handlerClass.getDeclaredConstructor().newInstance());
} catch (Exception e) {
e.printStackTrace();
}
@@ -46,25 +44,24 @@ public class GameServerPacketHandler {
this.registerPacketHandler((Class<? extends PacketHandler>) obj);
}
// Debug
LunarCore.getLogger().info("Game Server registered " + this.handlers.size() + " packet handlers");
}
public void handle(GameSession session, int opcode, byte[] header, byte[] data) {
PacketHandler handler = this.handlers.get(opcode);
public void handle(GameSession session, int cmdId, byte[] data) {
PacketHandler handler = this.handlers.get(cmdId);
if (handler != null) {
try {
// Make sure session is ready for packets
SessionState state = session.getState();
if (opcode == CmdId.PlayerHeartBeatCsReq) {
if (cmdId == CmdId.PlayerHeartBeatCsReq) {
// Always continue if packet is ping request
} else if (opcode == CmdId.PlayerGetTokenCsReq) {
} else if (cmdId == CmdId.PlayerGetTokenCsReq) {
if (state != SessionState.WAITING_FOR_TOKEN) {
return;
}
} else if (opcode == CmdId.PlayerLoginCsReq) {
} else if (cmdId == CmdId.PlayerLoginCsReq) {
if (state != SessionState.WAITING_FOR_LOGIN) {
return;
}
@@ -75,7 +72,7 @@ public class GameServerPacketHandler {
}
// Handle packet
handler.handle(session, header, data);
handler.handle(session, data);
} catch (Exception ex) {
ex.printStackTrace();
}
@@ -84,6 +81,6 @@ public class GameServerPacketHandler {
}
// Log unhandled packets
//LunarCore.getLogger().info("Unhandled packet (" + opcode + "): " + CmdIdUtils.getOpcodeName(opcode));
//LunarCore.getLogger().info("Unhandled packet (" + cmdId + "): " + CmdIdUtils.getOpcodeName(cmdId));
}
}

View File

@@ -109,10 +109,10 @@ public class GameSession {
int opcode = packet.readShort();
int headerLength = packet.readShort();
int dataLength = packet.readInt();
byte[] header = new byte[headerLength];
byte[] data = new byte[dataLength];
packet.readBytes(header);
packet.skipBytes(headerLength);
packet.readBytes(data);
// Packet tail sanity check
@@ -127,7 +127,7 @@ public class GameSession {
}
// Handle
getServer().getPacketHandler().handle(this, opcode, header, data);
getServer().getPacketHandler().handle(this, opcode, data);
}
} catch (Exception e) {
e.printStackTrace();
@@ -157,8 +157,10 @@ public class GameSession {
* @param cmdId
*/
public void send(int cmdId) {
// TODO optimize to send bytes with cmdId instead of creating a new base packet object
this.send(new BasePacket(cmdId));
if (this.ukcp != null) {
// Get packet from the server's packet cache. This will allow us to reuse empty packets if needed.
this.ukcp.write(this.getServer().getPacketCache().getCachedPacket(cmdId));
}
}
private void send(byte[] bytes) {

View File

@@ -5,5 +5,5 @@ import emu.lunarcore.server.game.GameSession;
public abstract class PacketHandler {
protected static final byte[] EMPTY_BYTE_ARRAY = new byte[0];
public abstract void handle(GameSession session, byte[] header, byte[] data) throws Exception;
public abstract void handle(GameSession session, byte[] data) throws Exception;
}

View File

@@ -9,7 +9,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class Handler extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
// Template - Do not delete!
}

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerActivateFarmElementCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = ActivateFarmElementCsReq.parseFrom(data);
session.getPlayer().getScene().activateFarmElement(req.getEntityId(), req.getWorldLevel());

View File

@@ -15,7 +15,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerAvatarExpUpCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = AvatarExpUpCsReq.parseFrom(data);
List<ItemParam> items = new ArrayList<>(req.getItemCostList().getItemList().length());

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketBuyGoodsScRsp;
public class HandlerBuyGoodsCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = BuyGoodsCsReq.parseFrom(data);
var items = session.getServer().getInventoryService().buyShopGoods(session.getPlayer(), req.getShopId(), req.getGoodsId(), req.getGoodsNum());

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketChangeLineupLeaderScRsp;
public class HandlerChangeLineupLeaderCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = ChangeLineupLeaderCsReq.parseFrom(data);
session.getPlayer().getLineupManager().changeLeader(req.getSlot());

View File

@@ -14,7 +14,7 @@ import emu.lunarcore.server.packet.send.PacketComposeItemScRsp;
public class HandlerComposeItemCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = ComposeItemCsReq.parseFrom(data);
List<GameItem> returnList = session.getServer().getInventoryService().composeItem(

View File

@@ -14,7 +14,7 @@ import emu.lunarcore.server.packet.send.PacketComposeSelectedRelicScRsp;
public class HandlerComposeSelectedRelicCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = ComposeSelectedRelicCsReq.parseFrom(data);
List<GameItem> returnList = session.getServer().getInventoryService().composeRelic(

View File

@@ -12,7 +12,7 @@ import it.unimi.dsi.fastutil.ints.IntList;
public class HandlerDelMailCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = DelMailCsReq.parseFrom(data);
IntList deleted = session.getPlayer().getMailbox().deleteMail(req.getIdList());

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerDoGachaCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = DoGachaCsReq.parseFrom(data);
session.getServer().getGachaService().doPulls(session.getPlayer(), req.getGachaId(), req.getGachaNum());

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerDressAvatarCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = DressAvatarCsReq.parseFrom(data);
session.getPlayer().getInventory().equipItem(req.getBaseAvatarId(), req.getEquipmentUniqueId());

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerDressRelicAvatarCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = DressRelicAvatarCsReq.parseFrom(data);
for (var param : req.getParamList()) {

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketEnableRogueTalentScRsp;
public class HandlerEnableRogueTalentCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = EnableRogueTalentCsReq.parseFrom(data);
if (session.getPlayer().getRogueManager().enableTalent(req.getTalentId())) {

View File

@@ -12,7 +12,7 @@ import emu.lunarcore.server.packet.send.PacketEnterRogueMapRoomScRsp;
public class HandlerEnterRogueMapRoomCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = EnterRogueMapRoomCsReq.parseFrom(data);
RogueRoomData enteredRoom = null;

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerEnterSceneCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = EnterSceneCsReq.parseFrom(data);
session.getPlayer().enterScene(req.getEntryId(), req.getTeleportId(), true);

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerEntityBindPropCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(new BasePacket(CmdId.EntityBindPropScRsp));
}

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerExchangeHcoinCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = ExchangeHcoinCsReq.parseFrom(data);
if (session.getPlayer().getMcoin() >= req.getNum()) {

View File

@@ -15,7 +15,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerExpUpEquipmentCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = ExpUpEquipmentCsReq.parseFrom(data);
List<ItemParam> items = new ArrayList<>(req.getItemCostList().getItemList().length());

View File

@@ -15,7 +15,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerExpUpRelicCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = ExpUpRelicCsReq.parseFrom(data);
List<ItemParam> items = new ArrayList<>(req.getItemCostList().getItemList().length());

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.send.PacketGetAllLineupDataScRsp;
public class HandlerGetAllLineupDataCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(new PacketGetAllLineupDataScRsp(session));
}

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.send.PacketGetArchiveDataScRsp;
public class HandlerGetArchiveDataCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, 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

@@ -9,7 +9,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerGetAssistHistoryCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(CmdId.GetAssistHistoryScRsp);
}

View File

@@ -9,7 +9,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerGetAssistListCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(CmdId.GetAssistListScRsp);
}

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.send.PacketGetAvatarDataScRsp;
public class HandlerGetAvatarDataCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(new PacketGetAvatarDataScRsp(session.getPlayer()));
}

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.send.PacketGetBagScRsp;
public class HandlerGetBagCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(new PacketGetBagScRsp(session));
}

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.send.PacketGetBasicInfoScRsp;
public class HandlerGetBasicInfoCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(new PacketGetBasicInfoScRsp(session));
}

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.send.PacketGetChallengeScRsp;
public class HandlerGetChallengeCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(new PacketGetChallengeScRsp(session.getPlayer()));
}

View File

@@ -9,7 +9,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerGetChatEmojiListCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(CmdId.GetChatEmojiListScRsp);
}

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.send.PacketGetCurChallengeScRsp;
public class HandlerGetCurChallengeCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
// Send packet first
session.send(new PacketGetCurChallengeScRsp(session.getPlayer()));
// Update challenge details for client

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.send.PacketGetCurLineupDataScRsp;
public class HandlerGetCurLineupDataCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(new PacketGetCurLineupDataScRsp(session));
}

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.send.PacketGetCurSceneInfoScRsp;
public class HandlerGetCurSceneInfoCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(new PacketGetCurSceneInfoScRsp(session));
}

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.send.PacketGetEnteredSceneScRsp;
public class HandlerGetEnteredSceneCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
// Note: This packet is not necessary for the client to load into a scene
session.send(new PacketGetEnteredSceneScRsp(session.getPlayer()));
}

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketGetFirstTalkByPerformanceNpcScRsp;
public class HandlerGetFirstTalkByPerformanceNpcCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = GetFirstTalkByPerformanceNpcCsReq.parseFrom(data);
session.send(new PacketGetFirstTalkByPerformanceNpcScRsp(req));

View File

@@ -9,7 +9,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerGetFirstTalkNpcCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(CmdId.GetFirstTalkNpcScRsp);
}

View File

@@ -9,7 +9,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerGetFriendApplyListInfoCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(CmdId.GetFriendApplyListInfoScRsp);
}

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.send.PacketGetFriendListInfoScRsp;
public class HandlerGetFriendListInfoCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(new PacketGetFriendListInfoScRsp());
}

View File

@@ -9,7 +9,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerGetFriendLoginInfoCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(CmdId.GetFriendLoginInfoScRsp);
}

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.send.PacketGetGachaInfoScRsp;
public class HandlerGetGachaInfoCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(new PacketGetGachaInfoScRsp(session));
}

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.send.PacketGetHeroBasicTypeInfoScRsp;
public class HandlerGetHeroBasicTypeInfoCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(new PacketGetHeroBasicTypeInfoScRsp(session.getPlayer()));
}

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.send.PacketGetMailScRsp;
public class HandlerGetMailCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(new PacketGetMailScRsp(session.getPlayer()));
}

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketGetMissionStatusScRsp;
public class HandlerGetMissionStatusCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = GetMissionStatusCsReq.parseFrom(data);
session.send(new PacketGetMissionStatusScRsp(req));

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketGetNpcTakenRewardScRsp;
public class HandlerGetNpcTakenRewardCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = GetNpcTakenRewardCsReq.parseFrom(data);
session.send(new PacketGetNpcTakenRewardScRsp(req.getNpcId()));

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.send.PacketGetPlayerBoardDataScRsp;
public class HandlerGetPlayerBoardDataCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(new PacketGetPlayerBoardDataScRsp(session.getPlayer()));
}

View File

@@ -12,7 +12,7 @@ public class HandlerGetPlayerDetailInfoCsReq extends PacketHandler {
@SuppressWarnings("unused")
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = GetPlayerDetailInfoCsReq.parseFrom(data);
session.send(new PacketGetPlayerDetailInfoScRsp());

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketGetPrivateChatHistoryScRsp;
public class HandlerGetPrivateChatHistoryCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = GetPrivateChatHistoryCsReq.parseFrom(data);
var messages = session.getPlayer().getChatManager().getHistoryByUid(req.getToUid());

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.send.PacketGetRogueHandbookDataScRsp;
public class HandlerGetRogueHandbookDataCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(new PacketGetRogueHandbookDataScRsp());
}

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.send.PacketGetRogueInfoScRsp;
public class HandlerGetRogueInfoCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(new PacketGetRogueInfoScRsp(session.getPlayer()));
}

View File

@@ -9,7 +9,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerGetRogueInitialScoreCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(CmdId.GetRogueInitialScoreScRsp);
}

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.send.PacketGetRogueScoreRewardInfoScRsp;
public class HandlerGetRogueScoreRewardInfoCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(new PacketGetRogueScoreRewardInfoScRsp(session.getPlayer()));
}

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.send.PacketGetRogueTalentInfoScRsp;
public class HandlerGetRogueTalentInfoCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(new PacketGetRogueTalentInfoScRsp(session.getPlayer().getRogueManager()));
}

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketGetSceneMapInfoScRsp;
public class HandlerGetSceneMapInfoCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = GetSceneMapInfoCsReq.parseFrom(data);
session.send(new PacketGetSceneMapInfoScRsp(req.getEntryIdList()));

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketGetShopListScRsp;
public class HandlerGetShopListCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = GetShopListCsReq.parseFrom(data);
session.send(new PacketGetShopListScRsp(req.getShopType()));

View File

@@ -12,7 +12,7 @@ import emu.lunarcore.server.packet.send.PacketInteractPropScRsp;
public class HandlerInteractPropCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = InteractPropCsReq.parseFrom(data);
EntityProp prop = session.getPlayer().interactWithProp(req.getPropEntityId());

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerJoinLineupCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = JoinLineupCsReq.parseFrom(data);
session.getPlayer().getLineupManager().joinLineup(req.getIndex(), req.getSlot(), req.getBaseAvatarId());

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerLeaveChallengeCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
// Make sure client is in a challenge scene
if (session.getPlayer().getScene() != null && session.getPlayer().getScene().getPlaneType() == PlaneType.Challenge) {
// As of 1.5.0, the server now has to handle the player leaving battle too

View File

@@ -9,7 +9,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerLeaveRogueCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(CmdId.LeaveRogueScRsp);
}

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerLockEquipmentCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = LockEquipmentCsReq.parseFrom(data);
session.getServer().getInventoryService().lockEquip(session.getPlayer(), req.getEquipmentUniqueId(), req.getIsProtected());

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerLockRelicCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = LockRelicCsReq.parseFrom(data);
session.getServer().getInventoryService().lockEquip(session.getPlayer(), req.getRelicUniqueId(), req.getIsProtected());

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerMarkReadMailCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = MarkReadMailCsReq.parseFrom(data);
session.getPlayer().getMailbox().readMail(req.getId());

View File

@@ -12,7 +12,7 @@ import emu.lunarcore.server.packet.send.PacketPVEBattleResultScRsp;
public class HandlerPVEBattleResultCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = PVEBattleResultCsReq.parseFrom(data);
Battle battle = session.getServer().getBattleService().finishBattle(

View File

@@ -15,7 +15,7 @@ import emu.lunarcore.server.packet.send.PacketPlayerGetTokenScRsp;
public class HandlerPlayerGetTokenCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
// Parse packet data
var req = PlayerGetTokenCsReq.parseFrom(data);

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketPlayerHeartBeatScRsp;
public class HandlerPlayerHeartBeatCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
// Parse req data
var req = PlayerHeartbeatCsReq.parseFrom(data);

View File

@@ -12,7 +12,7 @@ import emu.lunarcore.server.packet.send.PacketStaminaInfoScNotify;
public class HandlerPlayerLoginCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
// Set session flag
session.setState(SessionState.ACTIVE);

View File

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

View File

@@ -9,7 +9,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerPlayerLogoutCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.close();
}

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerPromoteAvatarCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = PromoteAvatarCsReq.parseFrom(data);
session.getServer().getInventoryService().promoteAvatar(session.getPlayer(), req.getBaseAvatarId());

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerPromoteEquipmentCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = PromoteEquipmentCsReq.parseFrom(data);
session.getServer().getInventoryService().promoteEquipment(session.getPlayer(), req.getEquipmentUniqueId());

View File

@@ -9,7 +9,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerQueryProductInfoCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(CmdId.QueryProductInfoScRsp);
}

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerQuitLineupCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = QuitLineupCsReq.parseFrom(data);
session.getPlayer().getLineupManager().quitLineup(req.getIndex(), req.getBaseAvatarId());

View File

@@ -9,7 +9,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerQuitRogueCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
session.getPlayer().getRogueManager().quitRogue();
}

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerRankUpAvatarCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = RankUpAvatarCsReq.parseFrom(data);
session.getServer().getInventoryService().rankUpAvatar(session.getPlayer(), req.getBaseAvatarId());

View File

@@ -15,7 +15,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerRankUpEquipmentCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = RankUpEquipmentCsReq.parseFrom(data);
List<ItemParam> items = new ArrayList<>(req.getItemCostList().getItemList().length());

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerReEnterLastElementStageCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = ReEnterLastElementStageCsReq.parseFrom(data);
session.getServer().getBattleService().reEnterBattle(session.getPlayer(), req.getStageId());

View File

@@ -15,7 +15,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerReplaceLineupCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = ReplaceLineupCsReq.parseFrom(data);
List<Integer> lineupList = new ArrayList<>(req.getSlots().length());

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketReserveStaminaExchangeScRsp;
public class HandlerReserveStaminaExchangeCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = ReserveStaminaExchangeCsReq.parseFrom(data);
int exchangedAmount = session.getPlayer().exchangeReserveStamina(req.getNum());

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketRollRogueBuffScRsp;
public class HandlerRollRogueBuffCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
RogueBuffSelectMenu selectMenu = null;
if (session.getPlayer().getRogueInstance() != null) {

View File

@@ -18,7 +18,7 @@ import emu.lunarcore.server.packet.send.PacketSceneCastSkillScRsp;
public class HandlerSceneCastSkillCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = SceneCastSkillCsReq.parseFrom(data);
// Setup variables

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerSceneEntityMoveCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = SceneEntityMoveCsReq.parseFrom(data);
for (var entityMotion : req.getEntityMotionList()) {

View File

@@ -13,7 +13,7 @@ import emu.lunarcore.server.packet.send.PacketSelectRogueBuffScRsp;
public class HandlerSelectRogueBuffCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = SelectRogueBuffCsReq.parseFrom(data);
if (session.getPlayer().getRogueInstance() != null) {

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketSelectRogueDialogueEventScRsp;
public class HandlerSelectRogueDialogueEventCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = SelectRogueDialogueEventCsReq.parseFrom(data);
if (session.getPlayer().getRogueInstance() != null) {

View File

@@ -13,7 +13,7 @@ import emu.lunarcore.server.packet.send.PacketSelectRogueMiracleScRsp;
public class HandlerSelectRogueMiracleCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = SelectRogueMiracleCsReq.parseFrom(data);
if (session.getPlayer().getRogueInstance() != null) {

View File

@@ -15,7 +15,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerSellItemCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = SellItemCsReq.parseFrom(data);
List<ItemParam> items = new ArrayList<>(req.getItemCostList().getItemList().length());

View File

@@ -12,7 +12,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerSendMsgCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = SendMsgCsReq.parseFrom(data);
for (int targetUid : req.getToUidList()) {

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketSetClientPausedScRsp;
public class HandlerSetClientPausedCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = SetClientPausedCsReq.parseFrom(data);
session.getPlayer().setPaused(req.getPaused());

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketSetGameplayBirthdayScRsp;
public class HandlerSetGameplayBirthdayCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = SetGameplayBirthdayCsReq.parseFrom(data);
int birthday = session.getPlayer().setBirthday(req.getBirthday());

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketSetHeadIconScRsp;
public class HandlerSetHeadIconCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = SetHeadIconCsReq.parseFrom(data);
if (session.getPlayer().setHeadIcon(req.getId())) {

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketSetHeroBasicTypeScRsp;
public class HandlerSetHeroBasicTypeCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = SetHeroBasicTypeCsReq.parseFrom(data);
session.getPlayer().setHeroBasicType(req.getBasicTypeValue());

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketSetLineupNameScRsp;
public class HandlerSetLineupNameCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = SetLineupNameCsReq.parseFrom(data);
var success = session.getPlayer().getLineupManager().changeLineupName(req.getIndex(), req.getName());

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerSetNicknameCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = SetNicknameCsReq.parseFrom(data);
if (req.getNickname() != null) {

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketSetSignatureScRsp;
public class HandlerSetSignatureCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = SetSignatureCsReq.parseFrom(data);
session.getPlayer().setSignature(req.getSignature());

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerStartChallengeCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = StartChallengeCsReq.parseFrom(data);
session.getPlayer().getChallengeManager().startChallenge(req.getChallengeId());

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerStartCocoonStageCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = StartCocoonStageCsReq.parseFrom(data);
session.getServer().getBattleService().startCocoon(session.getPlayer(), req.getCocoonId(), req.getWorldLevel(), req.getWave());

View File

@@ -10,7 +10,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerStartRogueCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = StartRogueCsReq.parseFrom(data);
session.getPlayer().getRogueManager().startRogue(req.getAreaId(), req.getBuffAeonId(), req.getBaseAvatarIdList());

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.PacketHandler;
public class HandlerSwapLineupCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = SwapLineupCsReq.parseFrom(data);
session.getPlayer().getLineupManager().swapLineup(req.getIndex(), req.getSrcSlot(), req.getDstSlot());

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketSwitchLineupIndexScRsp;
public class HandlerSwitchLineupIndexCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = SwitchLineupIndexCsReq.parseFrom(data);
session.getPlayer().getLineupManager().switchLineup(req.getIndex());

View File

@@ -11,7 +11,7 @@ import emu.lunarcore.server.packet.send.PacketSyncClientResVersionScRsp;
public class HandlerSyncClientResVersionCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
public void handle(GameSession session, byte[] data) throws Exception {
var req = SyncClientResVersionCsReq.parseFrom(data);
session.send(new PacketSyncClientResVersionScRsp(req.getClientResVersion()));

Some files were not shown because too many files have changed in this diff Show More