Refactor how handlers encode messages

This commit is contained in:
Melledy
2025-10-30 19:40:09 -07:00
parent 00b77e80e1
commit da1856df50
73 changed files with 138 additions and 134 deletions

View File

@@ -14,6 +14,8 @@ import emu.nebula.game.player.Player;
import emu.nebula.util.AeadHelper;
import emu.nebula.util.Utils;
import lombok.Getter;
import lombok.SneakyThrows;
import us.hebi.quickbuf.ProtoMessage;
import us.hebi.quickbuf.RepeatedByte;
@Getter
@@ -64,6 +66,8 @@ public class GameSession {
return this.player != null;
}
// Encryption
public void setClientKey(RepeatedByte key) {
this.clientPublicKey = key.toArray();
}
@@ -95,6 +99,8 @@ public class GameSession {
return this.token;
}
// Login
public boolean login(String loginToken) {
// Sanity check
if (this.account != null) {
@@ -128,4 +134,19 @@ public class GameSession {
public void updateLastActiveTime() {
this.lastActiveTime = System.currentTimeMillis();
}
// Packet encoding helper functions
public byte[] encodeMsg(int msgId, byte[] packet) {
return PacketHelper.encodeMsg(msgId, packet);
}
@SneakyThrows
public byte[] encodeMsg(int msgId, ProtoMessage<?> proto) {
return PacketHelper.encodeMsg(msgId, proto);
}
public byte[] encodeMsg(int msgId) {
return PacketHelper.encodeMsg(msgId);
}
}

View File

@@ -1,8 +1,5 @@
package emu.nebula.net;
import lombok.SneakyThrows;
import us.hebi.quickbuf.ProtoMessage;
public abstract class NetHandler {
public boolean requireSession() {
@@ -13,21 +10,6 @@ public abstract class NetHandler {
return true;
}
// Packet encoding helper functions
public byte[] encodeMsg(int msgId, byte[] packet) {
return PacketHelper.encodeMsg(msgId, packet);
}
@SneakyThrows
public byte[] encodeMsg(int msgId, ProtoMessage<?> proto) {
return PacketHelper.encodeMsg(msgId, proto);
}
public byte[] encodeMsg(int msgId) {
return PacketHelper.encodeMsg(msgId);
}
// Handler
public abstract byte[] handle(GameSession session, byte[] message) throws Exception;

View File

@@ -11,7 +11,7 @@ public class Handler extends NetHandler {
@Override
public byte[] handle(GameSession session, byte[] message) throws Exception {
// Template
return null;
return session.encodeMsg(NetMsgId.none);
}
}

View File

@@ -13,7 +13,7 @@ public class HandlerAchievementInfoReq extends NetHandler {
public byte[] handle(GameSession session, byte[] message) throws Exception {
var rsp = Achievements.newInstance();
return this.encodeMsg(NetMsgId.achievement_info_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.achievement_info_succeed_ack, rsp);
}
}

View File

@@ -21,7 +21,7 @@ public class HandlerActivityDetailReq extends NetHandler {
rsp.addList(activity);
return this.encodeMsg(NetMsgId.activity_detail_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.activity_detail_succeed_ack, rsp);
}
}

View File

@@ -10,7 +10,7 @@ public class HandlerAgentApplyReq extends NetHandler {
@Override
public byte[] handle(GameSession session, byte[] message) throws Exception {
return this.encodeMsg(NetMsgId.agent_apply_failed_ack);
return session.encodeMsg(NetMsgId.agent_apply_failed_ack);
}
}

View File

@@ -10,7 +10,7 @@ public class HandlerBattlePassInfoReq extends NetHandler {
@Override
public byte[] handle(GameSession session, byte[] message) throws Exception {
return this.encodeMsg(NetMsgId.battle_pass_info_failed_ack);
return session.encodeMsg(NetMsgId.battle_pass_info_failed_ack);
}
}

View File

@@ -17,17 +17,17 @@ public class HandlerCharAdvanceReq extends NetHandler {
var character = session.getPlayer().getCharacters().getCharacterById(req.getValue());
if (character == null) {
return this.encodeMsg(NetMsgId.char_advance_failed_ack);
return session.encodeMsg(NetMsgId.char_advance_failed_ack);
}
// Advance character
var change = character.advance();
if (change == null) {
return this.encodeMsg(NetMsgId.char_advance_failed_ack);
return session.encodeMsg(NetMsgId.char_advance_failed_ack);
}
return this.encodeMsg(NetMsgId.char_advance_succeed_ack, change.toProto());
return session.encodeMsg(NetMsgId.char_advance_succeed_ack, change.toProto());
}
}

View File

@@ -17,14 +17,14 @@ public class HandlerCharGemInstanceApplyReq extends NetHandler {
var data = GameData.getCharGemInstanceDataTable().get(req.getId());
if (data == null || !data.hasEnergy(session.getPlayer())) {
return this.encodeMsg(NetMsgId.char_gem_instance_apply_failed_ack);
return session.encodeMsg(NetMsgId.char_gem_instance_apply_failed_ack);
}
// Set player instance id
session.getPlayer().getInstanceManager().setCurInstanceId(req.getId());
// Send response
return this.encodeMsg(NetMsgId.char_gem_instance_apply_succeed_ack);
return session.encodeMsg(NetMsgId.char_gem_instance_apply_succeed_ack);
}
}

View File

@@ -20,7 +20,7 @@ public class HandlerCharGemInstanceSettleReq extends NetHandler {
// Get boss level data
var data = GameData.getCharGemInstanceDataTable().get(player.getInstanceManager().getCurInstanceId());
if (data == null || !data.hasEnergy(player)) {
return this.encodeMsg(NetMsgId.char_gem_instance_settle_failed_ack);
return session.encodeMsg(NetMsgId.char_gem_instance_settle_failed_ack);
}
// Parse request
@@ -52,7 +52,7 @@ public class HandlerCharGemInstanceSettleReq extends NetHandler {
}
// Send response
return this.encodeMsg(NetMsgId.char_gem_instance_settle_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.char_gem_instance_settle_succeed_ack, rsp);
}
}

View File

@@ -17,7 +17,7 @@ public class HandlerCharSkillUpgradeReq extends NetHandler {
var character = session.getPlayer().getCharacters().getCharacterById(req.getCharId());
if (character == null) {
return this.encodeMsg(NetMsgId.char_skill_upgrade_failed_ack);
return session.encodeMsg(NetMsgId.char_skill_upgrade_failed_ack);
}
// Advance character
@@ -25,10 +25,10 @@ public class HandlerCharSkillUpgradeReq extends NetHandler {
var change = character.upgradeSkill(index);
if (change == null) {
return this.encodeMsg(NetMsgId.char_skill_upgrade_failed_ack);
return session.encodeMsg(NetMsgId.char_skill_upgrade_failed_ack);
}
return this.encodeMsg(NetMsgId.char_skill_upgrade_succeed_ack, change.toProto());
return session.encodeMsg(NetMsgId.char_skill_upgrade_succeed_ack, change.toProto());
}
}

View File

@@ -20,7 +20,7 @@ public class HandlerCharUpgradeReq extends NetHandler {
var character = session.getPlayer().getCharacters().getCharacterById(req.getCharId());
if (character == null) {
return this.encodeMsg(NetMsgId.char_upgrade_failed_ack);
return session.encodeMsg(NetMsgId.char_upgrade_failed_ack);
}
// Upgrade character
@@ -28,7 +28,7 @@ public class HandlerCharUpgradeReq extends NetHandler {
var change = character.upgrade(params);
if (change == null) {
return this.encodeMsg(NetMsgId.char_upgrade_failed_ack);
return session.encodeMsg(NetMsgId.char_upgrade_failed_ack);
}
// Create response
@@ -37,7 +37,7 @@ public class HandlerCharUpgradeReq extends NetHandler {
.setLevel(character.getLevel())
.setExp(character.getExp());
return this.encodeMsg(NetMsgId.char_upgrade_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.char_upgrade_succeed_ack, rsp);
}
}

View File

@@ -10,7 +10,7 @@ public class HandlerClientEventReportReq extends NetHandler {
@Override
public byte[] handle(GameSession session, byte[] message) throws Exception {
return this.encodeMsg(NetMsgId.client_event_report_succeed_ack);
return session.encodeMsg(NetMsgId.client_event_report_succeed_ack);
}
}

View File

@@ -17,19 +17,19 @@ public class HandlerDailyInstanceApplyReq extends NetHandler {
var data = GameData.getDailyInstanceDataTable().get(req.getId());
if (data == null || !data.hasEnergy(session.getPlayer())) {
return this.encodeMsg(NetMsgId.daily_instance_apply_failed_ack);
return session.encodeMsg(NetMsgId.daily_instance_apply_failed_ack);
}
// Check reward group
if (data.getRewardGroup(req.getRewardType()) == null) {
return this.encodeMsg(NetMsgId.daily_instance_apply_failed_ack);
return session.encodeMsg(NetMsgId.daily_instance_apply_failed_ack);
}
// Set player
session.getPlayer().getInstanceManager().setCurInstanceId(req.getId(), req.getRewardType());
// Send response
return this.encodeMsg(NetMsgId.daily_instance_apply_succeed_ack);
return session.encodeMsg(NetMsgId.daily_instance_apply_succeed_ack);
}
}

View File

