private Task OnMessageReceived(SocketMessage socketMessage)
        {
            if (socketMessage.Channel.Id != _options.Channel.Id)
            {
                return(Task.CompletedTask);
            }

            if (_options.ResetTimeout)
            {
                _isActiveCompletion.SetResult(true);
            }

            if (++_maxMessages == _options.MaxMessages)
            {
                Stop("MaxMessages reached");
            }

            if (!_filter(socketMessage))
            {
                return(Task.CompletedTask);
            }

            _messages.Add(socketMessage);
            Collect?.Invoke(socketMessage);

            if (_messages.Count == _options.Max)
            {
                Stop("Max reached");
            }

            return(Task.CompletedTask);
        }
示例#2
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        // Check to make sure sub collided
        SubMovement go = collision.gameObject.GetComponent <SubMovement>();

        if (go != null)
        {
            // we have found a sub
            Collect?.Invoke(pointValue);
            Destroy(gameObject);
        }
    }
示例#3
0
        private Task OnReactionAdded(Cacheable <IUserMessage, ulong> cache, ISocketMessageChannel channel, SocketReaction reaction)
        {
            if (cache.Id != _options.Message.Id)
            {
                return(Task.CompletedTask);
            }

            if (_options.ResetTimeout)
            {
                _isActiveCompletion.SetResult(true);
            }

            if (!_filter(reaction))
            {
                return(Task.CompletedTask);
            }

            _reactions.Add(reaction);
            _emotes.Add(reaction.Emote);
            _users.Add(reaction.UserId);

            Collect?.Invoke(reaction);

            if (_reactions.Count == _options.Max)
            {
                Stop("Max reached");
            }
            else if (_emotes.Count == _options.MaxEmotes)
            {
                Stop("MaxEmotes reached");
            }
            else if (_users.Count == _options.MaxUsers)
            {
                Stop("MaxUsers reached");
            }

            return(Task.CompletedTask);
        }