From 084ad5415cebf1b3bc5eb4691d062efaccd500bb Mon Sep 17 00:00:00 2001 From: DrSmugleaf Date: Tue, 29 Aug 2023 15:50:23 -0700 Subject: [PATCH] Fix jobs not getting their round start message (#19643) --- Content.Server/Roles/Jobs/JobSystem.cs | 8 +++----- Content.Server/Roles/MindRoleAddedEvent.cs | 8 ++++++++ Content.Server/Roles/RoleAddedEvent.cs | 3 ++- Content.Server/Roles/RoleSystem.cs | 3 +++ 4 files changed, 16 insertions(+), 6 deletions(-) create mode 100644 Content.Server/Roles/MindRoleAddedEvent.cs diff --git a/Content.Server/Roles/Jobs/JobSystem.cs b/Content.Server/Roles/Jobs/JobSystem.cs index a97aaf0776..dfb689b4f9 100644 --- a/Content.Server/Roles/Jobs/JobSystem.cs +++ b/Content.Server/Roles/Jobs/JobSystem.cs @@ -21,10 +21,10 @@ public sealed class JobSystem : EntitySystem public override void Initialize() { - SubscribeLocalEvent(MindOnDoGreeting); + SubscribeLocalEvent(MindOnDoGreeting); } - private void MindOnDoGreeting(EntityUid mindId, JobComponent component, RoleAddedEvent args) + private void MindOnDoGreeting(EntityUid mindId, MindComponent component, ref MindRoleAddedEvent args) { if (!_mind.TryGetSession(mindId, out var session)) return; @@ -38,9 +38,7 @@ public sealed class JobSystem : EntitySystem if (prototype.RequireAdminNotify) _chat.DispatchServerMessage(session, Loc.GetString("job-greet-important-disconnect-admin-notify")); - _chat.DispatchServerMessage(session, Loc.GetString("job-greet-supervisors-warning", - ("jobName", Name), - ("supervisors", Loc.GetString(prototype.Supervisors)))); + _chat.DispatchServerMessage(session, Loc.GetString("job-greet-supervisors-warning", ("jobName", prototype.LocalizedName), ("supervisors", Loc.GetString(prototype.Supervisors)))); } public void MindAddJob(EntityUid mindId, string jobPrototypeId) diff --git a/Content.Server/Roles/MindRoleAddedEvent.cs b/Content.Server/Roles/MindRoleAddedEvent.cs new file mode 100644 index 0000000000..9d208a4eba --- /dev/null +++ b/Content.Server/Roles/MindRoleAddedEvent.cs @@ -0,0 +1,8 @@ +namespace Content.Server.Roles; + +/// +/// Raised on mind entities when a role is added to them. +/// for the one raised on player entities. +/// +[ByRefEvent] +public readonly record struct MindRoleAddedEvent; diff --git a/Content.Server/Roles/RoleAddedEvent.cs b/Content.Server/Roles/RoleAddedEvent.cs index 3874946a3d..84d72ece04 100644 --- a/Content.Server/Roles/RoleAddedEvent.cs +++ b/Content.Server/Roles/RoleAddedEvent.cs @@ -3,7 +3,8 @@ namespace Content.Server.Roles; /// -/// Event raised on player entities to indicate that a role was added to their mind. +/// Raised on player entities when a role is added to them. +/// for the one raised on mind entities. /// /// The mind id associated with the player. /// The mind component associated with the mind id. diff --git a/Content.Server/Roles/RoleSystem.cs b/Content.Server/Roles/RoleSystem.cs index 151a3b21b1..d5fb032aac 100644 --- a/Content.Server/Roles/RoleSystem.cs +++ b/Content.Server/Roles/RoleSystem.cs @@ -83,6 +83,9 @@ public sealed class RoleSystem : EntitySystem AddComp(mindId, component); var antagonist = IsAntagonistRole(); + var mindEv = new MindRoleAddedEvent(); + RaiseLocalEvent(mindId, ref mindEv); + var message = new RoleAddedEvent(mindId, mind, antagonist); if (mind.OwnedEntity != null) {