@@ -20,7 +20,7 @@ public class HandlerDailyInstanceSettleReq extends NetHandler {
// Get boss level data
var data = GameData.getDailyInstanceDataTable().get(player.getInstanceManager().getCurInstanceId());
if (data == null || !data.hasEnergy(player)) {
return this.encodeMsg(NetMsgId.daily_instance_settle_failed_ack);
return session.encodeMsg(NetMsgId.daily_instance_settle_failed_ack);
}
// Parse request
@@ -53,7 +53,7 @@ public class HandlerDailyInstanceSettleReq extends NetHandler {
}
// Send response
return this.encodeMsg(NetMsgId.daily_instance_settle_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.daily_instance_settle_succeed_ack, rsp);
}
}

View File

@@ -19,14 +19,14 @@ public class HandlerDiscLimitBreakReq extends NetHandler {
var disc = session.getPlayer().getCharacters().getDiscById(req.getId());
if (disc == null) {
return this.encodeMsg(NetMsgId.disc_limit_break_failed_ack);
return session.encodeMsg(NetMsgId.disc_limit_break_failed_ack);
}
// Limit break
var change = disc.limitBreak(req.getQty());
if (change == null) {
return this.encodeMsg(NetMsgId.disc_limit_break_failed_ack);
return session.encodeMsg(NetMsgId.disc_limit_break_failed_ack);
}
// Create response
@@ -34,7 +34,7 @@ public class HandlerDiscLimitBreakReq extends NetHandler {
.setStar(disc.getStar())
.setChange(null);
return this.encodeMsg(NetMsgId.disc_limit_break_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.disc_limit_break_succeed_ack, rsp);
}
}

View File

@@ -19,14 +19,14 @@ public class HandlerDiscPromoteReq extends NetHandler {
var disc = session.getPlayer().getCharacters().getDiscById(req.getId());
if (disc == null) {
return this.encodeMsg(NetMsgId.disc_promote_failed_ack);
return session.encodeMsg(NetMsgId.disc_promote_failed_ack);
}
// Advance character
var change = disc.promote();
if (change == null) {
return this.encodeMsg(NetMsgId.disc_promote_failed_ack);
return session.encodeMsg(NetMsgId.disc_promote_failed_ack);
}
// Build request
@@ -34,7 +34,7 @@ public class HandlerDiscPromoteReq extends NetHandler {
.setPhase(disc.getPhase())
.setChange(change.toProto());
return this.encodeMsg(NetMsgId.disc_promote_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.disc_promote_succeed_ack, rsp);
}
}

View File

@@ -10,7 +10,7 @@ public class HandlerDiscReadRewardReceiveReq extends NetHandler {
@Override
public byte[] handle(GameSession session, byte[] message) throws Exception {
return this.encodeMsg(NetMsgId.disc_read_reward_receive_failed_ack);
return session.encodeMsg(NetMsgId.disc_read_reward_receive_failed_ack);
}
}

View File

@@ -20,7 +20,7 @@ public class HandlerDiscStrengthenReq extends NetHandler {
var disc = session.getPlayer().getCharacters().getDiscById(req.getId());
if (disc == null) {
return this.encodeMsg(NetMsgId.disc_strengthen_failed_ack);
return session.encodeMsg(NetMsgId.disc_strengthen_failed_ack);
}
// Level up disc
@@ -28,7 +28,7 @@ public class HandlerDiscStrengthenReq extends NetHandler {
var change = disc.upgrade(params);
if (change == null) {
return this.encodeMsg(NetMsgId.disc_strengthen_failed_ack);
return session.encodeMsg(NetMsgId.disc_strengthen_failed_ack);
}
// Create response
@@ -37,7 +37,7 @@ public class HandlerDiscStrengthenReq extends NetHandler {
.setExp(disc.getExp())
.setChange(change.toProto());
return this.encodeMsg(NetMsgId.disc_strengthen_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.disc_strengthen_succeed_ack, rsp);
}
}

View File

@@ -13,7 +13,7 @@ public class HandlerFriendListGetReq extends NetHandler {
public byte[] handle(GameSession session, byte[] message) throws Exception {
var rsp = FriendListGetResp.newInstance();
return this.encodeMsg(NetMsgId.friend_list_get_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.friend_list_get_succeed_ack, rsp);
}
}

View File

@@ -15,7 +15,7 @@ public class HandlerGachaInformationReq extends NetHandler {
// TODO
return this.encodeMsg(NetMsgId.gacha_information_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.gacha_information_succeed_ack, rsp);
}
}

View File

@@ -13,7 +13,7 @@ public class HandlerGachaNewbieInfoReq extends NetHandler {
public byte[] handle(GameSession session, byte[] message) throws Exception {
var rsp = GachaInformationResp.newInstance();
return this.encodeMsg(NetMsgId.gacha_newbie_info_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.gacha_newbie_info_succeed_ack, rsp);
}
}

View File

@@ -15,7 +15,7 @@ public class HandlerGachaNewbieObtainReq extends NetHandler {
var req = GachaNewbieObtainReq.parseFrom(message);
// TODO
return this.encodeMsg(NetMsgId.gacha_newbie_obtain_failed_ack);
return session.encodeMsg(NetMsgId.gacha_newbie_obtain_failed_ack);
}
}

