Geyser icon indicating copy to clipboard operation
Geyser copied to clipboard

Implement Hardcore Mode

Open letsgoawaydev opened this issue 11 months ago • 8 comments

This PR properly translates hardcore mode now that it is available in Bedrock Edition.

letsgoawaydev avatar Dec 12 '24 10:12 letsgoawaydev

except for this one thing, LGTM - sorry for the longer wait.

I don't think this should be merged for now as on Java if you initially join a world that's not on Hardcore and a proxy sends you to a world that is on Hardcore, this PR doesn't account for that as unfortunately it doesn't seem like it's changable after the StartGamePacket is sent. :/

letsgoawaydev avatar Feb 06 '25 09:02 letsgoawaydev

What harm is there with this being merged, for the sake of single servers that are hardcore?

OfficialTheosis avatar May 07 '25 09:05 OfficialTheosis

except for this one thing, LGTM - sorry for the longer wait.

I don't think this should be merged for now as on Java if you initially join a world that's not on Hardcore and a proxy sends you to a world that is on Hardcore, this PR doesn't account for that as unfortunately it doesn't seem like it's changable after the StartGamePacket is sent. :/

@letsgoawaydev that could be worked around by sending a TransferPacket to the bedrock client while keeping the java connection alive on Geyser. Probably not the best way though, but it is possible. Maybe this could be something for an extension?

lukeeey avatar Jun 06 '25 02:06 lukeeey

We've discussed this idea before. It's not really feasible as we'd need to cache all loaded chunks, all block entities, and all entity data and positions.

Camotoy avatar Jun 06 '25 02:06 Camotoy

maybe it could be a config option but it would be better if it just worked

On Fri, 6 Jun 2025 at 10:31, Camotoy @.***> wrote:

Camotoy left a comment (GeyserMC/Geyser#5216) https://github.com/GeyserMC/Geyser/pull/5216#issuecomment-2947859134

We've discussed this idea before. It's not really feasible as we'd need to cache all loaded chunks, all block entities, and all entity data and positions.

— Reply to this email directly, view it on GitHub https://github.com/GeyserMC/Geyser/pull/5216#issuecomment-2947859134, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQJSY33GSQMVJUI2EM6VIED3CD4R5AVCNFSM6AAAAABTPM6IBSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDSNBXHA2TSMJTGQ . You are receiving this because you were mentioned.Message ID: @.***>

letsgoawaydev avatar Jun 06 '25 04:06 letsgoawaydev

maybe it could be a config option but it would be better if it just worked

I agree with what camotoy is saying, but that doesn't stop anyone making it into an extension :)

lukeeey avatar Jun 06 '25 06:06 lukeeey

If a config option were to be added, imo it would ideally not be a boolean, but a tristate, with default being whatever the server specifies (so false for proxies and standalone and whatever is in server.properties for the rest) and then the obvious default value... default

Novampr avatar Jun 06 '25 06:06 Novampr

My janky-ish solution to avoid this issue would be the following:

  • set hardcore property on non-proxy setups
  • on proxy setups, don't set the property, but allow specifying whether hardcore mode should be on using API. Potentially in a new JavaLoginEvent? That'd also allow extensions to listen to server switching, which would be quite neat

onebeastchris avatar Jun 07 '25 23:06 onebeastchris