diff options
Diffstat (limited to 'Client/Assembly-CSharp/MeetingRoomManager.cs')
-rw-r--r-- | Client/Assembly-CSharp/MeetingRoomManager.cs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Client/Assembly-CSharp/MeetingRoomManager.cs b/Client/Assembly-CSharp/MeetingRoomManager.cs new file mode 100644 index 0000000..dcb519f --- /dev/null +++ b/Client/Assembly-CSharp/MeetingRoomManager.cs @@ -0,0 +1,36 @@ +using System; +using InnerNet; + +public class MeetingRoomManager : IDisconnectHandler +{ + public static readonly MeetingRoomManager Instance = new MeetingRoomManager(); + + private PlayerControl reporter; + + private GameData.PlayerInfo target; + + public void AssignSelf(PlayerControl reporter, GameData.PlayerInfo target) + { + this.reporter = reporter; + this.target = target; + AmongUsClient.Instance.DisconnectHandlers.AddUnique(this); + } + + public void RemoveSelf() + { + AmongUsClient.Instance.DisconnectHandlers.Remove(this); + } + + public void HandleDisconnect(PlayerControl pc, DisconnectReasons reason) + { + if (AmongUsClient.Instance.AmHost) + { + this.reporter.CmdReportDeadBody(this.target); + } + } + + public void HandleDisconnect() + { + this.HandleDisconnect(null, DisconnectReasons.ExitGame); + } +} |