View File

@@ -35,7 +35,7 @@ public class HandlerGachaNewbieSpinReq extends NetHandler {
rsp.addCards(id);
}
return this.encodeMsg(NetMsgId.gacha_newbie_spin_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.gacha_newbie_spin_succeed_ack, rsp);
}
}

View File

@@ -46,7 +46,7 @@ public class HandlerGachaSpinReq extends NetHandler {
rsp.addCards(card);
}
return this.encodeMsg(NetMsgId.gacha_spin_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.gacha_spin_succeed_ack, rsp);
}
}

View File

@@ -25,7 +25,7 @@ public class HandlerIkeReq extends NetHandler {
public byte[] handle(GameSession session, byte[] message) throws Exception {
// Make sure we dont already have a session
if (session != null) {
return this.encodeMsg(NetMsgId.ike_failed_ack);
return session.encodeMsg(NetMsgId.ike_failed_ack);
}
// Parse
@@ -55,7 +55,7 @@ public class HandlerIkeReq extends NetHandler {
*/
// Encode and send to client
return this.encodeMsg(NetMsgId.ike_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.ike_succeed_ack, rsp);
}
}

View File

@@ -18,11 +18,11 @@ public class HandlerItemProductReq extends NetHandler {
var changes = session.getPlayer().getInventory().produce(req.getId(), req.getNum());
if (changes == null) {
return this.encodeMsg(NetMsgId.item_product_failed_ack);
return session.encodeMsg(NetMsgId.item_product_failed_ack);
}
// Send response
return this.encodeMsg(NetMsgId.item_product_succeed_ack, changes.toProto());
return session.encodeMsg(NetMsgId.item_product_succeed_ack, changes.toProto());
}
}

View File

@@ -18,7 +18,7 @@ public class HandlerMailListReq extends NetHandler {
rsp.addList(mail.toProto());
}
return this.encodeMsg(NetMsgId.mail_list_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.mail_list_succeed_ack, rsp);
}
}

View File

@@ -20,7 +20,7 @@ public class HandlerMailPinReq extends NetHandler {
// Sanity check
if (mail == null) {
return this.encodeMsg(NetMsgId.mail_pin_failed_ack);
return session.encodeMsg(NetMsgId.mail_pin_failed_ack);
}
// Build response
@@ -29,7 +29,7 @@ public class HandlerMailPinReq extends NetHandler {
.setFlag(mail.getFlag())
.setPin(mail.isPin());
return this.encodeMsg(NetMsgId.mail_pin_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.mail_pin_succeed_ack, rsp);
}
}

View File

@@ -17,10 +17,10 @@ public class HandlerMailReadReq extends NetHandler {
boolean result = session.getPlayer().getMailbox().readMail(req.getId(), req.getFlag());
if (!result) {
return this.encodeMsg(NetMsgId.mail_read_failed_ack);
return session.encodeMsg(NetMsgId.mail_read_failed_ack);
}
return this.encodeMsg(NetMsgId.mail_read_succeed_ack, UI32.newInstance().setValue(req.getId()));
return session.encodeMsg(NetMsgId.mail_read_succeed_ack, UI32.newInstance().setValue(req.getId()));
}
}

View File

@@ -30,7 +30,7 @@ public class HandlerMailRecvReq extends NetHandler {
recvList.forEach(rsp::addIds);
}
return this.encodeMsg(NetMsgId.mail_recv_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.mail_recv_succeed_ack, rsp);
}
}

View File

@@ -26,7 +26,7 @@ public class HandlerMailRemoveReq extends NetHandler {
rsp.addIds(id);
}
return this.encodeMsg(NetMsgId.mail_remove_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.mail_remove_succeed_ack, rsp);
}
}

View File

@@ -23,7 +23,7 @@ public class HandlerMallGemListReq extends NetHandler {
rsp.addList(info);
}
return this.encodeMsg(NetMsgId.mall_gem_list_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.mall_gem_list_succeed_ack, rsp);
}
}

View File

@@ -23,7 +23,7 @@ public class HandlerMallMonthlyCardListReq extends NetHandler {
rsp.addList(info);
}
return this.encodeMsg(NetMsgId.mall_monthlyCard_list_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.mall_monthlyCard_list_succeed_ack, rsp);
}
}

View File

@@ -23,7 +23,7 @@ public class HandlerMallPackageListReq extends NetHandler {
rsp.addList(info);
}
return this.encodeMsg(NetMsgId.mall_package_list_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.mall_package_list_succeed_ack, rsp);
}
}

View File

@@ -34,7 +34,7 @@ public class HandlerMallShopListReq extends NetHandler {
rsp.addList(info);
}
return this.encodeMsg(NetMsgId.mall_shop_list_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.mall_shop_list_succeed_ack, rsp);
}
}

View File

