Skip to content

Conversation

ElectroJr
Copy link
Member

About the PR

This PR moves various parts of ClientAdminManager and AdminManager into a new SharedAdminManager.

Why / Balance

Reduces code duplication and required for space-wizards/RobustToolbox#5862
This PR was spun off from #36717, removing any parts that relied on engine changes to try decouple the engine PR from content.

Technical details

Part of this PR changes IoC initialization logic a bit. In particular, the shared entity point used to inject dependencies in PreInit(). However, it now depends ISharedAdminManager which is registered by the server/client. So not it instead injects dependencies in Init(), while the client & server will register types in PreInit().

I think these changes aren't strictly required, and I could just not use a [Dependency] field, but I think these changes make sense and clear up initialization spaghetti a bit. But maybe this behavior is required for some reason?

Requirements

Breaking changes

  • AdminCommandAttribute has been moved to shared (Content.Shared.Administration)
  • Several methods in ClientAdminManager and AdminManager have modified or combined and moved to SharedAdminManager.
  • Entrypoint initialization has changed slightly. In particular, the client & server will now perform IoC registrations (i.e., ServerContentIoC.Register()) in PreInit() instead of Init()

@ElectroJr ElectroJr added P3: Standard Priority: Default priority for repository items. D2: Medium Difficulty: A good amount of codebase knowledge required. A: Core Tech Area: Underlying core tech for the game and the Github repository. T: Chore Type: Some procedure that has to be done to the project. labels Sep 21, 2025
@PJBot PJBot added S: Approved Status: Reviewed and approved by at least one maintainer; a PR may require another approval. S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. size/M Denotes a PR that changes 100-999 lines. labels Sep 21, 2025
ElectroJr added a commit to ElectroJr/space-station-14 that referenced this pull request Sep 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A: Core Tech Area: Underlying core tech for the game and the Github repository. D2: Medium Difficulty: A good amount of codebase knowledge required. P3: Standard Priority: Default priority for repository items. S: Approved Status: Reviewed and approved by at least one maintainer; a PR may require another approval. S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. size/M Denotes a PR that changes 100-999 lines. T: Chore Type: Some procedure that has to be done to the project.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants