From 8c59098c2809bc2a20f55c84dd43462c8820d73a Mon Sep 17 00:00:00 2001 From: Brant Martin Date: Wed, 27 Feb 2019 16:31:28 -0500 Subject: [PATCH] Replace the stupid MyMultiplayer.GetMemberName with something that actually works. --- Torch/Extensions/MyPlayerCollectionExtensions.cs | 15 +++++++++++++++ Torch/Managers/ChatManager/ChatManagerServer.cs | 2 +- Torch/Managers/MultiplayerManagerBase.cs | 2 +- Torch/ViewModels/PlayerViewModel.cs | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/Torch/Extensions/MyPlayerCollectionExtensions.cs b/Torch/Extensions/MyPlayerCollectionExtensions.cs index aa9bf39..08f0789 100644 --- a/Torch/Extensions/MyPlayerCollectionExtensions.cs +++ b/Torch/Extensions/MyPlayerCollectionExtensions.cs @@ -19,5 +19,20 @@ namespace Torch return null; return collection.TryGetPlayerById(playerId, out MyPlayer player) ? player : null; } + + public static string TryGetPlayerName(this MyPlayerCollection collection, ulong steamId, int serialId = 0) + { + return collection.TryGetPlayerBySteamId(steamId, serialId)?.DisplayName ?? $"ID: {steamId}"; + } + + public static string TryGetPlayerName(this MyPlayerCollection collection, long identityId) + { + if (!collection.TryGetPlayerId(identityId, out MyPlayer.PlayerId playerId)) + return null; + + collection.TryGetPlayerById(playerId, out MyPlayer player); + + return player?.DisplayName ?? $"ID: {collection.TryGetSteamId(identityId)}"; + } } } diff --git a/Torch/Managers/ChatManager/ChatManagerServer.cs b/Torch/Managers/ChatManager/ChatManagerServer.cs index 6a0ec34..efc31c4 100644 --- a/Torch/Managers/ChatManager/ChatManagerServer.cs +++ b/Torch/Managers/ChatManager/ChatManagerServer.cs @@ -167,7 +167,7 @@ namespace Torch.Managers.ChatManager public static string GetMemberName(ulong steamId) { - return MyMultiplayer.Static?.GetMemberName(steamId) ?? $"user_{steamId}"; + return MySession.Static.Players.TryGetPlayerName(steamId); } internal class ChatIntercept : NetworkHandlerBase, INetworkHandler diff --git a/Torch/Managers/MultiplayerManagerBase.cs b/Torch/Managers/MultiplayerManagerBase.cs index 30bf775..4a72ecc 100644 --- a/Torch/Managers/MultiplayerManagerBase.cs +++ b/Torch/Managers/MultiplayerManagerBase.cs @@ -100,7 +100,7 @@ namespace Torch.Managers /// public string GetSteamUsername(ulong steamId) { - return MyMultiplayer.Static.GetMemberName(steamId); + return MySession.Static.Players.TryGetPlayerName(steamId); } private void OnClientLeft(ulong steamId, MyChatMemberStateChangeEnum stateChange) diff --git a/Torch/ViewModels/PlayerViewModel.cs b/Torch/ViewModels/PlayerViewModel.cs index f070a3a..4876b8b 100644 --- a/Torch/ViewModels/PlayerViewModel.cs +++ b/Torch/ViewModels/PlayerViewModel.cs @@ -34,7 +34,7 @@ namespace Torch.ViewModels public PlayerViewModel(ulong steamId, string name = null) { SteamId = steamId; - Name = name ?? ((MyDedicatedServerBase)MyMultiplayerMinimalBase.Instance).GetMemberName(steamId); + Name = name ?? MySession.Static.Players.TryGetPlayerName(steamId); } } }