Replace the stupid MyMultiplayer.GetMemberName with something that actually works.

This commit is contained in:
Brant Martin
2019-02-27 16:31:28 -05:00
parent bbd45df54d
commit 8c59098c28
4 changed files with 18 additions and 3 deletions

View File

@@ -19,5 +19,20 @@ namespace Torch
return null; return null;
return collection.TryGetPlayerById(playerId, out MyPlayer player) ? player : 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)}";
}
} }
} }

View File

@@ -167,7 +167,7 @@ namespace Torch.Managers.ChatManager
public static string GetMemberName(ulong steamId) public static string GetMemberName(ulong steamId)
{ {
return MyMultiplayer.Static?.GetMemberName(steamId) ?? $"user_{steamId}"; return MySession.Static.Players.TryGetPlayerName(steamId);
} }
internal class ChatIntercept : NetworkHandlerBase, INetworkHandler internal class ChatIntercept : NetworkHandlerBase, INetworkHandler

View File

@@ -100,7 +100,7 @@ namespace Torch.Managers
/// <inheritdoc /> /// <inheritdoc />
public string GetSteamUsername(ulong steamId) public string GetSteamUsername(ulong steamId)
{ {
return MyMultiplayer.Static.GetMemberName(steamId); return MySession.Static.Players.TryGetPlayerName(steamId);
} }
private void OnClientLeft(ulong steamId, MyChatMemberStateChangeEnum stateChange) private void OnClientLeft(ulong steamId, MyChatMemberStateChangeEnum stateChange)

View File

@@ -34,7 +34,7 @@ namespace Torch.ViewModels
public PlayerViewModel(ulong steamId, string name = null) public PlayerViewModel(ulong steamId, string name = null)
{ {
SteamId = steamId; SteamId = steamId;
Name = name ?? ((MyDedicatedServerBase)MyMultiplayerMinimalBase.Instance).GetMemberName(steamId); Name = name ?? MySession.Static.Players.TryGetPlayerName(steamId);
} }
} }
} }