Skip to content

Commit 71baf0c

Browse files
committed
allow multiple packet reads at once
might reduce issues with stray packet queueing
1 parent 569199d commit 71baf0c

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

src/main/java/com/denizenscript/depenizen/bungee/DepenizenConnection.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,11 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) {
144144
ByteBuf m = (ByteBuf) msg;
145145
packetBuffer.writeBytes(m);
146146
m.release();
147-
if (currentStage == Stage.AWAIT_HEADER) {
148-
if (packetBuffer.readableBytes() >= 8) {
147+
while (true) {
148+
if (currentStage == Stage.AWAIT_HEADER) {
149+
if (packetBuffer.readableBytes() < 8) {
150+
return;
151+
}
149152
waitingLength = packetBuffer.readInt();
150153
packetId = packetBuffer.readInt();
151154
currentStage = Stage.AWAIT_DATA;
@@ -158,9 +161,10 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) {
158161
return;
159162
}
160163
}
161-
}
162-
if (currentStage == Stage.AWAIT_DATA) {
163-
if (packetBuffer.readableBytes() >= waitingLength) {
164+
else if (currentStage == Stage.AWAIT_DATA) {
165+
if (packetBuffer.readableBytes() < waitingLength) {
166+
return;
167+
}
164168
try {
165169
lastPacketReceived = System.currentTimeMillis();
166170
PacketIn packet = DepenizenBungee.instance.packets.get(packetId);
@@ -174,6 +178,9 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) {
174178
return;
175179
}
176180
}
181+
else {
182+
return;
183+
}
177184
}
178185
}
179186
}

0 commit comments

Comments
 (0)