@@ -10,7 +10,7 @@ public class HandlerPhoneContactsInfoReq extends NetHandler {
@Override
public byte[] handle(GameSession session, byte[] message) throws Exception {
return this.encodeMsg(NetMsgId.phone_contacts_info_succeed_ack);
return session.encodeMsg(NetMsgId.phone_contacts_info_succeed_ack);
}
}

View File

@@ -17,7 +17,7 @@ public class HandlerPlayerBoardSetReq extends NetHandler {
// Set board
boolean success = session.getPlayer().setBoard(req.getIds());
return this.encodeMsg(success ? NetMsgId.player_board_set_succeed_ack : NetMsgId.player_board_set_failed_ack);
return session.encodeMsg(success ? NetMsgId.player_board_set_succeed_ack : NetMsgId.player_board_set_failed_ack);
}
}

View File

@@ -16,11 +16,11 @@ public class HandlerPlayerDataReq extends NetHandler {
public byte[] handle(GameSession session, byte[] message) throws Exception {
// Check if player has been created yet
if (session.getPlayer() == null) {
return this.encodeMsg(NetMsgId.player_new_notify);
return session.encodeMsg(NetMsgId.player_new_notify);
}
// Encode player data
return this.encodeMsg(NetMsgId.player_data_succeed_ack, session.getPlayer().toProto());
return session.encodeMsg(NetMsgId.player_data_succeed_ack, session.getPlayer().toProto());
}
}

View File

@@ -15,7 +15,7 @@ public class HandlerPlayerFormationReq extends NetHandler {
boolean success = session.getPlayer().getFormations().updateFormation(req.getFormation());
return this.encodeMsg(success ? NetMsgId.player_formation_succeed_ack : NetMsgId.player_formation_failed_ack);
return session.encodeMsg(success ? NetMsgId.player_formation_succeed_ack : NetMsgId.player_formation_failed_ack);
}
}

View File

@@ -12,7 +12,7 @@ public class HandlerPlayerGenderEditReq extends NetHandler {
public byte[] handle(GameSession session, byte[] message) throws Exception {
session.getPlayer().editGender();
return this.encodeMsg(NetMsgId.player_gender_edit_succeed_ack);
return session.encodeMsg(NetMsgId.player_gender_edit_succeed_ack);
}
}

View File

@@ -13,7 +13,7 @@ public class HandlerPlayerHeadIconInfoReq extends NetHandler {
public byte[] handle(GameSession session, byte[] message) throws Exception {
var rsp = PlayerHeadIconInfoResp.newInstance();
return this.encodeMsg(NetMsgId.player_head_icon_info_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.player_head_icon_info_succeed_ack, rsp);
}
}

View File

@@ -16,7 +16,7 @@ public class HandlerPlayerLearnReq extends NetHandler {
// TODO set newbie info
session.getPlayer().setNewbieInfo(req.getGroupId(), req.getStepId());
return this.encodeMsg(NetMsgId.player_learn_succeed_ack);
return session.encodeMsg(NetMsgId.player_learn_succeed_ack);
}
}

View File

@@ -25,7 +25,7 @@ public class HandlerPlayerLoginReq extends NetHandler {
boolean result = session.login(loginToken);
if (!result) {
return this.encodeMsg(NetMsgId.player_login_failed_ack);
return session.encodeMsg(NetMsgId.player_login_failed_ack);
}
// Regenerate session token because we are switching encrpytion method
@@ -36,7 +36,7 @@ public class HandlerPlayerLoginReq extends NetHandler {
.setToken(session.getToken());
// Encode and send to client
return this.encodeMsg(NetMsgId.player_login_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.player_login_succeed_ack, rsp);
}
}

View File

@@ -10,7 +10,7 @@ public class HandlerPlayerMusicSetReq extends NetHandler {
@Override
public byte[] handle(GameSession session, byte[] message) throws Exception {
return this.encodeMsg(NetMsgId.player_music_set_failed_ack);
return session.encodeMsg(NetMsgId.player_music_set_failed_ack);
}
}

View File

@@ -15,7 +15,7 @@ public class HandlerPlayerNameEditReq extends NetHandler {
boolean success = session.getPlayer().editName(req.getName());
return this.encodeMsg(success ? NetMsgId.player_name_edit_succeed_ack : NetMsgId.player_name_edit_failed_ack);
return session.encodeMsg(success ? NetMsgId.player_name_edit_succeed_ack : NetMsgId.player_name_edit_failed_ack);
}
}

View File

@@ -32,7 +32,7 @@ public class HandlerPlayerPingReq extends NetHandler {
rsp.setNextPackage(nextPackage);
}
return this.encodeMsg(NetMsgId.player_ping_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.player_ping_succeed_ack, rsp);
}
}

View File

