Skip to content

Commit 2985a23

Browse files
R00tB33rManHP888
andcommitted
Forward DisconnectPacket to client in ConfigSessionHandler and TransitionSessionHandler
Co-authored-by: HP888 <hp888@o2.pl>
1 parent 81deb1f commit 2985a23

2 files changed

Lines changed: 5 additions & 4 deletions

File tree

proxy/src/main/java/com/velocitypowered/proxy/connection/backend/ConfigSessionHandler.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ public boolean handle(final ResourcePackRequestPacket packet) {
170170
if (serverConn.getConnection() != null) {
171171
// We can technically skip these first 2 states, however, for conformity to normal state flow expectations...
172172
serverConn.getConnection().write(new ResourcePackResponsePacket(
173-
packet.getId(), packet.getHash(), PlayerResourcePackStatusEvent.Status.ACCEPTED));
173+
packet.getId(), packet.getHash(), PlayerResourcePackStatusEvent.Status.ACCEPTED));
174174
serverConn.getConnection().write(new ResourcePackResponsePacket(
175175
packet.getId(), packet.getHash(), PlayerResourcePackStatusEvent.Status.DOWNLOADED));
176176
serverConn.getConnection().write(new ResourcePackResponsePacket(
@@ -255,7 +255,8 @@ public boolean handle(FinishedUpdatePacket packet) {
255255

256256
@Override
257257
public boolean handle(DisconnectPacket packet) {
258-
serverConn.disconnect();
258+
MinecraftConnection connection = serverConn.getPlayer().getConnection();
259+
connection.closeWith(DisconnectPacket.create(packet.getReason().getComponent(), connection.getProtocolVersion(), connection.getState()));
259260
resultFuture.complete(ConnectionRequestResults.forDisconnect(packet, serverConn.getServer()));
260261
return true;
261262
}

proxy/src/main/java/com/velocitypowered/proxy/connection/backend/TransitionSessionHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,8 @@ public boolean handle(JoinGamePacket packet) {
169169

170170
@Override
171171
public boolean handle(DisconnectPacket packet) {
172-
final MinecraftConnection connection = serverConn.ensureConnected();
173-
serverConn.disconnect();
172+
final MinecraftConnection connection = serverConn.getPlayer().getConnection();
173+
connection.closeWith(DisconnectPacket.create(packet.getReason().getComponent(), connection.getProtocolVersion(), connection.getState()));
174174

175175
// If we were in the middle of the Forge handshake, it is not safe to proceed. We must kick
176176
// the client.

0 commit comments

Comments
 (0)