Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add server/client annotations to settingtypes.txt and use them #15756

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

grorp
Copy link
Member

@grorp grorp commented Feb 4, 2025

Resolves the "Deal with client-side vs server-side vs both sides settings correctly" part of #15701

  • Hide server-side settings in the pause menu if playing on a remote server (because changing them wouldn't have an effect, you'd have to change them on the remote server)

  • Always hide world-creation settings in the pause menu (because changing them wouldn't have an effect, you'd have to create a new world)

To do

This PR is a Ready for Review.

How to test

  1. Check if you agree with the concept
  2. Check that the main menu still shows all settings
  3. Check that the pause menu doesn't show server-side settings if playing on a remote server
  4. Check that the pause menu doesn't show world-creation settings

For fun, you can set shown_contexts.client = false to see server-side settings only. This should work too as of f72ae78. Off-topic idea: It might be interesting to add a /serversettings command for server admins in the future, based on the same settings menu code.

@grorp grorp force-pushed the setting-sides branch 3 times, most recently from 4ce3e4b to f72ae78 Compare February 5, 2025 20:22
@grorp
Copy link
Member Author

grorp commented Feb 7, 2025

Arguably it would be even better if we could make this obvious to the user, i.e. completely separate the settings menu by client and server, so that there's no potential for confusion as to why a setting is shown or hidden.

However, for that, we would need to find a good settings structure that works for separating both client/server and regular/advanced. Also, there are cases where settings are shared between client/server, and there are cases where a client setting is related to a server setting and it makes sense for it to be in the same place.

Even if we had a good structure, we'd still need a way to show this new separation. Do we add a new even-more-toplevel heading level? Tabs on top of the settings dialog? (What about mobile?)

So for now, what this PR does seems like the simpler solution.

@grorp grorp added this to the 5.12.0 milestone Feb 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant