Exemple #1
0
        /// <summary>
        /// Event handler for setting metadata field values.
        /// </summary>
        /// <param name="player">Player's network ID</param>
        /// <param name="handle">Entity's handle</param>
        /// <param name="key">field key</param>
        /// <param name="value">value to set</param>
        private void MetadataSet(int player, int handle, string key, string value)
        {
            if (string.IsNullOrWhiteSpace(key))
            {
                return;
            }

            IRedisClient <string> client = pool.GetClient();

            Player p = Players[player];

            if (p == null)
            {
                return;
            }

            if (string.IsNullOrWhiteSpace(value))
            {
                // delete field if set to null value
                client.HDel($"meta_{player}_{handle}", key);
                return;
            }

            bool exists = client.Exists($"meta_{player}_{handle}");

            if (!exists)
            {
                // not tracked, so don't create a new hash
                return;
            }

            client.HSet($"meta_{player}_{handle}", key, value);
        }