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();
 }