Ignore:
Timestamp:
Nov 9, 2021, 6:28:33 PM (3 years ago)
Author:
alloc
Message:

Preparations for A20 release
Changes usage of "SteamID" to "UserID" in console commands
Also changes a bunch of the WebAPI stuff to show / use UserIDs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements/7dtd-server-fixes/src/PersistentData/Players.cs

    r351 r369  
    22using System.Collections.Generic;
    33using System.Text.RegularExpressions;
     4using Platform.Steam;
    45
    56namespace AllocsFixes.PersistentData {
    67        [Serializable]
    78        public class Players {
    8                 public readonly Dictionary<string, Player> Dict = new Dictionary<string, Player> (StringComparer.OrdinalIgnoreCase);
     9                public readonly Dictionary<PlatformUserIdentifierAbs, Player> Dict = new Dictionary<PlatformUserIdentifierAbs, Player> ();
    910
    10                 public Player this [string _steamId, bool _create] {
     11                public Player this [PlatformUserIdentifierAbs _platformId, bool _create] {
    1112                        get {
    12                                 if (string.IsNullOrEmpty (_steamId)) {
     13                                if (_platformId == null) {
    1314                                        return null;
    1415                                }
    1516
    16                                 if (Dict.ContainsKey (_steamId)) {
    17                                         return Dict [_steamId];
     17                                if (Dict.TryGetValue (_platformId, out Player pOld)) {
     18                                        return pOld;
    1819                                }
    1920
    20                                 if (!_create || _steamId.Length != 17) {
     21                                if (!_create) {
    2122                                        return null;
    2223                                }
    2324
    24                                 Log.Out ("Created new player entry for ID: " + _steamId);
    25                                 Player p = new Player (_steamId);
    26                                 Dict.Add (_steamId, p);
     25                                Log.Out ("Created new player entry for ID: " + _platformId);
     26                                Player p = new Player (_platformId);
     27                                Dict.Add (_platformId, p);
    2728                                return p;
    2829                        }
    2930                }
    3031
    31                 public int Count {
    32                         get { return Dict.Count; }
    33                 }
     32                public int Count => Dict.Count;
    3433
    35 //              public Player GetPlayerByNameOrId (string _nameOrId, bool _ignoreColorCodes)
    36 //              {
    37 //                      string sid = GetSteamID (_nameOrId, _ignoreColorCodes);
    38 //                      if (sid != null)
    39 //                              return this [sid];
    40 //                      else
    41 //                              return null;
    42 //              }
    43 
    44                 public string GetSteamID (string _nameOrId, bool _ignoreColorCodes) {
    45                         if (_nameOrId == null || _nameOrId.Length == 0) {
     34                public PlatformUserIdentifierAbs GetSteamID (string _nameOrId, bool _ignoreColorCodes) {
     35                        if (string.IsNullOrEmpty (_nameOrId)) {
    4636                                return null;
    4737                        }
    4838
    49                         long tempLong;
    50                         if (_nameOrId.Length == 17 && long.TryParse (_nameOrId, out tempLong)) {
    51                                 return _nameOrId;
     39                        if (PlatformUserIdentifierAbs.TryFromCombinedString (_nameOrId, out PlatformUserIdentifierAbs userId)) {
     40                                return userId;
    5241                        }
    5342
    54                         int entityId;
    55                         if (int.TryParse (_nameOrId, out entityId)) {
    56                                 foreach (KeyValuePair<string, Player> kvp in Dict) {
     43                        if (int.TryParse (_nameOrId, out int entityId)) {
     44                                foreach (KeyValuePair<PlatformUserIdentifierAbs, Player> kvp in Dict) {
    5745                                        if (kvp.Value.IsOnline && kvp.Value.EntityID == entityId) {
    5846                                                return kvp.Key;
     
    6149                        }
    6250
    63                         foreach (KeyValuePair<string, Player> kvp in Dict) {
     51                        foreach (KeyValuePair<PlatformUserIdentifierAbs, Player> kvp in Dict) {
    6452                                string name = kvp.Value.Name;
    6553                                if (_ignoreColorCodes) {
Note: See TracChangeset for help on using the changeset viewer.