fix: emit disconnect event when the server didn't disconnect us (like /server)

This commit is contained in:
ChomeNS
2025-06-19 17:35:15 +07:00
parent 3dc1ff9d6e
commit 27d289a84d
2 changed files with 14 additions and 3 deletions

View File

@@ -1 +1 @@
3464
3467

View File

@@ -229,8 +229,6 @@ public class Bot extends SessionAdapter {
@Override
public void packetReceived (final Session session, final Packet packet) {
this.listener.dispatch(listener -> listener.packetReceived(session, packet));
switch (packet) {
case final ClientboundLoginPacket t_packet -> packetReceived(t_packet);
case final ClientboundLoginFinishedPacket t_packet -> packetReceived(t_packet);
@@ -242,6 +240,8 @@ public class Bot extends SessionAdapter {
case final ClientboundCustomPayloadPacket t_packet -> packetReceived(t_packet);
default -> { }
}
this.listener.dispatch(listener -> listener.packetReceived(session, packet));
}
private void packetReceived (final ClientboundLoginFinishedPacket packet) {
@@ -251,6 +251,17 @@ public class Bot extends SessionAdapter {
}
private void packetReceived (final ClientboundLoginPacket ignoredPacket) {
if (loggedIn) {
// !!! this will only call OUR disconnect listeners, not MCProtocolLib's
this.listener.dispatch(listener -> listener.disconnected(
new DisconnectedEvent(
session,
Component.text("Server didn't send ClientboundDisconnectPacket"),
null
)
));
}
loggedIn = true;
loginTime = System.currentTimeMillis();
connectAttempts = 0;