From 539fa16160d3dd72fbfdf637e28e0f817d638674 Mon Sep 17 00:00:00 2001 From: KingRainbow44 Date: Sat, 16 Sep 2023 19:25:37 -0400 Subject: [PATCH] Fix packet handling --- .../grasscutter/server/game/GameServerPacketHandler.java | 2 +- src/main/java/emu/grasscutter/server/game/GameSession.java | 6 +++--- .../grasscutter/server/game/session/GameSessionManager.java | 6 ++---- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/main/java/emu/grasscutter/server/game/GameServerPacketHandler.java b/src/main/java/emu/grasscutter/server/game/GameServerPacketHandler.java index 774447058..4488cd699 100644 --- a/src/main/java/emu/grasscutter/server/game/GameServerPacketHandler.java +++ b/src/main/java/emu/grasscutter/server/game/GameServerPacketHandler.java @@ -77,7 +77,7 @@ public final class GameServerPacketHandler { // Invoke event. var event = new ReceivePacketEvent(session, opcode, payload); - if (!event.call()) // If event is not canceled, continue. + if (event.call()) // If event is not canceled, continue. handler.handle(session, header, event.getPacketData()); } catch (Exception ex) { Grasscutter.getLogger().warn("Unable to handle packet.", ex); diff --git a/src/main/java/emu/grasscutter/server/game/GameSession.java b/src/main/java/emu/grasscutter/server/game/GameSession.java index 8d00e4135..3ca036022 100644 --- a/src/main/java/emu/grasscutter/server/game/GameSession.java +++ b/src/main/java/emu/grasscutter/server/game/GameSession.java @@ -148,7 +148,7 @@ public class GameSession implements KcpChannel { if (packet.shouldEncrypt) { Crypto.xor(bytes, packet.useDispatchKey() ? Crypto.DISPATCH_KEY : this.encryptKey); } - tunnel.writeData(bytes); + this.tunnel.writeData(bytes); } catch (Exception ignored) { Grasscutter.getLogger().debug("Unable to send packet to client."); } @@ -228,8 +228,8 @@ public class GameSession implements KcpChannel { // Handle getServer().getPacketHandler().handle(this, opcode, header, payload); } - } catch (Exception e) { - e.printStackTrace(); + } catch (Exception exception) { + Grasscutter.getLogger().warn("Unable to handle packet.", exception); } finally { // byteBuf.release(); //Needn't packet.release(); diff --git a/src/main/java/emu/grasscutter/server/game/session/GameSessionManager.java b/src/main/java/emu/grasscutter/server/game/session/GameSessionManager.java index 9ac341d6d..af178c4f1 100644 --- a/src/main/java/emu/grasscutter/server/game/session/GameSessionManager.java +++ b/src/main/java/emu/grasscutter/server/game/session/GameSessionManager.java @@ -70,10 +70,8 @@ public final class GameSessionManager implements KcpListener { } // Handle the message in a separate thread. - executor.submit(() -> { - var bytes = Utils.byteBufToArray(byteBuf); - session.onMessage(bytes); - }); + var bytes = Utils.byteBufToArray(byteBuf); + executor.submit(() -> session.onMessage(bytes)); } @Override