Example #1
0
        public async Task Add([Name("Queue name"), Summary("Queue name"), Remainder] string queueName = "")
        {
            if (!PickupHelpers.IsInPickupChannel((IGuildChannel)Context.Channel))
            {
                return;
            }

            queueName = queueName.Trim(' ', '"').Trim();

            //find queue with name {queueName}
            await _subscriberCommandService.Add(queueName, Context.Channel, (IGuildUser)Context.User, Context.Message.Reference);
        }
Example #2
0
        private async Task ReactionAdded(Cacheable <IUserMessage, ulong> message, Cacheable <IMessageChannel, ulong> channel, SocketReaction reaction)
        {
            if (channel.Value == null)
            {
                await channel.GetOrDownloadAsync();
            }

            if (channel.Value is not IGuildChannel guildChannel || guildChannel.Name != ChannelNames.ActivePickups)
            {
                return;
            }
            if (reaction.User.Value.IsBot)
            {
                return;
            }

            var queue = await _queueRepository.FindQueueByMessageId(reaction.MessageId, guildChannel.GuildId.ToString());

            if (queue == null)
            {
                return;
            }

            var pickupChannel = ((SocketGuild)guildChannel.Guild).Channels
                                .FirstOrDefault(c => c.Name.Equals(ChannelNames.Pickup)) as SocketTextChannel;

            switch (reaction.Emote.Name)
            {
            case "\u2705":
                await _subscriberCommandService.Add(queue.Name,
                                                    pickupChannel ?? (SocketTextChannel)guildChannel,
                                                    (SocketGuildUser)reaction.User);

                break;

            case "\uD83D\uDCE2":
                await _listCommandService.Promote(
                    queue,
                    pickupChannel ?? (SocketTextChannel)guildChannel,
                    (SocketGuildUser)reaction.User);

                break;
            }
        }