@@ -22,18 +22,18 @@ public class HandlerPlayerRegReq extends NetHandler {
// Sanity
if (req.getNickname() == null || req.getNickname().isEmpty()) {
return this.encodeMsg(NetMsgId.player_reg_failed_ack);
return session.encodeMsg(NetMsgId.player_reg_failed_ack);
}
// Create player
Player player = Nebula.getGameContext().getPlayerModule().createPlayer(session, req.getNickname(), req.getGender());
if (player == null) {
return this.encodeMsg(NetMsgId.player_reg_failed_ack);
return session.encodeMsg(NetMsgId.player_reg_failed_ack);
}
// Encode player data
return this.encodeMsg(NetMsgId.player_data_succeed_ack, session.getPlayer().toProto());
return session.encodeMsg(NetMsgId.player_data_succeed_ack, session.getPlayer().toProto());
}
}

View File

@@ -16,7 +16,8 @@ public class HandlerPlayerSignatureEdit extends NetHandler {
session.getPlayer().editSignature(req.getSignature());
return this.encodeMsg(NetMsgId.player_signature_edit_succeed_ack);
// Send response
return session.encodeMsg(NetMsgId.player_signature_edit_succeed_ack);
}
}

View File

@@ -16,7 +16,8 @@ public class HandlerPlayerTitleEditReq extends NetHandler {
boolean success = session.getPlayer().editTitle(req.getTitlePrefix(), req.getTitleSuffix());
return this.encodeMsg(success ? NetMsgId.player_title_edit_succeed_ack : NetMsgId.player_title_edit_failed_ack);
// Send response
return session.encodeMsg(success ? NetMsgId.player_title_edit_succeed_ack : NetMsgId.player_title_edit_failed_ack);
}
}

View File

@@ -17,14 +17,14 @@ public class HandlerRegionBossLevelApplyReq extends NetHandler {
var data = GameData.getRegionBossLevelDataTable().get(req.getId());
if (data == null || !data.hasEnergy(session.getPlayer())) {
return this.encodeMsg(NetMsgId.region_boss_level_apply_failed_ack);
return session.encodeMsg(NetMsgId.region_boss_level_apply_failed_ack);
}
// Set player instance id
session.getPlayer().getInstanceManager().setCurInstanceId(req.getId());
// Send response
return this.encodeMsg(NetMsgId.region_boss_level_apply_succeed_ack);
return session.encodeMsg(NetMsgId.region_boss_level_apply_succeed_ack);
}
}

View File

@@ -20,7 +20,7 @@ public class HandlerRegionBossLevelSettleReq extends NetHandler {
// Get boss level data
var data = GameData.getRegionBossLevelDataTable().get(player.getInstanceManager().getCurInstanceId());
if (data == null || !data.hasEnergy(player)) {
return this.encodeMsg(NetMsgId.region_boss_level_settle_failed_ack);
return session.encodeMsg(NetMsgId.region_boss_level_settle_failed_ack);
}
// Parse request
@@ -52,7 +52,7 @@ public class HandlerRegionBossLevelSettleReq extends NetHandler {
}
// Send response
return this.encodeMsg(NetMsgId.region_boss_level_settle_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.region_boss_level_settle_succeed_ack, rsp);
}
}

View File

@@ -17,14 +17,14 @@ public class HandlerSkillInstanceApplyReq extends NetHandler {
var data = GameData.getSkillInstanceDataTable().get(req.getId());
if (data == null || !data.hasEnergy(session.getPlayer())) {
return this.encodeMsg(NetMsgId.skill_instance_apply_failed_ack);
return session.encodeMsg(NetMsgId.skill_instance_apply_failed_ack);
}
// Set player instance id
session.getPlayer().getInstanceManager().setCurInstanceId(req.getId());
// Send response
return this.encodeMsg(NetMsgId.skill_instance_apply_succeed_ack);
return session.encodeMsg(NetMsgId.skill_instance_apply_succeed_ack);
}
}

View File

@@ -20,7 +20,7 @@ public class HandlerSkillInstanceSettleReq extends NetHandler {
// Get boss level data
var data = GameData.getSkillInstanceDataTable().get(player.getInstanceManager().getCurInstanceId());
if (data == null || !data.hasEnergy(player)) {
return this.encodeMsg(NetMsgId.skill_instance_settle_failed_ack);
return session.encodeMsg(NetMsgId.skill_instance_settle_failed_ack);
}
// Parse request
@@ -52,7 +52,7 @@ public class HandlerSkillInstanceSettleReq extends NetHandler {
}
// Send response
return this.encodeMsg(NetMsgId.skill_instance_settle_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.skill_instance_settle_succeed_ack, rsp);
}
}

View File

@@ -19,7 +19,7 @@ public class HandlerStarTowerApplyReq extends NetHandler {
var instance = session.getPlayer().getStarTowerManager().apply(req);
if (instance == null) {
return this.encodeMsg(NetMsgId.star_tower_apply_failed_ack);
return session.encodeMsg(NetMsgId.star_tower_apply_failed_ack);
}
// Create response
@@ -29,7 +29,7 @@ public class HandlerStarTowerApplyReq extends NetHandler {
rsp.getMutableChange();
return this.encodeMsg(NetMsgId.star_tower_apply_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.star_tower_apply_succeed_ack, rsp);
}
}

