Пример #1
0
        internal CachedSystemMessage(ICachedMessageChannel channel, CachedUser author, MessageModel model) : base(channel, author, model)
        {
            Type       = (SystemMessageType)(model.Type - 1);
            RawContent = model.Content.GetValueOrDefault();

            Update(model);
        }
Пример #2
0
 internal AllReactionsRemovedEventArgs(
     ICachedMessageChannel channel,
     OptionalSnowflakeEntity <CachedMessage> message) : base(channel.Client)
 {
     Channel = channel;
     Message = message;
 }
Пример #3
0
 internal CachedUserMessage(DiscordClient client, MessageModel model, ICachedMessageChannel channel, CachedUser author) : base(client, model, channel, author)
 {
     IsTextToSpeech = model.Tts.GetValueOrDefault();
     Nonce          = model.Nonce.GetValueOrDefault();
     WebhookId      = model.WebhookId.GetValueOrDefault();
     Update(model);
 }
 internal MessageUpdatedEventArgs(ICachedMessageChannel channel, SnowflakeOptional <CachedUserMessage> oldMessage, CachedUserMessage newMessage)
     : base(channel.Client)
 {
     Channel    = channel;
     OldMessage = oldMessage;
     NewMessage = newMessage;
 }
 public RiasCommandContext(CachedUserMessage message, IServiceProvider serviceProvider, string prefix) : base(serviceProvider)
 {
     Guild   = (message.Channel as CachedTextChannel)?.Guild;
     Channel = message.Channel;
     User    = message.Author;
     Message = message;
     Prefix  = prefix;
 }
        public async Task SendPaginatorAsync(ICachedMessageChannel channel, Paginator paginator, Page firstPage)
        {
            _paginators.Add(paginator
                            .WithMessage(await channel.SendMessageAsync(firstPage.Text, embed: firstPage.Embed), channel)
                            .WithService(this));

            await paginator.AddReactionAsync();
        }
Пример #7
0
 public static Task <RestUserMessage> EmbedMessageAsync(this ICachedMessageChannel channel, LocalEmbedBuilder builder)
 {
     if (builder.Color == null)
     {
         builder.Color = Color.Lavender;
     }
     return(channel.SendMessageAsync("", false, builder.Build()));
 }
Пример #8
0
 internal CachedMessage(ICachedMessageChannel channel, CachedUser author, MessageModel model) : base(channel.Client, model.Id)
 {
     Channel    = channel;
     Author     = author;
     _reactions = new LockedDictionary <IEmoji, ReactionData>(model.Reactions.HasValue
         ? model.Reactions.Value?.Length ?? 0
         : 0);
 }
Пример #9
0
 internal CachedMessage(DiscordClient client, MessageModel model, ICachedMessageChannel channel, CachedUser author) : base(client, model.Id)
 {
     Channel    = channel;
     Author     = author;
     _reactions = Extensions.CreateConcurrentDictionary <IEmoji, ReactionData>(model.Reactions.HasValue
         ? model.Reactions.Value.Length
         : 0);
     Reactions = new ReadOnlyConcurrentDictionary <IEmoji, ReactionData>(_reactions);
 }
Пример #10
0
 private AdminCommandContext(LocalizedLanguage language, IServiceProvider provider, CachedUser user,
                             CachedGuild guild, CachedUserMessage message, ICachedMessageChannel channel)
     : base(provider)
 {
     User     = user;
     Guild    = guild;
     Message  = message;
     Channel  = channel;
     Database = new AdminDatabaseContext(provider);
     Language = language;
 }
Пример #11
0
        public static Task StartMenuAsync(this ICachedMessageChannel channel, MenuBase menu, TimeSpan timeout = default)
        {
            if (channel == null)
            {
                throw new ArgumentNullException(nameof(channel));
            }

            var extension = channel.Client.GetInteractivity();

            return(extension.StartMenuAsync(channel, menu, timeout));
        }
Пример #12
0
 internal ReactionRemovedEventArgs(
     ICachedMessageChannel channel,
     DownloadableOptionalSnowflakeEntity <CachedUserMessage, RestMessage> message,
     DownloadableOptionalSnowflakeEntity <CachedUser, RestUser> user,
     Optional <ReactionData> reaction,
     IEmoji emoji) : base(channel.Client)
 {
     Channel  = channel;
     Message  = message;
     User     = user;
     Reaction = reaction;
     Emoji    = emoji;
 }
 internal ReactionRemovedEventArgs(
     ICachedMessageChannel channel,
     FetchableSnowflakeOptional <IMessage> message,
     FetchableSnowflakeOptional <IUser> user,
     Optional <ReactionData> reaction,
     IEmoji emoji) : base(channel.Client)
 {
     Channel  = channel;
     Message  = message;
     User     = user;
     Reaction = reaction;
     Emoji    = emoji;
 }
        public static Task <ReactionAddedEventArgs> WaitForReactionAsync(this ICachedMessageChannel channel, Predicate <ReactionAddedEventArgs> predicate = null, TimeSpan timeout = default)
        {
            if (channel == null)
            {
                throw new ArgumentNullException(nameof(channel));
            }

            Predicate <ReactionAddedEventArgs> channelPredicate = e => e.Channel.Id == channel.Id;

            predicate = predicate == null
                ? channelPredicate
                : predicate + channelPredicate;

            var extension = channel.Client.GetInteractivity();

            return(extension.WaitForReactionAsync(predicate, timeout));
        }
Пример #15
0
 internal static CachedMessage Create(ICachedMessageChannel channel, CachedUser author, MessageModel model) => model.Type switch
 {
 internal ChannelPinsUpdatedEventArgs(ICachedMessageChannel channel, DateTimeOffset?oldLastPinTimestamp) : base(channel.Client)
 {
     OldLastPinTimestamp = oldLastPinTimestamp;
     NewLastPinTimestamp = channel.LastPinTimestamp;
 }
Пример #17
0
 public static ValueTask <IMessage> GetOrFetchMessageAsync(this ICachedMessageChannel channel, ulong messageId)
 {
Пример #18
0
 internal MessageDeletedEventArgs(ICachedMessageChannel channel, SnowflakeOptional <CachedUserMessage> message) : base(channel.Client)
 {
     Channel = channel;
     Message = message;
 }
Пример #19
0
        public static Task <RestUserMessage> EmbedMessageAsync(this ICachedMessageChannel channel, string message, Color?color = null)
        {
            var embed = new LocalEmbedBuilder().WithDescription(message).WithColor(color ?? Color.Lavender);

            return(channel.SendMessageAsync("", false, embed.Build()));
        }
Пример #20
0
 internal MessageAcknowledgedEventArgs(ICachedMessageChannel channel, OptionalSnowflakeEntity <CachedMessage> message) : base(channel.Client)
 {
     Channel = channel;
     Message = message;
 }
Пример #21
0
 internal static CachedMessage Create(DiscordClient client, MessageModel model, ICachedMessageChannel channel, CachedUser author)
 {
     return(model.Type switch
     {
         MessageType.Default => new CachedUserMessage(client, model, channel, author),
         _ => new CachedSystemMessage(client, model, channel, author),
     });
Пример #22
0
 internal CachedSystemMessage(DiscordClient client, MessageModel model, ICachedMessageChannel channel, CachedUser author) : base(client, model, channel, author)
 {
     Type       = (SystemMessageType)(model.Type - 1);
     RawContent = model.Content.GetValueOrDefault();
 }