To sum it up, inside of GuiGameOver.java when the game checks if the world was in hardcore, it only changes the GuiScreen to the Main Menu without sending the normal disconnect packet.
Specifically in the actionPreformed function of GuiGameOver.java the if statement
if (this.mc.world.getWorldInfo().isHardcoreModeEnabled()) {
this.mc.displayGuiScreen(new GuiMainMenu());
}
should more closely mirror the functionality of the confirmClicked function (where result is a boolean that is true if the player clicked "Title Screen" after dying).
if (result) {
if (this.mc.world != null) {
this.mc.world.sendQuittingDisconnectingPacket();
}
this.mc.loadWorld((WorldClient)null);
this.mc.displayGuiScreen(new GuiMainMenu());
}
The fixed code is the following (for actionPerformed in GuiGameOver.java ~line 75)
I seem to have found the source of the issue.
To sum it up, inside of GuiGameOver.java when the game checks if the world was in hardcore, it only changes the GuiScreen to the Main Menu without sending the normal disconnect packet.
Specifically in the actionPreformed function of GuiGameOver.java the if statement
should more closely mirror the functionality of the confirmClicked function (where result is a boolean that is true if the player clicked "Title Screen" after dying).
The fixed code is the following (for actionPerformed in GuiGameOver.java ~line 75)