From 3064838e065edc74aeac2996f1ed08e494de6168 Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Tue, 11 Jan 2022 23:12:04 -0800 Subject: [PATCH] OnAddPlayer and OnRemovePlayer use PlayerInfo instead of PlayerId --- QSB/EyeOfTheUniverse/CosmicInflation/InflationManager.cs | 4 ++-- QSB/EyeOfTheUniverse/MaskSync/MaskManager.cs | 2 +- QSB/ItemSync/WorldObjects/Items/QSBOWItem.cs | 4 ++-- QSB/Player/QSBPlayerManager.cs | 4 ++-- QSB/Player/TransformSync/PlayerTransformSync.cs | 4 ++-- QSB/PoolSync/CustomNomaiRemoteCameraPlatform.cs | 7 +++---- QSB/QuantumSync/QuantumManager.cs | 4 ++-- 7 files changed, 14 insertions(+), 15 deletions(-) diff --git a/QSB/EyeOfTheUniverse/CosmicInflation/InflationManager.cs b/QSB/EyeOfTheUniverse/CosmicInflation/InflationManager.cs index fb259a67..36739ce2 100644 --- a/QSB/EyeOfTheUniverse/CosmicInflation/InflationManager.cs +++ b/QSB/EyeOfTheUniverse/CosmicInflation/InflationManager.cs @@ -26,9 +26,9 @@ namespace QSB.EyeOfTheUniverse.CosmicInflation QSBPlayerManager.OnRemovePlayer += OnPlayerLeave; } - private void OnPlayerLeave(uint id) + private void OnPlayerLeave(PlayerInfo player) { - _playersInFog.Remove(QSBPlayerManager.GetPlayer(id)); + _playersInFog.Remove(player); // wait 1 frame for player to be removed QSBCore.UnityEvents.FireOnNextUpdate(() => diff --git a/QSB/EyeOfTheUniverse/MaskSync/MaskManager.cs b/QSB/EyeOfTheUniverse/MaskSync/MaskManager.cs index 6e7ccf44..e638e0bd 100644 --- a/QSB/EyeOfTheUniverse/MaskSync/MaskManager.cs +++ b/QSB/EyeOfTheUniverse/MaskSync/MaskManager.cs @@ -23,7 +23,7 @@ namespace QSB.EyeOfTheUniverse.MaskSync base.Awake(); Instance = this; - QSBPlayerManager.OnRemovePlayer += OnPlayerLeave; + // QSBPlayerManager.OnRemovePlayer += OnPlayerLeave; } private static void OnPlayerLeave(uint obj) diff --git a/QSB/ItemSync/WorldObjects/Items/QSBOWItem.cs b/QSB/ItemSync/WorldObjects/Items/QSBOWItem.cs index 1a27ad04..3e57f9a5 100644 --- a/QSB/ItemSync/WorldObjects/Items/QSBOWItem.cs +++ b/QSB/ItemSync/WorldObjects/Items/QSBOWItem.cs @@ -56,9 +56,9 @@ namespace QSB.ItemSync.WorldObjects.Items public override void OnRemoval() => QSBPlayerManager.OnRemovePlayer -= OnPlayerLeave; - private void OnPlayerLeave(uint player) + private void OnPlayerLeave(PlayerInfo player) { - if (HoldingPlayer != player) + if (HoldingPlayer != player.PlayerId) { return; } diff --git a/QSB/Player/QSBPlayerManager.cs b/QSB/Player/QSBPlayerManager.cs index 8d7229a8..e1704c1d 100644 --- a/QSB/Player/QSBPlayerManager.cs +++ b/QSB/Player/QSBPlayerManager.cs @@ -32,11 +32,11 @@ namespace QSB.Player /// /// called right after player is added /// - public static Action OnAddPlayer; + public static Action OnAddPlayer; /// /// called right before player is removed /// - public static Action OnRemovePlayer; + public static Action OnRemovePlayer; public static readonly List PlayerList = new(); diff --git a/QSB/Player/TransformSync/PlayerTransformSync.cs b/QSB/Player/TransformSync/PlayerTransformSync.cs index 2c81e5d4..1dcef988 100644 --- a/QSB/Player/TransformSync/PlayerTransformSync.cs +++ b/QSB/Player/TransformSync/PlayerTransformSync.cs @@ -50,7 +50,7 @@ namespace QSB.Player.TransformSync var player = new PlayerInfo(this); QSBPlayerManager.PlayerList.SafeAdd(player); base.Start(); - QSBPlayerManager.OnAddPlayer?.Invoke(Player.PlayerId); + QSBPlayerManager.OnAddPlayer?.Invoke(Player); DebugLog.DebugWrite($"Create Player : id<{Player.PlayerId}>", MessageType.Info); } @@ -87,7 +87,7 @@ namespace QSB.Player.TransformSync protected override void OnDestroy() { // TODO : Maybe move this to a leave event...? Would ensure everything could finish up before removing the player - QSBPlayerManager.OnRemovePlayer?.Invoke(Player.PlayerId); + QSBPlayerManager.OnRemovePlayer?.Invoke(Player); base.OnDestroy(); Player.HudMarker?.Remove(); QSBPlayerManager.PlayerList.Remove(Player); diff --git a/QSB/PoolSync/CustomNomaiRemoteCameraPlatform.cs b/QSB/PoolSync/CustomNomaiRemoteCameraPlatform.cs index f7cd1b1a..0a9534cb 100644 --- a/QSB/PoolSync/CustomNomaiRemoteCameraPlatform.cs +++ b/QSB/PoolSync/CustomNomaiRemoteCameraPlatform.cs @@ -673,14 +673,13 @@ namespace QSB.PoolSync public bool IsPlatformActive() => _platformActive; - public void OnRemovePlayer(uint id) + public void OnRemovePlayer(PlayerInfo player) { - if (id == QSBPlayerManager.LocalPlayerId) + if (player == QSBPlayerManager.LocalPlayer) { return; } - var player = QSBPlayerManager.GetPlayer(id); if (!_playerToHologram.Any(x => x.Key == player)) { return; @@ -689,7 +688,7 @@ namespace QSB.PoolSync var hologram = _playerToHologram.First(x => x.Key == player).Value; if (hologram.activeSelf) { - OnRemotePlayerExit(id); + OnRemotePlayerExit(player.PlayerId); } _playerToHologram.Remove(player); diff --git a/QSB/QuantumSync/QuantumManager.cs b/QSB/QuantumSync/QuantumManager.cs index 857a996d..3430f8db 100644 --- a/QSB/QuantumSync/QuantumManager.cs +++ b/QSB/QuantumSync/QuantumManager.cs @@ -47,7 +47,7 @@ namespace QSB.QuantumSync } } - public void PlayerLeave(uint playerId) + public void PlayerLeave(PlayerInfo player) { if (!QSBCore.IsHost) { @@ -56,7 +56,7 @@ namespace QSB.QuantumSync foreach (var obj in QSBWorldSync.GetWorldObjects()) { - if (obj.ControllingPlayer == playerId) + if (obj.ControllingPlayer == player.PlayerId) { obj.SendMessage(new QuantumAuthorityMessage(obj.IsEnabled ? QSBPlayerManager.LocalPlayerId : 0u)); }