Beispiel #1
0
        protected override async UniTask OnLoadAsync()
        {
            Provider.onEnemyConnected    += OnConnected;
            Provider.onEnemyDisconnected += OnDisconnected;
            foreach (var player in await m_UnturnedUserProvider.GetUsersAsync(KnownActorTypes.Player))
            {
                if (!(player is UnturnedUser unturnedUser) || unturnedUser.Player == null)
                {
                    continue;
                }

                var go           = unturnedUser.Player.gameObject;
                var ldmComponent = go.getOrAddComponent <LdmComponent>();
                LdmComponents[unturnedUser.SteamId] = ldmComponent;
            }
        }
        protected override async Task OnExecuteAsync()
        {
            if (Context.Parameters.Length < 1)
            {
                throw new CommandWrongUsageException(Context);
            }

            var colorString = await Context.Parameters.GetAsync <string>(0);

            var color = Color.FromName(colorString);

            var index = 0;

            if (color.IsKnownColor)
            {
                if (Context.Parameters.Length < 2)
                {
                    throw new CommandWrongUsageException(Context);
                }

                index = 1;
            }
            else
            {
                color = Color.White;
            }

            var message = Context.Parameters.GetArgumentLine(index).Trim();

            if (string.IsNullOrWhiteSpace(message))
            {
                throw new CommandWrongUsageException(Context);
            }

            CommandWindow.Log(message);
            foreach (var user in await m_UnturnedUserProvider.GetUsersAsync(KnownActorTypes.Player))
            {
                await user.PrintMessageAsync(message, color);
            }
        }