コード例 #1
0
        public async Task <bool> AddCharacter(int index, string charName)
        {
            if (_Players.TryGetValue(index, out TrackedPlayer? player) == false)
            {
                player = new TrackedPlayer {
                    Index      = index,
                    RunnerName = $"Runner {index + 1}"
                };

                _Players.Add(index, player);

                _AdminMessages.Log($"Created team {player.Index}:{player.RunnerName}");
            }

            foreach (Character c in player.Characters)
            {
                if (c.Name.ToLower() == charName.ToLower())
                {
                    _Logger.LogWarning($"Not adding duplicate players {charName}");
                    return(true);
                }
            }

            Character?ch = await _CharacterColleciton.GetByNameAsync(charName);

            if (ch == null)
            {
                _Logger.LogWarning($"Failed to add character {charName} to Runner {index}, does not exist");
                return(false);
            }

            if (player.RunnerName == $"Runner {index + 1}")
            {
                _AdminMessages.Log($"Renamed team {index}:{player.RunnerName} to {ch.Name}");
                player.RunnerName = ch.Name;
            }

            player.Characters.Add(ch);

            _Realtime.Subscribe(new Subscription()
            {
                Characters = { ch.ID },
                Events     =
                {
                    "Death",
                    "GainExperience"
                }
            });

            _AdminMessages.Log($"Team {index}:{player.RunnerName} added character {charName}");

            _MatchEvents.EmitPlayerUpdateEvent(index, player);

            return(true);
        }
コード例 #2
0
        public async Task Get(string name)
        {
            Character?c = await _Characters.GetByNameAsync(name);

            if (c != null)
            {
                _Logger.LogInformation($"{name} => {JToken.FromObject(c)}");
            }
            else
            {
                _Logger.LogInformation($"{name} => null");
            }
        }