View File

@@ -21,7 +21,7 @@ public class HandlerStarTowerBuildBriefListGetReq extends NetHandler {
}
// Finish
return this.encodeMsg(NetMsgId.star_tower_build_brief_list_get_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.star_tower_build_brief_list_get_succeed_ack, rsp);
}
}

View File

@@ -29,7 +29,7 @@ public class HandlerStarTowerBuildDeleteReq extends NetHandler {
.setChange(changes.toProto());
// Encode packet
return this.encodeMsg(NetMsgId.star_tower_build_delete_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.star_tower_build_delete_succeed_ack, rsp);
}
}

View File

@@ -20,14 +20,14 @@ public class HandlerStarTowerBuildDetailGetReq extends NetHandler {
var build = session.getPlayer().getStarTowerManager().getBuilds().get(buildId);
if (build == null) {
return this.encodeMsg(NetMsgId.star_tower_build_detail_get_failed_ack);
return session.encodeMsg(NetMsgId.star_tower_build_detail_get_failed_ack);
}
// Build response
var rsp = StarTowerBuildDetailGetResp.newInstance()
.setDetail(build.toDetailProto());
return this.encodeMsg(NetMsgId.star_tower_build_detail_get_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.star_tower_build_detail_get_succeed_ack, rsp);
}
}

View File

@@ -18,13 +18,13 @@ public class HandlerStarTowerBuildLockUnlockReq extends NetHandler {
var build = session.getPlayer().getStarTowerManager().getBuildById(req.getBuildId());
if (build == null) {
return this.encodeMsg(NetMsgId.star_tower_build_lock_unlock_failed_ack);
return session.encodeMsg(NetMsgId.star_tower_build_lock_unlock_failed_ack);
}
build.setLock(req.getLock());
// Encode packet
return this.encodeMsg(NetMsgId.star_tower_build_lock_unlock_succeed_ack);
return session.encodeMsg(NetMsgId.star_tower_build_lock_unlock_succeed_ack);
}
}

View File

@@ -16,21 +16,21 @@ public class HandlerStarTowerBuildNameSetReq extends NetHandler {
// Sanity
if (req.getName() == null || req.getName().isEmpty()) {
return this.encodeMsg(NetMsgId.star_tower_build_name_set_failed_ack);
return session.encodeMsg(NetMsgId.star_tower_build_name_set_failed_ack);
}
// Get build
var build = session.getPlayer().getStarTowerManager().getBuildById(req.getBuildId());
if (build == null) {
return this.encodeMsg(NetMsgId.star_tower_build_name_set_failed_ack);
return session.encodeMsg(NetMsgId.star_tower_build_name_set_failed_ack);
}
// Set name
build.setName(req.getName());
// Encode packet
return this.encodeMsg(NetMsgId.star_tower_build_name_set_succeed_ack);
return session.encodeMsg(NetMsgId.star_tower_build_name_set_succeed_ack);
}
}

View File

@@ -37,7 +37,7 @@ public class HandlerStarTowerBuildPreferenceSetReq extends NetHandler {
}
// Encode packet
return this.encodeMsg(NetMsgId.star_tower_build_preference_set_succeed_ack);
return session.encodeMsg(NetMsgId.star_tower_build_preference_set_succeed_ack);
}
}

View File

@@ -23,13 +23,13 @@ public class HandlerStarTowerBuildWhetherSaveReq extends NetHandler {
);
if (!result) {
return this.encodeMsg(NetMsgId.star_tower_build_whether_save_failed_ack);
return session.encodeMsg(NetMsgId.star_tower_build_whether_save_failed_ack);
}
// Build response
var rsp = StarTowerBuildWhetherSaveResp.newInstance();
return this.encodeMsg(NetMsgId.star_tower_build_whether_save_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.star_tower_build_whether_save_succeed_ack, rsp);
}
}

View File

