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.AeadHelper;
import emu.nebula.util.Utils; import emu.nebula.util.Utils;
import lombok.Getter; import lombok.Getter;
import lombok.SneakyThrows;
import us.hebi.quickbuf.ProtoMessage;
import us.hebi.quickbuf.RepeatedByte; import us.hebi.quickbuf.RepeatedByte;
@Getter @Getter
@@ -63,6 +65,8 @@ public class GameSession {
public boolean hasPlayer() { public boolean hasPlayer() {
return this.player != null; return this.player != null;
} }
// Encryption
public void setClientKey(RepeatedByte key) { public void setClientKey(RepeatedByte key) {
this.clientPublicKey = key.toArray(); this.clientPublicKey = key.toArray();
@@ -95,6 +99,8 @@ public class GameSession {
return this.token; return this.token;
} }
// Login
public boolean login(String loginToken) { public boolean login(String loginToken) {
// Sanity check // Sanity check
if (this.account != null) { if (this.account != null) {
@@ -128,4 +134,19 @@ public class GameSession {
public void updateLastActiveTime() { public void updateLastActiveTime() {
this.lastActiveTime = System.currentTimeMillis(); 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; package emu.nebula.net;
import lombok.SneakyThrows;
import us.hebi.quickbuf.ProtoMessage;
public abstract class NetHandler { public abstract class NetHandler {
public boolean requireSession() { public boolean requireSession() {
@@ -13,21 +10,6 @@ public abstract class NetHandler {
return true; 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 // Handler
public abstract byte[] handle(GameSession session, byte[] message) throws Exception; public abstract byte[] handle(GameSession session, byte[] message) throws Exception;

View File

@@ -11,7 +11,7 @@ public class Handler extends NetHandler {
@Override @Override
public byte[] handle(GameSession session, byte[] message) throws Exception { public byte[] handle(GameSession session, byte[] message) throws Exception {
// Template // 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 { public byte[] handle(GameSession session, byte[] message) throws Exception {
var rsp = Achievements.newInstance(); 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); 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 @Override
public byte[] handle(GameSession session, byte[] message) throws Exception { 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 @Override
public byte[] handle(GameSession session, byte[] message) throws Exception { 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()); var character = session.getPlayer().getCharacters().getCharacterById(req.getValue());
if (character == null) { if (character == null) {
return this.encodeMsg(NetMsgId.char_advance_failed_ack); return session.encodeMsg(NetMsgId.char_advance_failed_ack);
} }
// Advance character // Advance character
var change = character.advance(); var change = character.advance();
if (change == null) { 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()); var data = GameData.getCharGemInstanceDataTable().get(req.getId());
if (data == null || !data.hasEnergy(session.getPlayer())) { 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 // Set player instance id
session.getPlayer().getInstanceManager().setCurInstanceId(req.getId()); session.getPlayer().getInstanceManager().setCurInstanceId(req.getId());
// Send response // 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 // Get boss level data
var data = GameData.getCharGemInstanceDataTable().get(player.getInstanceManager().getCurInstanceId()); var data = GameData.getCharGemInstanceDataTable().get(player.getInstanceManager().getCurInstanceId());
if (data == null || !data.hasEnergy(player)) { 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 // Parse request
@@ -52,7 +52,7 @@ public class HandlerCharGemInstanceSettleReq extends NetHandler {
} }
// Send response // 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()); var character = session.getPlayer().getCharacters().getCharacterById(req.getCharId());
if (character == null) { if (character == null) {
return this.encodeMsg(NetMsgId.char_skill_upgrade_failed_ack); return session.encodeMsg(NetMsgId.char_skill_upgrade_failed_ack);
} }
// Advance character // Advance character
@@ -25,10 +25,10 @@ public class HandlerCharSkillUpgradeReq extends NetHandler {
var change = character.upgradeSkill(index); var change = character.upgradeSkill(index);
if (change == null) { 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()); var character = session.getPlayer().getCharacters().getCharacterById(req.getCharId());
if (character == null) { if (character == null) {
return this.encodeMsg(NetMsgId.char_upgrade_failed_ack); return session.encodeMsg(NetMsgId.char_upgrade_failed_ack);
} }
// Upgrade character // Upgrade character
@@ -28,7 +28,7 @@ public class HandlerCharUpgradeReq extends NetHandler {
var change = character.upgrade(params); var change = character.upgrade(params);
if (change == null) { if (change == null) {
return this.encodeMsg(NetMsgId.char_upgrade_failed_ack); return session.encodeMsg(NetMsgId.char_upgrade_failed_ack);
} }
// Create response // Create response
@@ -37,7 +37,7 @@ public class HandlerCharUpgradeReq extends NetHandler {
.setLevel(character.getLevel()) .setLevel(character.getLevel())
.setExp(character.getExp()); .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 @Override
public byte[] handle(GameSession session, byte[] message) throws Exception { 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()); var data = GameData.getDailyInstanceDataTable().get(req.getId());
if (data == null || !data.hasEnergy(session.getPlayer())) { 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 // Check reward group
if (data.getRewardGroup(req.getRewardType()) == null) { 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 // Set player
session.getPlayer().getInstanceManager().setCurInstanceId(req.getId(), req.getRewardType()); session.getPlayer().getInstanceManager().setCurInstanceId(req.getId(), req.getRewardType());
// Send response // 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 // Get boss level data
var data = GameData.getDailyInstanceDataTable().get(player.getInstanceManager().getCurInstanceId()); var data = GameData.getDailyInstanceDataTable().get(player.getInstanceManager().getCurInstanceId());
if (data == null || !data.hasEnergy(player)) { 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 // Parse request
@@ -53,7 +53,7 @@ public class HandlerDailyInstanceSettleReq extends NetHandler {
} }
// Send response // 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()); var disc = session.getPlayer().getCharacters().getDiscById(req.getId());
if (disc == null) { if (disc == null) {
return this.encodeMsg(NetMsgId.disc_limit_break_failed_ack); return session.encodeMsg(NetMsgId.disc_limit_break_failed_ack);
} }
// Limit break // Limit break
var change = disc.limitBreak(req.getQty()); var change = disc.limitBreak(req.getQty());
if (change == null) { if (change == null) {
return this.encodeMsg(NetMsgId.disc_limit_break_failed_ack); return session.encodeMsg(NetMsgId.disc_limit_break_failed_ack);
} }
// Create response // Create response
@@ -34,7 +34,7 @@ public class HandlerDiscLimitBreakReq extends NetHandler {
.setStar(disc.getStar()) .setStar(disc.getStar())
.setChange(null); .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()); var disc = session.getPlayer().getCharacters().getDiscById(req.getId());
if (disc == null) { if (disc == null) {
return this.encodeMsg(NetMsgId.disc_promote_failed_ack); return session.encodeMsg(NetMsgId.disc_promote_failed_ack);
} }
// Advance character // Advance character
var change = disc.promote(); var change = disc.promote();
if (change == null) { if (change == null) {
return this.encodeMsg(NetMsgId.disc_promote_failed_ack); return session.encodeMsg(NetMsgId.disc_promote_failed_ack);
} }
// Build request // Build request
@@ -34,7 +34,7 @@ public class HandlerDiscPromoteReq extends NetHandler {
.setPhase(disc.getPhase()) .setPhase(disc.getPhase())
.setChange(change.toProto()); .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 @Override
public byte[] handle(GameSession session, byte[] message) throws Exception { 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()); var disc = session.getPlayer().getCharacters().getDiscById(req.getId());
if (disc == null) { if (disc == null) {
return this.encodeMsg(NetMsgId.disc_strengthen_failed_ack); return session.encodeMsg(NetMsgId.disc_strengthen_failed_ack);
} }
// Level up disc // Level up disc
@@ -28,7 +28,7 @@ public class HandlerDiscStrengthenReq extends NetHandler {
var change = disc.upgrade(params); var change = disc.upgrade(params);
if (change == null) { if (change == null) {
return this.encodeMsg(NetMsgId.disc_strengthen_failed_ack); return session.encodeMsg(NetMsgId.disc_strengthen_failed_ack);
} }
// Create response // Create response
@@ -37,7 +37,7 @@ public class HandlerDiscStrengthenReq extends NetHandler {
.setExp(disc.getExp()) .setExp(disc.getExp())
.setChange(change.toProto()); .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 { public byte[] handle(GameSession session, byte[] message) throws Exception {
var rsp = FriendListGetResp.newInstance(); 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 // 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 { public byte[] handle(GameSession session, byte[] message) throws Exception {
var rsp = GachaInformationResp.newInstance(); 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); var req = GachaNewbieObtainReq.parseFrom(message);
// TODO // 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); 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); 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 { public byte[] handle(GameSession session, byte[] message) throws Exception {
// Make sure we dont already have a session // Make sure we dont already have a session
if (session != null) { if (session != null) {
return this.encodeMsg(NetMsgId.ike_failed_ack); return session.encodeMsg(NetMsgId.ike_failed_ack);
} }
// Parse // Parse
@@ -55,7 +55,7 @@ public class HandlerIkeReq extends NetHandler {
*/ */
// Encode and send to client // 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()); var changes = session.getPlayer().getInventory().produce(req.getId(), req.getNum());
if (changes == null) { if (changes == null) {
return this.encodeMsg(NetMsgId.item_product_failed_ack); return session.encodeMsg(NetMsgId.item_product_failed_ack);
} }
// Send response // 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()); 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 // Sanity check
if (mail == null) { if (mail == null) {
return this.encodeMsg(NetMsgId.mail_pin_failed_ack); return session.encodeMsg(NetMsgId.mail_pin_failed_ack);
} }
// Build response // Build response
@@ -29,7 +29,7 @@ public class HandlerMailPinReq extends NetHandler {
.setFlag(mail.getFlag()) .setFlag(mail.getFlag())
.setPin(mail.isPin()); .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()); boolean result = session.getPlayer().getMailbox().readMail(req.getId(), req.getFlag());
if (!result) { 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); 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); 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); 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); 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); 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); 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 @Override
public byte[] handle(GameSession session, byte[] message) throws Exception { 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 // Set board
boolean success = session.getPlayer().setBoard(req.getIds()); 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 { public byte[] handle(GameSession session, byte[] message) throws Exception {
// Check if player has been created yet // Check if player has been created yet
if (session.getPlayer() == null) { if (session.getPlayer() == null) {
return this.encodeMsg(NetMsgId.player_new_notify); return session.encodeMsg(NetMsgId.player_new_notify);
} }
// Encode player data // 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()); 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 { public byte[] handle(GameSession session, byte[] message) throws Exception {
session.getPlayer().editGender(); 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 { public byte[] handle(GameSession session, byte[] message) throws Exception {
var rsp = PlayerHeadIconInfoResp.newInstance(); 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 // TODO set newbie info
session.getPlayer().setNewbieInfo(req.getGroupId(), req.getStepId()); 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); boolean result = session.login(loginToken);
if (!result) { 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 // Regenerate session token because we are switching encrpytion method
@@ -36,7 +36,7 @@ public class HandlerPlayerLoginReq extends NetHandler {
.setToken(session.getToken()); .setToken(session.getToken());
// Encode and send to client // 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 @Override
public byte[] handle(GameSession session, byte[] message) throws Exception { 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()); 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); 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 // Sanity
if (req.getNickname() == null || req.getNickname().isEmpty()) { 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 // Create player
Player player = Nebula.getGameContext().getPlayerModule().createPlayer(session, req.getNickname(), req.getGender()); Player player = Nebula.getGameContext().getPlayerModule().createPlayer(session, req.getNickname(), req.getGender());
if (player == null) { if (player == null) {
return this.encodeMsg(NetMsgId.player_reg_failed_ack); return session.encodeMsg(NetMsgId.player_reg_failed_ack);
} }
// Encode player data // 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()); 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()); 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()); var data = GameData.getRegionBossLevelDataTable().get(req.getId());
if (data == null || !data.hasEnergy(session.getPlayer())) { 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 // Set player instance id
session.getPlayer().getInstanceManager().setCurInstanceId(req.getId()); session.getPlayer().getInstanceManager().setCurInstanceId(req.getId());
// Send response // 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 // Get boss level data
var data = GameData.getRegionBossLevelDataTable().get(player.getInstanceManager().getCurInstanceId()); var data = GameData.getRegionBossLevelDataTable().get(player.getInstanceManager().getCurInstanceId());
if (data == null || !data.hasEnergy(player)) { 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 // Parse request
@@ -52,7 +52,7 @@ public class HandlerRegionBossLevelSettleReq extends NetHandler {
} }
// Send response // 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()); var data = GameData.getSkillInstanceDataTable().get(req.getId());
if (data == null || !data.hasEnergy(session.getPlayer())) { 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 // Set player instance id
session.getPlayer().getInstanceManager().setCurInstanceId(req.getId()); session.getPlayer().getInstanceManager().setCurInstanceId(req.getId());
// Send response // 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 // Get boss level data
var data = GameData.getSkillInstanceDataTable().get(player.getInstanceManager().getCurInstanceId()); var data = GameData.getSkillInstanceDataTable().get(player.getInstanceManager().getCurInstanceId());
if (data == null || !data.hasEnergy(player)) { 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 // Parse request
@@ -52,7 +52,7 @@ public class HandlerSkillInstanceSettleReq extends NetHandler {
} }
// Send response // 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); var instance = session.getPlayer().getStarTowerManager().apply(req);
if (instance == null) { if (instance == null) {
return this.encodeMsg(NetMsgId.star_tower_apply_failed_ack); return session.encodeMsg(NetMsgId.star_tower_apply_failed_ack);
} }
// Create response // Create response
@@ -29,7 +29,7 @@ public class HandlerStarTowerApplyReq extends NetHandler {
rsp.getMutableChange(); 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 // 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()); .setChange(changes.toProto());
// Encode packet // 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); var build = session.getPlayer().getStarTowerManager().getBuilds().get(buildId);
if (build == null) { 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 // Build response
var rsp = StarTowerBuildDetailGetResp.newInstance() var rsp = StarTowerBuildDetailGetResp.newInstance()
.setDetail(build.toDetailProto()); .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()); var build = session.getPlayer().getStarTowerManager().getBuildById(req.getBuildId());
if (build == null) { 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()); build.setLock(req.getLock());
// Encode packet // 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 // Sanity
if (req.getName() == null || req.getName().isEmpty()) { 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 // Get build
var build = session.getPlayer().getStarTowerManager().getBuildById(req.getBuildId()); var build = session.getPlayer().getStarTowerManager().getBuildById(req.getBuildId());
if (build == null) { 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 // Set name
build.setName(req.getName()); build.setName(req.getName());
// Encode packet // 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 // 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) { 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 // Build response
var rsp = StarTowerBuildWhetherSaveResp.newInstance(); 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 @Override
public byte[] handle(GameSession session, byte[] message) throws Exception { public byte[] handle(GameSession session, byte[] message) throws Exception {
var instance = session.getPlayer().getStarTowerManager().giveUp(); var game = session.getPlayer().getStarTowerManager().giveUp();
if (instance == null) { if (game == null) {
return this.encodeMsg(NetMsgId.star_tower_give_up_failed_ack); return session.encodeMsg(NetMsgId.star_tower_give_up_failed_ack);
} }
// Build response // Build response
var rsp = StarTowerGiveUpResp.newInstance() var rsp = StarTowerGiveUpResp.newInstance()
.setFloor(instance.getFloor()); .setFloor(game.getFloor());
rsp.getMutableChange(); 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(); var game = session.getPlayer().getStarTowerManager().getGame();
if (game == null) { if (game == null) {
return this.encodeMsg(NetMsgId.star_tower_interact_failed_ack); return session.encodeMsg(NetMsgId.star_tower_interact_failed_ack);
} }
// Parse request // Parse request
@@ -24,8 +24,8 @@ public class HandlerStarTowerInteractReq extends NetHandler {
// Handle interaction // Handle interaction
var rsp = game.handleInteract(req); var rsp = game.handleInteract(req);
// Template // Send response
return this.encodeMsg(NetMsgId.star_tower_interact_succeed_ack, rsp); return session.encodeMsg(NetMsgId.star_tower_interact_succeed_ack, rsp);
} }
} }

View File

@@ -10,7 +10,7 @@ public class HandlerStoryApplyReq extends NetHandler {
@Override @Override
public byte[] handle(GameSession session, byte[] message) throws Exception { 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); 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()); var changes = session.getPlayer().getStoryManager().settleSet(req.getChapterId(), req.getSectionId());
// Finish // 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 // Settle
var changes = session.getPlayer().getStoryManager().settle(list); var changes = session.getPlayer().getStoryManager().settle(list);
// Finish // Send response
return this.encodeMsg(NetMsgId.story_settle_succeed_ack, changes.toProto()); return session.encodeMsg(NetMsgId.story_settle_succeed_ack, changes.toProto());
} }
} }

View File

@@ -10,7 +10,7 @@ public class HandlerTowerGrowthDetailReq extends NetHandler {
@Override @Override
public byte[] handle(GameSession session, byte[] message) throws Exception { 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()); var data = GameData.getWeekBossLevelDataTable().get(req.getId());
if (data == null || !data.hasEnergy(session.getPlayer())) { 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 // Set player instance id
session.getPlayer().getInstanceManager().setCurInstanceId(req.getId()); session.getPlayer().getInstanceManager().setCurInstanceId(req.getId());
// Send response // 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 // Get boss level data
var data = GameData.getWeekBossLevelDataTable().get(player.getInstanceManager().getCurInstanceId()); var data = GameData.getWeekBossLevelDataTable().get(player.getInstanceManager().getCurInstanceId());
if (data == null || !data.hasEnergy(player)) { 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 // Parse request
@@ -51,7 +51,7 @@ public class HandlerWeekBossSettleReq extends NetHandler {
} }
// Send response // 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() { var handler = new NetHandler() {
@Override @Override
public byte[] handle(GameSession session, byte[] message) throws Exception { 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\"}"); ctx.result("{\"Code\":200,\"Data\":{},\"Msg\":\"OK\"}");
} }
@SuppressWarnings("unused")
private static class UserSetDataReqJson { private static class UserSetDataReqJson {
public String Key; public String Key;
public String Value; public String Value;