Skip to content

feat: non-breaking SSS rework for the third time 😭 #555

Closed
Someone-193 wants to merge 6 commits into
ExMod-Team:devfrom
Someone-193:SSSPR
Closed

feat: non-breaking SSS rework for the third time 😭 #555
Someone-193 wants to merge 6 commits into
ExMod-Team:devfrom
Someone-193:SSSPR

Conversation

@Someone-193

Copy link
Copy Markdown
Collaborator

Description

Describe the changes
I hate the fact I'm typing this up again, but this PR obsoletes old Exiled SSS concepts like grouping settings by header, and SettingBase.SyncOnJoin. It replaces these concepts with a new class SettingGroup that groups together settings by however a developer wants to, as well as controlling the groups priority when being sent to clients (higher priority groups are higher on the clients list) and letting developer controls who sees which groups via a Predicate in SettingGroup. SettingGroups can also contain more SettingGroups under them recursively so you can stack and arrange your settings list however you'd like. In terms of how it reworks old stuff, it just registers and unregisters settings to a static SettingGroup called ObsoleteGroup.

What is the current behavior? (You can also link to an open issue here)
Exiled SSS mid

What is the new behavior? (if this is a feature change)
Exiled SSS not mid

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
nuh uh

Other information:
If you'd like to verify that this PR is non breaking, try to get the most complicated SSS thing you can get and run it on this PR. If anything breaks in actual dll, lmk

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentations

Submission checklist

  • I have checked the project can be compiled
  • I have tested my changes and it worked as expected

Patches (if there are any changes related to Harmony patches)

  • I have checked no IL patching errors in the console

Other

  • Still requires more testing

@Someone-193

Copy link
Copy Markdown
Collaborator Author

ok so I found out today that this PR breaks existing plugins that don't use SettingBase.Register(); (at least Exiled will override it n stuff), I guess that's the price to pay for usable SSS. This PR would break the other way as well, SettingGroups intended for a particular player n stuff will be shown to all if ServerSpecificSettingSync.SendToAll(); is called

@Someone-193

Copy link
Copy Markdown
Collaborator Author

I made a LabAPI plugin for SSS which is better than this PR, so it's best to just ignore this until we can rework SSS next major release

@Someone-193 Someone-193 deleted the SSSPR branch December 20, 2025 16:50
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