diff --git a/Minecraft.Client/ServerPlayer.cpp b/Minecraft.Client/ServerPlayer.cpp index 94de3906..fd156685 100644 --- a/Minecraft.Client/ServerPlayer.cpp +++ b/Minecraft.Client/ServerPlayer.cpp @@ -568,6 +568,11 @@ void ServerPlayer::die(DamageSource *source) if (level->getLevelData()->isHardcore()) { setGameMode(GameType::ADVENTURE); + + // Ban this player's XUID and force-save so the host + // cannot circumvent the death by quitting without saving. + server->getPlayers()->banXuid(getOnlineXuid()); + app.SetXuiServerAction(ProfileManager.GetPrimaryPad(), eXuiServerAction_SaveGame); } if (!level->getGameRules()->getBoolean(GameRules::RULE_KEEPINVENTORY))