@@ -11,20 +11,20 @@ public class HandlerStarTowerGiveUpReq extends NetHandler {
@Override
public byte[] handle(GameSession session, byte[] message) throws Exception {
var instance = session.getPlayer().getStarTowerManager().giveUp();
var game = session.getPlayer().getStarTowerManager().giveUp();
if (instance == null) {
return this.encodeMsg(NetMsgId.star_tower_give_up_failed_ack);
if (game == null) {
return session.encodeMsg(NetMsgId.star_tower_give_up_failed_ack);
}
// Build response
var rsp = StarTowerGiveUpResp.newInstance()
.setFloor(instance.getFloor());
.setFloor(game.getFloor());
rsp.getMutableChange();
rsp.setBuild(instance.getBuild().toProto());
rsp.setBuild(game.getBuild().toProto());
return this.encodeMsg(NetMsgId.star_tower_give_up_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.star_tower_give_up_succeed_ack, rsp);
}
}

View File

@@ -15,7 +15,7 @@ public class HandlerStarTowerInteractReq extends NetHandler {
var game = session.getPlayer().getStarTowerManager().getGame();
if (game == null) {
return this.encodeMsg(NetMsgId.star_tower_interact_failed_ack);
return session.encodeMsg(NetMsgId.star_tower_interact_failed_ack);
}
// Parse request
@@ -24,8 +24,8 @@ public class HandlerStarTowerInteractReq extends NetHandler {
// Handle interaction
var rsp = game.handleInteract(req);
// Template
return this.encodeMsg(NetMsgId.star_tower_interact_succeed_ack, rsp);
// Send response
return session.encodeMsg(NetMsgId.star_tower_interact_succeed_ack, rsp);
}
}

View File

@@ -10,7 +10,7 @@ public class HandlerStoryApplyReq extends NetHandler {
@Override
public byte[] handle(GameSession session, byte[] message) throws Exception {
return this.encodeMsg(NetMsgId.story_apply_succeed_ack);
return session.encodeMsg(NetMsgId.story_apply_succeed_ack);
}
}

View File

@@ -37,7 +37,7 @@ public class HandlerStorySetInfoReq extends NetHandler {
rsp.addChapters(chapter);
}
return this.encodeMsg(NetMsgId.story_set_info_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.story_set_info_succeed_ack, rsp);
}
}

View File

@@ -18,7 +18,7 @@ public class HandlerStorySetRewardReceiveReq extends NetHandler {
var changes = session.getPlayer().getStoryManager().settleSet(req.getChapterId(), req.getSectionId());
// Finish
return this.encodeMsg(NetMsgId.story_set_reward_receive_succeed_ack, changes.toProto());
return session.encodeMsg(NetMsgId.story_set_reward_receive_succeed_ack, changes.toProto());
}
}

View File

@@ -25,8 +25,8 @@ public class HandlerStorySettleReq extends NetHandler {
// Settle
var changes = session.getPlayer().getStoryManager().settle(list);
// Finish
return this.encodeMsg(NetMsgId.story_settle_succeed_ack, changes.toProto());
// Send response
return session.encodeMsg(NetMsgId.story_settle_succeed_ack, changes.toProto());
}
}

View File

@@ -10,7 +10,7 @@ public class HandlerTowerGrowthDetailReq extends NetHandler {
@Override
public byte[] handle(GameSession session, byte[] message) throws Exception {
return this.encodeMsg(NetMsgId.tower_growth_detail_succeed_ack);
return session.encodeMsg(NetMsgId.tower_growth_detail_succeed_ack);
}
}

View File

@@ -17,14 +17,14 @@ public class HandlerWeekBossApplyReq extends NetHandler {
var data = GameData.getWeekBossLevelDataTable().get(req.getId());
if (data == null || !data.hasEnergy(session.getPlayer())) {
return this.encodeMsg(NetMsgId.week_boss_apply_failed_ack);
return session.encodeMsg(NetMsgId.week_boss_apply_failed_ack);
}
// Set player instance id
session.getPlayer().getInstanceManager().setCurInstanceId(req.getId());
// Send response
return this.encodeMsg(NetMsgId.week_boss_apply_succeed_ack);
return session.encodeMsg(NetMsgId.week_boss_apply_succeed_ack);
}
}

View File

@@ -20,7 +20,7 @@ public class HandlerWeekBossSettleReq extends NetHandler {
// Get boss level data
var data = GameData.getWeekBossLevelDataTable().get(player.getInstanceManager().getCurInstanceId());
if (data == null || !data.hasEnergy(player)) {
return this.encodeMsg(NetMsgId.week_boss_settle_failed_ack);
return session.encodeMsg(NetMsgId.week_boss_settle_failed_ack);
}
// Parse request
@@ -51,7 +51,7 @@ public class HandlerWeekBossSettleReq extends NetHandler {
}
// Send response
return this.encodeMsg(NetMsgId.week_boss_settle_succeed_ack, rsp);
return session.encodeMsg(NetMsgId.week_boss_settle_succeed_ack, rsp);
}
}

View File

@@ -242,7 +242,7 @@ public class AgentZoneHandler implements Handler {
var handler = new NetHandler() {
@Override
public byte[] handle(GameSession session, byte[] message) throws Exception {
return this.encodeMsg(failedAckId);
return PacketHelper.encodeMsg(failedAckId);
}
};

View File

@@ -42,7 +42,6 @@ public class UserSetDataHandler extends UserLoginHandler {
ctx.result("{\"Code\":200,\"Data\":{},\"Msg\":\"OK\"}");
}
@SuppressWarnings("unused")
private static class UserSetDataReqJson {
public String Key;
public String Value;