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

Location:
binary-improvements/7dtd-server-fixes/src/PersistentData
Files:
3 edited

Legend:

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

    r326 r369  
    4646
    4747                public void Save () {
    48                         Stream stream = File.Open (GameUtils.GetSaveGameDir () + "/AllocsPeristentData.bin", FileMode.Create);
     48                        Stream stream = File.Open (GameIO.GetSaveGameDir () + "/AllocsPeristentData.bin", FileMode.Create);
    4949                        BinaryFormatter bFormatter = new BinaryFormatter ();
    5050                        bFormatter.Serialize (stream, this);
     
    5353
    5454                public static bool Load () {
    55                         if (!File.Exists (GameUtils.GetSaveGameDir () + "/AllocsPeristentData.bin")) {
     55                        if (!File.Exists (GameIO.GetSaveGameDir () + "/AllocsPeristentData.bin")) {
    5656                                return false;
    5757                        }
     
    5959                        try {
    6060                                PersistentContainer obj;
    61                                 Stream stream = File.Open (GameUtils.GetSaveGameDir () + "/AllocsPeristentData.bin", FileMode.Open);
     61                                Stream stream = File.Open (GameIO.GetSaveGameDir () + "/AllocsPeristentData.bin", FileMode.Open);
    6262                                BinaryFormatter bFormatter = new BinaryFormatter ();
    6363                                obj = (PersistentContainer) bFormatter.Deserialize (stream);
  • binary-improvements/7dtd-server-fixes/src/PersistentData/Player.cs

    r351 r369  
    11using System;
    2 using System.Runtime.Serialization;
    32using UnityEngine;
    43
     
    65        [Serializable]
    76        public class Player {
    8                 private readonly string steamId;
     7                private readonly PlatformUserIdentifierAbs platformId;
    98                private int entityId;
    109                private string name;
     
    1211                private long totalPlayTime;
    1312
    14                 [OptionalField] private DateTime lastOnline;
     13                private DateTime lastOnline;
    1514
    1615                private Inventory inventory;
    1716
    18                 [OptionalField] private int lastPositionX, lastPositionY, lastPositionZ;
     17                private int lastPositionX, lastPositionY, lastPositionZ;
    1918
    20                 [OptionalField] [Obsolete ("experience no longer available, use level and expToNextLevel instead")]
    21                 private uint experience;
    22 
    23                 [OptionalField] private bool chatMuted;
    24                 [OptionalField] private int maxChatLength;
    25                 [OptionalField] private string chatColor;
    26                 [OptionalField] private bool chatName;
    27                 [OptionalField] private uint expToNextLevel;
    28                 [OptionalField] private int level;
     19                private bool chatMuted;
     20                private int maxChatLength;
     21                private string chatColor;
     22                private bool chatName;
     23                private uint expToNextLevel;
     24                private int level;
    2925
    3026                [NonSerialized] private ClientInfo clientInfo;
    3127
    32                 public string SteamID {
    33                         get { return steamId; }
    34                 }
     28                public PlatformUserIdentifierAbs PlatformId => platformId;
    3529
    36         public int EntityID {
    37             get { return entityId; }
    38         }
     30                public int EntityID => entityId;
    3931
    40                 public string Name {
    41                         get { return name == null ? string.Empty : name; }
    42                 }
     32                public string Name => name ?? string.Empty;
    4333
    44                 public string IP {
    45                         get { return ip == null ? string.Empty : ip; }
    46                 }
     34                public string IP => ip ?? string.Empty;
    4735
    48                 public Inventory Inventory {
    49                         get {
    50                                 if (inventory == null) {
    51                                         inventory = new Inventory ();
    52                                 }
     36                public Inventory Inventory => inventory ?? (inventory = new Inventory ());
    5337
    54                                 return inventory;
    55                         }
    56                 }
     38                public bool IsOnline => clientInfo != null;
    5739
    58                 public bool IsOnline {
    59                         get { return clientInfo != null; }
    60                 }
     40                public ClientInfo ClientInfo => clientInfo;
    6141
    62                 public ClientInfo ClientInfo {
    63                         get { return clientInfo; }
    64                 }
    65 
    66                 public EntityPlayer Entity {
    67                         get {
    68                                 if (IsOnline) {
    69                                         return GameManager.Instance.World.Players.dict [clientInfo.entityId];
    70                                 }
    71 
    72                                 return null;
    73                         }
    74                 }
     42                public EntityPlayer Entity => IsOnline ? GameManager.Instance.World.Players.dict [clientInfo.entityId] : null;
    7543
    7644                public long TotalPlayTime {
     
    8452                }
    8553
    86                 public DateTime LastOnline {
    87                         get {
    88                                 if (IsOnline) {
    89                                         return DateTime.Now;
    90                                 }
     54                public DateTime LastOnline => IsOnline ? DateTime.Now : lastOnline;
    9155
    92                                 return lastOnline;
    93                         }
    94                 }
     56                public Vector3i LastPosition => IsOnline ? new Vector3i (Entity.GetPosition ()) : new Vector3i (lastPositionX, lastPositionY, lastPositionZ);
    9557
    96                 public Vector3i LastPosition {
    97                         get {
    98                                 if (IsOnline) {
    99                                         return new Vector3i (Entity.GetPosition ());
    100                                 }
     58                public bool LandProtectionActive =>
     59                        GameManager.Instance.World.IsLandProtectionValidForPlayer (GameManager.Instance
     60                                .GetPersistentPlayerList ().GetPlayerData (PlatformId));
    10161
    102                                 return new Vector3i (lastPositionX, lastPositionY, lastPositionZ);
    103                         }
    104                 }
    105 
    106                 public bool LandProtectionActive {
    107                         get {
    108                                 return GameManager.Instance.World.IsLandProtectionValidForPlayer (GameManager.Instance
    109                                         .GetPersistentPlayerList ().GetPlayerData (SteamID));
    110                         }
    111                 }
    112 
    113                 public float LandProtectionMultiplier {
    114                         get {
    115                                 return GameManager.Instance.World.GetLandProtectionHardnessModifierForPlayer (GameManager.Instance
    116                                         .GetPersistentPlayerList ().GetPlayerData (SteamID));
    117                         }
    118                 }
    119 
    120 
    121                 [Obsolete ("Experience no longer available, use Level instead")]
    122                 public uint Experience {
    123                         get { return 0; }
    124                 }
     62                public float LandProtectionMultiplier =>
     63                        GameManager.Instance.World.GetLandProtectionHardnessModifierForPlayer (GameManager.Instance
     64                                .GetPersistentPlayerList ().GetPlayerData (PlatformId));
    12565
    12666                public float Level {
     
    13575
    13676                public bool IsChatMuted {
    137                         get { return chatMuted; }
    138                         set { chatMuted = value; }
     77                        get => chatMuted;
     78                        set => chatMuted = value;
    13979                }
    14080
     
    14787                                return maxChatLength;
    14888                        }
    149                         set { maxChatLength = value; }
     89                        set => maxChatLength = value;
    15090                }
    15191
    15292                public string ChatColor {
    15393                        get {
    154                                 if (chatColor == null || chatColor == "") {
     94                                if (string.IsNullOrEmpty (chatColor)) {
    15595                                        chatColor = "";
    15696                                }
     
    15999                        }
    160100
    161                         set { chatColor = value; }
     101                        set => chatColor = value;
    162102                }
    163103
    164104                public bool ChatName {
    165                         get { return chatName; }
    166 
    167                         set { chatName = value; }
     105                        get => chatName;
     106                        set => chatName = value;
    168107                }
    169108
    170                 public Player (string _steamId) {
    171                         steamId = _steamId;
     109                public Player (PlatformUserIdentifierAbs _platformId) {
     110                        platformId = _platformId;
    172111                        inventory = new Inventory ();
    173112                }
     
    178117                        }
    179118
    180                         Log.Out ("Player set to offline: " + steamId);
     119                        Log.Out ("Player set to offline: " + platformId);
    181120                        lastOnline = DateTime.Now;
    182121                        try {
     
    194133
    195134                public void SetOnline (ClientInfo _ci) {
    196                         Log.Out ("Player set to online: " + steamId);
     135                        Log.Out ("Player set to online: " + platformId);
    197136                        clientInfo = _ci;
    198137            entityId = _ci.entityId;
     
    222161                        }
    223162                }
     163
    224164        }
    225165}
  • 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.