Skip to content

Conversation

@letsgoawaydev
Copy link
Contributor

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

Copy link
Member

@onebeastchris onebeastchris left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@onebeastchris onebeastchris added the PR: Feature When a PR implements a new feature label Dec 23, 2024
Copy link
Member

@onebeastchris onebeastchris left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Comment on lines +95 to +96
// This is to ensure that you don't get stuck without a respawn screen in hardcore
if (!entity.isAlive()) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if this is specific to hardcore mode - shouldn't this also check for it?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This only ever happens if hardcore mode is on afaik, I don't think there is a need for an extra check

@letsgoawaydev
Copy link
Contributor Author

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. :/

@OfficialTheosis
Copy link

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

@lukeeey
Copy link
Member

lukeeey commented Jun 6, 2025

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?

@Camotoy
Copy link
Member

Camotoy commented Jun 6, 2025

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.

@letsgoawaydev
Copy link
Contributor Author

letsgoawaydev commented Jun 6, 2025 via email

@lukeeey
Copy link
Member

lukeeey commented Jun 6, 2025

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 :)

@Novampr
Copy link
Contributor

Novampr commented Jun 6, 2025

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

@onebeastchris
Copy link
Member

onebeastchris commented Jun 7, 2025

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

PR: Feature When a PR implements a new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants