Virtual channels should not be exposed to socket classes. Dont store guild in messages.
This commit is contained in:
@@ -43,13 +43,13 @@ namespace Discord.Rest
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Invites
|
//Invites
|
||||||
public static async Task<IReadOnlyCollection<RestInviteMetadata>> GetInvitesAsync(IChannel channel, BaseDiscordClient client,
|
public static async Task<IReadOnlyCollection<RestInviteMetadata>> GetInvitesAsync(IGuildChannel channel, BaseDiscordClient client,
|
||||||
RequestOptions options)
|
RequestOptions options)
|
||||||
{
|
{
|
||||||
var models = await client.ApiClient.GetChannelInvitesAsync(channel.Id, options).ConfigureAwait(false);
|
var models = await client.ApiClient.GetChannelInvitesAsync(channel.Id, options).ConfigureAwait(false);
|
||||||
return models.Select(x => RestInviteMetadata.Create(client, null, channel, x)).ToImmutableArray();
|
return models.Select(x => RestInviteMetadata.Create(client, null, channel, x)).ToImmutableArray();
|
||||||
}
|
}
|
||||||
public static async Task<RestInviteMetadata> CreateInviteAsync(IChannel channel, BaseDiscordClient client,
|
public static async Task<RestInviteMetadata> CreateInviteAsync(IGuildChannel channel, BaseDiscordClient client,
|
||||||
int? maxAge, int? maxUses, bool isTemporary, RequestOptions options)
|
int? maxAge, int? maxUses, bool isTemporary, RequestOptions options)
|
||||||
{
|
{
|
||||||
var args = new CreateChannelInviteParams { IsTemporary = isTemporary };
|
var args = new CreateChannelInviteParams { IsTemporary = isTemporary };
|
||||||
@@ -62,18 +62,24 @@ namespace Discord.Rest
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Messages
|
//Messages
|
||||||
public static async Task<RestMessage> GetMessageAsync(IChannel channel, BaseDiscordClient client,
|
public static async Task<RestMessage> GetMessageAsync(IMessageChannel channel, BaseDiscordClient client,
|
||||||
ulong id, IGuild guild, RequestOptions options)
|
ulong id, RequestOptions options)
|
||||||
{
|
{
|
||||||
|
var guildId = (channel as IGuildChannel)?.GuildId;
|
||||||
|
var guild = guildId != null ? await (client as IDiscordClient).GetGuildAsync(guildId.Value, CacheMode.CacheOnly).ConfigureAwait(false) : null;
|
||||||
var model = await client.ApiClient.GetChannelMessageAsync(channel.Id, id, options).ConfigureAwait(false);
|
var model = await client.ApiClient.GetChannelMessageAsync(channel.Id, id, options).ConfigureAwait(false);
|
||||||
return RestMessage.Create(client, guild, model);
|
var author = guild != null ? await guild.GetUserAsync(model.Author.Value.Id, CacheMode.CacheOnly).ConfigureAwait(false) : null;
|
||||||
|
return RestMessage.Create(client, channel, author, model);
|
||||||
}
|
}
|
||||||
public static IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(IChannel channel, BaseDiscordClient client,
|
public static IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(IMessageChannel channel, BaseDiscordClient client,
|
||||||
ulong? fromMessageId, Direction dir, int limit, IGuild guild, RequestOptions options)
|
ulong? fromMessageId, Direction dir, int limit, RequestOptions options)
|
||||||
{
|
{
|
||||||
if (dir == Direction.Around)
|
if (dir == Direction.Around)
|
||||||
throw new NotImplementedException(); //TODO: Impl
|
throw new NotImplementedException(); //TODO: Impl
|
||||||
|
|
||||||
|
var guildId = (channel as IGuildChannel)?.GuildId;
|
||||||
|
var guild = guildId != null ? (client as IDiscordClient).GetGuildAsync(guildId.Value, CacheMode.CacheOnly).Result : null;
|
||||||
|
|
||||||
return new PagedAsyncEnumerable<RestMessage>(
|
return new PagedAsyncEnumerable<RestMessage>(
|
||||||
DiscordConfig.MaxMessagesPerBatch,
|
DiscordConfig.MaxMessagesPerBatch,
|
||||||
async (info, ct) =>
|
async (info, ct) =>
|
||||||
@@ -85,8 +91,15 @@ namespace Discord.Rest
|
|||||||
};
|
};
|
||||||
if (info.Position != null)
|
if (info.Position != null)
|
||||||
args.RelativeMessageId = info.Position.Value;
|
args.RelativeMessageId = info.Position.Value;
|
||||||
|
|
||||||
var models = await client.ApiClient.GetChannelMessagesAsync(channel.Id, args, options).ConfigureAwait(false);
|
var models = await client.ApiClient.GetChannelMessagesAsync(channel.Id, args, options).ConfigureAwait(false);
|
||||||
return models.Select(x => RestMessage.Create(client, guild, x)).ToImmutableArray();
|
var builder = ImmutableArray.CreateBuilder<RestMessage>();
|
||||||
|
foreach (var model in models)
|
||||||
|
{
|
||||||
|
var author = guild != null ? await guild.GetUserAsync(model.Author.Value.Id, CacheMode.CacheOnly).ConfigureAwait(false) : null;
|
||||||
|
builder.Add(RestMessage.Create(client, channel, author, model));
|
||||||
|
}
|
||||||
|
return builder.ToImmutable();
|
||||||
},
|
},
|
||||||
nextPage: (info, lastPage) =>
|
nextPage: (info, lastPage) =>
|
||||||
{
|
{
|
||||||
@@ -102,37 +115,45 @@ namespace Discord.Rest
|
|||||||
count: limit
|
count: limit
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
public static async Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(IChannel channel, BaseDiscordClient client,
|
public static async Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(IMessageChannel channel, BaseDiscordClient client,
|
||||||
IGuild guild, RequestOptions options)
|
RequestOptions options)
|
||||||
{
|
{
|
||||||
|
var guildId = (channel as IGuildChannel)?.GuildId;
|
||||||
|
var guild = guildId != null ? await (client as IDiscordClient).GetGuildAsync(guildId.Value, CacheMode.CacheOnly).ConfigureAwait(false) : null;
|
||||||
var models = await client.ApiClient.GetPinsAsync(channel.Id, options).ConfigureAwait(false);
|
var models = await client.ApiClient.GetPinsAsync(channel.Id, options).ConfigureAwait(false);
|
||||||
return models.Select(x => RestMessage.Create(client, guild, x)).ToImmutableArray();
|
var builder = ImmutableArray.CreateBuilder<RestMessage>();
|
||||||
|
foreach (var model in models)
|
||||||
|
{
|
||||||
|
var author = guild != null ? await guild.GetUserAsync(model.Author.Value.Id, CacheMode.CacheOnly).ConfigureAwait(false) : null;
|
||||||
|
builder.Add(RestMessage.Create(client, channel, author, model));
|
||||||
|
}
|
||||||
|
return builder.ToImmutable();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<RestUserMessage> SendMessageAsync(IChannel channel, BaseDiscordClient client,
|
public static async Task<RestUserMessage> SendMessageAsync(IMessageChannel channel, BaseDiscordClient client,
|
||||||
string text, bool isTTS, EmbedBuilder embed, IGuild guild, RequestOptions options)
|
string text, bool isTTS, EmbedBuilder embed, RequestOptions options)
|
||||||
{
|
{
|
||||||
var args = new CreateMessageParams(text) { IsTTS = isTTS, Embed = embed?.Build() };
|
var args = new CreateMessageParams(text) { IsTTS = isTTS, Embed = embed?.Build() };
|
||||||
var model = await client.ApiClient.CreateMessageAsync(channel.Id, args, options).ConfigureAwait(false);
|
var model = await client.ApiClient.CreateMessageAsync(channel.Id, args, options).ConfigureAwait(false);
|
||||||
return RestUserMessage.Create(client, guild, model);
|
return RestUserMessage.Create(client, channel, client.CurrentUser, model);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<RestUserMessage> SendFileAsync(IChannel channel, BaseDiscordClient client,
|
public static async Task<RestUserMessage> SendFileAsync(IMessageChannel channel, BaseDiscordClient client,
|
||||||
string filePath, string text, bool isTTS, IGuild guild, RequestOptions options)
|
string filePath, string text, bool isTTS, RequestOptions options)
|
||||||
{
|
{
|
||||||
string filename = Path.GetFileName(filePath);
|
string filename = Path.GetFileName(filePath);
|
||||||
using (var file = File.OpenRead(filePath))
|
using (var file = File.OpenRead(filePath))
|
||||||
return await SendFileAsync(channel, client, file, filename, text, isTTS, guild, options).ConfigureAwait(false);
|
return await SendFileAsync(channel, client, file, filename, text, isTTS, options).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
public static async Task<RestUserMessage> SendFileAsync(IChannel channel, BaseDiscordClient client,
|
public static async Task<RestUserMessage> SendFileAsync(IMessageChannel channel, BaseDiscordClient client,
|
||||||
Stream stream, string filename, string text, bool isTTS, IGuild guild, RequestOptions options)
|
Stream stream, string filename, string text, bool isTTS, RequestOptions options)
|
||||||
{
|
{
|
||||||
var args = new UploadFileParams(stream) { Filename = filename, Content = text, IsTTS = isTTS };
|
var args = new UploadFileParams(stream) { Filename = filename, Content = text, IsTTS = isTTS };
|
||||||
var model = await client.ApiClient.UploadFileAsync(channel.Id, args, options).ConfigureAwait(false);
|
var model = await client.ApiClient.UploadFileAsync(channel.Id, args, options).ConfigureAwait(false);
|
||||||
return RestUserMessage.Create(client, guild, model);
|
return RestUserMessage.Create(client, channel, client.CurrentUser, model);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task DeleteMessagesAsync(IChannel channel, BaseDiscordClient client,
|
public static async Task DeleteMessagesAsync(IMessageChannel channel, BaseDiscordClient client,
|
||||||
IEnumerable<IMessage> messages, RequestOptions options)
|
IEnumerable<IMessage> messages, RequestOptions options)
|
||||||
{
|
{
|
||||||
var args = new DeleteMessagesParams(messages.Select(x => x.Id).ToArray());
|
var args = new DeleteMessagesParams(messages.Select(x => x.Id).ToArray());
|
||||||
|
|||||||
@@ -53,22 +53,22 @@ namespace Discord.Rest
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Task<RestMessage> GetMessageAsync(ulong id, RequestOptions options = null)
|
public Task<RestMessage> GetMessageAsync(ulong id, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessageAsync(this, Discord, id, null, options);
|
=> ChannelHelper.GetMessageAsync(this, Discord, id, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, null, Direction.Before, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, null, Direction.Before, limit, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessageId, dir, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessageId, dir, limit, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessage.Id, dir, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessage.Id, dir, limit, options);
|
||||||
public Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)
|
public Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)
|
||||||
=> ChannelHelper.GetPinnedMessagesAsync(this, Discord, null, options);
|
=> ChannelHelper.GetPinnedMessagesAsync(this, Discord, options);
|
||||||
|
|
||||||
public Task<RestUserMessage> SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null)
|
public Task<RestUserMessage> SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, null, options);
|
=> ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, options);
|
||||||
public Task<RestUserMessage> SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null)
|
public Task<RestUserMessage> SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendFileAsync(this, Discord, filePath, text, isTTS, null, options);
|
=> ChannelHelper.SendFileAsync(this, Discord, filePath, text, isTTS, options);
|
||||||
public Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text, bool isTTS = false, RequestOptions options = null)
|
public Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text, bool isTTS = false, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, null, options);
|
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, options);
|
||||||
|
|
||||||
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
||||||
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
||||||
|
|||||||
@@ -66,22 +66,22 @@ namespace Discord.Rest
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Task<RestMessage> GetMessageAsync(ulong id, RequestOptions options = null)
|
public Task<RestMessage> GetMessageAsync(ulong id, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessageAsync(this, Discord, id, null, options);
|
=> ChannelHelper.GetMessageAsync(this, Discord, id, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, null, Direction.Before, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, null, Direction.Before, limit, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessageId, dir, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessageId, dir, limit, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessage.Id, dir, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessage.Id, dir, limit, options);
|
||||||
public Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)
|
public Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)
|
||||||
=> ChannelHelper.GetPinnedMessagesAsync(this, Discord, null, options);
|
=> ChannelHelper.GetPinnedMessagesAsync(this, Discord, options);
|
||||||
|
|
||||||
public Task<RestUserMessage> SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null)
|
public Task<RestUserMessage> SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, null, options);
|
=> ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, options);
|
||||||
public Task<RestUserMessage> SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null)
|
public Task<RestUserMessage> SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendFileAsync(this, Discord, filePath, text, isTTS, null, options);
|
=> ChannelHelper.SendFileAsync(this, Discord, filePath, text, isTTS, options);
|
||||||
public Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text, bool isTTS = false, RequestOptions options = null)
|
public Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text, bool isTTS = false, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, null, options);
|
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, options);
|
||||||
|
|
||||||
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
||||||
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
||||||
|
|||||||
@@ -45,22 +45,22 @@ namespace Discord.Rest
|
|||||||
=> ChannelHelper.GetUsersAsync(this, Guild, Discord, null, null, options);
|
=> ChannelHelper.GetUsersAsync(this, Guild, Discord, null, null, options);
|
||||||
|
|
||||||
public Task<RestMessage> GetMessageAsync(ulong id, RequestOptions options = null)
|
public Task<RestMessage> GetMessageAsync(ulong id, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessageAsync(this, Discord, id, null, options);
|
=> ChannelHelper.GetMessageAsync(this, Discord, id, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, null, Direction.Before, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, null, Direction.Before, limit, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessageId, dir, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessageId, dir, limit, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessage.Id, dir, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessage.Id, dir, limit, options);
|
||||||
public Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)
|
public Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)
|
||||||
=> ChannelHelper.GetPinnedMessagesAsync(this, Discord, null, options);
|
=> ChannelHelper.GetPinnedMessagesAsync(this, Discord, options);
|
||||||
|
|
||||||
public Task<RestUserMessage> SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null)
|
public Task<RestUserMessage> SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, null, options);
|
=> ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, options);
|
||||||
public Task<RestUserMessage> SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null)
|
public Task<RestUserMessage> SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendFileAsync(this, Discord, filePath, text, isTTS, null, options);
|
=> ChannelHelper.SendFileAsync(this, Discord, filePath, text, isTTS, options);
|
||||||
public Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text, bool isTTS = false, RequestOptions options = null)
|
public Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text, bool isTTS = false, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, null, options);
|
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, options);
|
||||||
|
|
||||||
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
||||||
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
||||||
|
|||||||
@@ -23,22 +23,22 @@ namespace Discord.Rest
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Task<RestMessage> GetMessageAsync(ulong id, RequestOptions options = null)
|
public Task<RestMessage> GetMessageAsync(ulong id, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessageAsync(this, Discord, id, null, options);
|
=> ChannelHelper.GetMessageAsync(this, Discord, id, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, null, Direction.Before, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, null, Direction.Before, limit, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessageId, dir, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessageId, dir, limit, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessage.Id, dir, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessage.Id, dir, limit, options);
|
||||||
public Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)
|
public Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)
|
||||||
=> ChannelHelper.GetPinnedMessagesAsync(this, Discord, null, options);
|
=> ChannelHelper.GetPinnedMessagesAsync(this, Discord, options);
|
||||||
|
|
||||||
public Task<RestUserMessage> SendMessageAsync(string text, bool isTTS, EmbedBuilder embed = null, RequestOptions options = null)
|
public Task<RestUserMessage> SendMessageAsync(string text, bool isTTS, EmbedBuilder embed = null, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, null, options);
|
=> ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, options);
|
||||||
public Task<RestUserMessage> SendFileAsync(string filePath, string text, bool isTTS, RequestOptions options = null)
|
public Task<RestUserMessage> SendFileAsync(string filePath, string text, bool isTTS, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendFileAsync(this, Discord, filePath, text, isTTS, null, options);
|
=> ChannelHelper.SendFileAsync(this, Discord, filePath, text, isTTS, options);
|
||||||
public Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text, bool isTTS, RequestOptions options = null)
|
public Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text, bool isTTS, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, null, options);
|
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, options);
|
||||||
|
|
||||||
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
||||||
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
||||||
|
|||||||
@@ -9,11 +9,10 @@ namespace Discord.Rest
|
|||||||
{
|
{
|
||||||
public abstract class RestMessage : RestEntity<ulong>, IMessage, IUpdateable
|
public abstract class RestMessage : RestEntity<ulong>, IMessage, IUpdateable
|
||||||
{
|
{
|
||||||
internal readonly IGuild _guild;
|
|
||||||
private long _timestampTicks;
|
private long _timestampTicks;
|
||||||
|
|
||||||
public IMessageChannel Channel { get; }
|
public IMessageChannel Channel { get; }
|
||||||
public RestUser Author { get; }
|
public IUser Author { get; }
|
||||||
|
|
||||||
public string Content { get; private set; }
|
public string Content { get; private set; }
|
||||||
|
|
||||||
@@ -32,19 +31,18 @@ namespace Discord.Rest
|
|||||||
|
|
||||||
public DateTimeOffset Timestamp => DateTimeUtils.FromTicks(_timestampTicks);
|
public DateTimeOffset Timestamp => DateTimeUtils.FromTicks(_timestampTicks);
|
||||||
|
|
||||||
internal RestMessage(BaseDiscordClient discord, ulong id, IMessageChannel channel, RestUser author, IGuild guild)
|
internal RestMessage(BaseDiscordClient discord, ulong id, IMessageChannel channel, IUser author)
|
||||||
: base(discord, id)
|
: base(discord, id)
|
||||||
{
|
{
|
||||||
Channel = channel;
|
Channel = channel;
|
||||||
Author = author;
|
Author = author;
|
||||||
_guild = guild;
|
|
||||||
}
|
}
|
||||||
internal static RestMessage Create(BaseDiscordClient discord, IGuild guild, Model model)
|
internal static RestMessage Create(BaseDiscordClient discord, IMessageChannel channel, IUser author, Model model)
|
||||||
{
|
{
|
||||||
if (model.Type == MessageType.Default)
|
if (model.Type == MessageType.Default)
|
||||||
return RestUserMessage.Create(discord, guild, model);
|
return RestUserMessage.Create(discord, channel, author, model);
|
||||||
else
|
else
|
||||||
return RestSystemMessage.Create(discord, guild, model);
|
return RestSystemMessage.Create(discord, channel, author, model);
|
||||||
}
|
}
|
||||||
internal virtual void Update(Model model)
|
internal virtual void Update(Model model)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -8,15 +8,13 @@ namespace Discord.Rest
|
|||||||
{
|
{
|
||||||
public MessageType Type { get; private set; }
|
public MessageType Type { get; private set; }
|
||||||
|
|
||||||
internal RestSystemMessage(BaseDiscordClient discord, ulong id, IMessageChannel channel, RestUser author, IGuild guild)
|
internal RestSystemMessage(BaseDiscordClient discord, ulong id, IMessageChannel channel, IUser author)
|
||||||
: base(discord, id, channel, author, guild)
|
: base(discord, id, channel, author)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
internal new static RestSystemMessage Create(BaseDiscordClient discord, IGuild guild, Model model)
|
internal new static RestSystemMessage Create(BaseDiscordClient discord, IMessageChannel channel, IUser author, Model model)
|
||||||
{
|
{
|
||||||
var entity = new RestSystemMessage(discord, model.Id,
|
var entity = new RestSystemMessage(discord, model.Id, channel, author);
|
||||||
RestVirtualMessageChannel.Create(discord, model.ChannelId),
|
|
||||||
RestUser.Create(discord, model.Author.Value), guild);
|
|
||||||
entity.Update(model);
|
entity.Update(model);
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Immutable;
|
using System.Collections.Immutable;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Model = Discord.API.Message;
|
using Model = Discord.API.Message;
|
||||||
|
|
||||||
@@ -30,15 +29,13 @@ namespace Discord.Rest
|
|||||||
public override IReadOnlyCollection<RestUser> MentionedUsers => MessageHelper.FilterTagsByValue<RestUser>(TagType.UserMention, _tags);
|
public override IReadOnlyCollection<RestUser> MentionedUsers => MessageHelper.FilterTagsByValue<RestUser>(TagType.UserMention, _tags);
|
||||||
public override IReadOnlyCollection<ITag> Tags => _tags;
|
public override IReadOnlyCollection<ITag> Tags => _tags;
|
||||||
|
|
||||||
internal RestUserMessage(BaseDiscordClient discord, ulong id, IMessageChannel channel, RestUser author, IGuild guild)
|
internal RestUserMessage(BaseDiscordClient discord, ulong id, IMessageChannel channel, IUser author)
|
||||||
: base(discord, id, channel, author, guild)
|
: base(discord, id, channel, author)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
internal new static RestUserMessage Create(BaseDiscordClient discord, IGuild guild, Model model)
|
internal new static RestUserMessage Create(BaseDiscordClient discord, IMessageChannel channel, IUser author, Model model)
|
||||||
{
|
{
|
||||||
var entity = new RestUserMessage(discord, model.Id,
|
var entity = new RestUserMessage(discord, model.Id, channel, author);
|
||||||
RestVirtualMessageChannel.Create(discord, model.ChannelId),
|
|
||||||
RestUser.Create(discord, model.Author.Value), guild);
|
|
||||||
entity.Update(model);
|
entity.Update(model);
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
@@ -106,7 +103,9 @@ namespace Discord.Rest
|
|||||||
if (model.Content.IsSpecified)
|
if (model.Content.IsSpecified)
|
||||||
{
|
{
|
||||||
var text = model.Content.Value;
|
var text = model.Content.Value;
|
||||||
_tags = MessageHelper.ParseTags(text, null, _guild, mentions);
|
var guildId = (Channel as IGuildChannel)?.GuildId;
|
||||||
|
var guild = guildId != null ? (Discord as IDiscordClient).GetGuildAsync(guildId.Value, CacheMode.CacheOnly).Result : null;
|
||||||
|
_tags = MessageHelper.ParseTags(text, null, guild, mentions);
|
||||||
model.Content = text;
|
model.Content = text;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,22 +34,22 @@ namespace Discord.Rpc
|
|||||||
|
|
||||||
//TODO: Use RPC cache
|
//TODO: Use RPC cache
|
||||||
public Task<RestMessage> GetMessageAsync(ulong id, RequestOptions options = null)
|
public Task<RestMessage> GetMessageAsync(ulong id, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessageAsync(this, Discord, id, null, options);
|
=> ChannelHelper.GetMessageAsync(this, Discord, id, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, null, Direction.Before, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, null, Direction.Before, limit, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessageId, dir, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessageId, dir, limit, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessage.Id, dir, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessage.Id, dir, limit, options);
|
||||||
public Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)
|
public Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)
|
||||||
=> ChannelHelper.GetPinnedMessagesAsync(this, Discord, null, options);
|
=> ChannelHelper.GetPinnedMessagesAsync(this, Discord, options);
|
||||||
|
|
||||||
public Task<RestUserMessage> SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null)
|
public Task<RestUserMessage> SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, null, options);
|
=> ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, options);
|
||||||
public Task<RestUserMessage> SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null)
|
public Task<RestUserMessage> SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendFileAsync(this, Discord, filePath, text, isTTS, null, options);
|
=> ChannelHelper.SendFileAsync(this, Discord, filePath, text, isTTS, options);
|
||||||
public Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text, bool isTTS = false, RequestOptions options = null)
|
public Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text, bool isTTS = false, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, null, options);
|
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, options);
|
||||||
|
|
||||||
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
||||||
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
||||||
|
|||||||
@@ -36,22 +36,22 @@ namespace Discord.Rpc
|
|||||||
|
|
||||||
//TODO: Use RPC cache
|
//TODO: Use RPC cache
|
||||||
public Task<RestMessage> GetMessageAsync(ulong id, RequestOptions options = null)
|
public Task<RestMessage> GetMessageAsync(ulong id, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessageAsync(this, Discord, id, null, options);
|
=> ChannelHelper.GetMessageAsync(this, Discord, id, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, null, Direction.Before, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, null, Direction.Before, limit, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessageId, dir, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessageId, dir, limit, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessage.Id, dir, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessage.Id, dir, limit, options);
|
||||||
public Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)
|
public Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)
|
||||||
=> ChannelHelper.GetPinnedMessagesAsync(this, Discord, null, options);
|
=> ChannelHelper.GetPinnedMessagesAsync(this, Discord, options);
|
||||||
|
|
||||||
public Task<RestUserMessage> SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null)
|
public Task<RestUserMessage> SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, null, options);
|
=> ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, options);
|
||||||
public Task<RestUserMessage> SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null)
|
public Task<RestUserMessage> SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendFileAsync(this, Discord, filePath, text, isTTS, null, options);
|
=> ChannelHelper.SendFileAsync(this, Discord, filePath, text, isTTS, options);
|
||||||
public Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text, bool isTTS = false, RequestOptions options = null)
|
public Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text, bool isTTS = false, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, null, options);
|
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, options);
|
||||||
|
|
||||||
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
||||||
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
||||||
|
|||||||
@@ -39,22 +39,22 @@ namespace Discord.Rpc
|
|||||||
|
|
||||||
//TODO: Use RPC cache
|
//TODO: Use RPC cache
|
||||||
public Task<RestMessage> GetMessageAsync(ulong id, RequestOptions options = null)
|
public Task<RestMessage> GetMessageAsync(ulong id, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessageAsync(this, Discord, id, null, options);
|
=> ChannelHelper.GetMessageAsync(this, Discord, id, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, null, Direction.Before, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, null, Direction.Before, limit, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessageId, dir, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessageId, dir, limit, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessage.Id, dir, limit, null, options);
|
=> ChannelHelper.GetMessagesAsync(this, Discord, fromMessage.Id, dir, limit, options);
|
||||||
public Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)
|
public Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)
|
||||||
=> ChannelHelper.GetPinnedMessagesAsync(this, Discord, null, options);
|
=> ChannelHelper.GetPinnedMessagesAsync(this, Discord, options);
|
||||||
|
|
||||||
public Task<RestUserMessage> SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null)
|
public Task<RestUserMessage> SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, null, options);
|
=> ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, options);
|
||||||
public Task<RestUserMessage> SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null)
|
public Task<RestUserMessage> SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendFileAsync(this, Discord, filePath, text, isTTS, null, options);
|
=> ChannelHelper.SendFileAsync(this, Discord, filePath, text, isTTS, options);
|
||||||
public Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text, bool isTTS = false, RequestOptions options = null)
|
public Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text, bool isTTS = false, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, null, options);
|
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, options);
|
||||||
|
|
||||||
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
||||||
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ namespace Discord.WebSocket
|
|||||||
{
|
{
|
||||||
internal static class SocketChannelHelper
|
internal static class SocketChannelHelper
|
||||||
{
|
{
|
||||||
public static IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(SocketChannel channel, DiscordSocketClient discord, MessageCache messages,
|
public static IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(ISocketMessageChannel channel, DiscordSocketClient discord, MessageCache messages,
|
||||||
ulong? fromMessageId, Direction dir, int limit, CacheMode mode, IGuild guild, RequestOptions options)
|
ulong? fromMessageId, Direction dir, int limit, CacheMode mode, RequestOptions options)
|
||||||
{
|
{
|
||||||
if (dir == Direction.Around)
|
if (dir == Direction.Around)
|
||||||
throw new NotImplementedException(); //TODO: Impl
|
throw new NotImplementedException(); //TODO: Impl
|
||||||
@@ -37,7 +37,7 @@ namespace Discord.WebSocket
|
|||||||
|
|
||||||
//Download remaining messages
|
//Download remaining messages
|
||||||
ulong? minId = cachedMessages.Count > 0 ? cachedMessages.Min(x => x.Id) : fromMessageId;
|
ulong? minId = cachedMessages.Count > 0 ? cachedMessages.Min(x => x.Id) : fromMessageId;
|
||||||
var downloadedMessages = ChannelHelper.GetMessagesAsync(channel, discord, minId, dir, limit, guild, options);
|
var downloadedMessages = ChannelHelper.GetMessagesAsync(channel, discord, minId, dir, limit, options);
|
||||||
return result.Concat(downloadedMessages);
|
return result.Concat(downloadedMessages);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -46,7 +46,7 @@ namespace Discord.WebSocket
|
|||||||
return result;
|
return result;
|
||||||
|
|
||||||
//Dont use cache in this case
|
//Dont use cache in this case
|
||||||
return ChannelHelper.GetMessagesAsync(channel, discord, fromMessageId, dir, limit, guild, options);
|
return ChannelHelper.GetMessagesAsync(channel, discord, fromMessageId, dir, limit, options);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static IReadOnlyCollection<SocketMessage> GetCachedMessages(SocketChannel channel, DiscordSocketClient discord, MessageCache messages,
|
public static IReadOnlyCollection<SocketMessage> GetCachedMessages(SocketChannel channel, DiscordSocketClient discord, MessageCache messages,
|
||||||
|
|||||||
@@ -48,15 +48,15 @@ namespace Discord.WebSocket
|
|||||||
{
|
{
|
||||||
IMessage msg = _messages?.Get(id);
|
IMessage msg = _messages?.Get(id);
|
||||||
if (msg == null)
|
if (msg == null)
|
||||||
msg = await ChannelHelper.GetMessageAsync(this, Discord, id, null, options).ConfigureAwait(false);
|
msg = await ChannelHelper.GetMessageAsync(this, Discord, id, options).ConfigureAwait(false);
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, null, Direction.Before, limit, CacheMode.AllowDownload, null, options);
|
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, null, Direction.Before, limit, CacheMode.AllowDownload, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessageId, dir, limit, CacheMode.AllowDownload, null, options);
|
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessageId, dir, limit, CacheMode.AllowDownload, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessage.Id, dir, limit, CacheMode.AllowDownload, null, options);
|
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessage.Id, dir, limit, CacheMode.AllowDownload, options);
|
||||||
public IReadOnlyCollection<SocketMessage> GetCachedMessages(int limit = DiscordConfig.MaxMessagesPerBatch)
|
public IReadOnlyCollection<SocketMessage> GetCachedMessages(int limit = DiscordConfig.MaxMessagesPerBatch)
|
||||||
=> SocketChannelHelper.GetCachedMessages(this, Discord, _messages, null, Direction.Before, limit);
|
=> SocketChannelHelper.GetCachedMessages(this, Discord, _messages, null, Direction.Before, limit);
|
||||||
public IReadOnlyCollection<SocketMessage> GetCachedMessages(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch)
|
public IReadOnlyCollection<SocketMessage> GetCachedMessages(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch)
|
||||||
@@ -64,14 +64,14 @@ namespace Discord.WebSocket
|
|||||||
public IReadOnlyCollection<SocketMessage> GetCachedMessages(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch)
|
public IReadOnlyCollection<SocketMessage> GetCachedMessages(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch)
|
||||||
=> SocketChannelHelper.GetCachedMessages(this, Discord, _messages, fromMessage.Id, dir, limit);
|
=> SocketChannelHelper.GetCachedMessages(this, Discord, _messages, fromMessage.Id, dir, limit);
|
||||||
public Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)
|
public Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)
|
||||||
=> ChannelHelper.GetPinnedMessagesAsync(this, Discord, null, options);
|
=> ChannelHelper.GetPinnedMessagesAsync(this, Discord, options);
|
||||||
|
|
||||||
public Task<RestUserMessage> SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null)
|
public Task<RestUserMessage> SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, null, options);
|
=> ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, options);
|
||||||
public Task<RestUserMessage> SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null)
|
public Task<RestUserMessage> SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendFileAsync(this, Discord, filePath, text, isTTS, null, options);
|
=> ChannelHelper.SendFileAsync(this, Discord, filePath, text, isTTS, options);
|
||||||
public Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text, bool isTTS = false, RequestOptions options = null)
|
public Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text, bool isTTS = false, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, null, options);
|
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, options);
|
||||||
|
|
||||||
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
||||||
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
||||||
@@ -123,11 +123,11 @@ namespace Discord.WebSocket
|
|||||||
return GetCachedMessage(id);
|
return GetCachedMessage(id);
|
||||||
}
|
}
|
||||||
IAsyncEnumerable<IReadOnlyCollection<IMessage>> IMessageChannel.GetMessagesAsync(int limit, CacheMode mode, RequestOptions options)
|
IAsyncEnumerable<IReadOnlyCollection<IMessage>> IMessageChannel.GetMessagesAsync(int limit, CacheMode mode, RequestOptions options)
|
||||||
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, null, Direction.Before, limit, mode, null, options);
|
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, null, Direction.Before, limit, mode, options);
|
||||||
IAsyncEnumerable<IReadOnlyCollection<IMessage>> IMessageChannel.GetMessagesAsync(ulong fromMessageId, Direction dir, int limit, CacheMode mode, RequestOptions options)
|
IAsyncEnumerable<IReadOnlyCollection<IMessage>> IMessageChannel.GetMessagesAsync(ulong fromMessageId, Direction dir, int limit, CacheMode mode, RequestOptions options)
|
||||||
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessageId, dir, limit, mode, null, options);
|
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessageId, dir, limit, mode, options);
|
||||||
IAsyncEnumerable<IReadOnlyCollection<IMessage>> IMessageChannel.GetMessagesAsync(IMessage fromMessage, Direction dir, int limit, CacheMode mode, RequestOptions options)
|
IAsyncEnumerable<IReadOnlyCollection<IMessage>> IMessageChannel.GetMessagesAsync(IMessage fromMessage, Direction dir, int limit, CacheMode mode, RequestOptions options)
|
||||||
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessage.Id, dir, limit, mode, null, options);
|
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessage.Id, dir, limit, mode, options);
|
||||||
async Task<IReadOnlyCollection<IMessage>> IMessageChannel.GetPinnedMessagesAsync(RequestOptions options)
|
async Task<IReadOnlyCollection<IMessage>> IMessageChannel.GetPinnedMessagesAsync(RequestOptions options)
|
||||||
=> await GetPinnedMessagesAsync(options).ConfigureAwait(false);
|
=> await GetPinnedMessagesAsync(options).ConfigureAwait(false);
|
||||||
async Task<IUserMessage> IMessageChannel.SendFileAsync(string filePath, string text, bool isTTS, RequestOptions options)
|
async Task<IUserMessage> IMessageChannel.SendFileAsync(string filePath, string text, bool isTTS, RequestOptions options)
|
||||||
|
|||||||
@@ -71,15 +71,15 @@ namespace Discord.WebSocket
|
|||||||
{
|
{
|
||||||
IMessage msg = _messages?.Get(id);
|
IMessage msg = _messages?.Get(id);
|
||||||
if (msg == null)
|
if (msg == null)
|
||||||
msg = await ChannelHelper.GetMessageAsync(this, Discord, id, null, options).ConfigureAwait(false);
|
msg = await ChannelHelper.GetMessageAsync(this, Discord, id, options).ConfigureAwait(false);
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, null, Direction.Before, limit, CacheMode.AllowDownload, null, options);
|
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, null, Direction.Before, limit, CacheMode.AllowDownload, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessageId, dir, limit, CacheMode.AllowDownload, null, options);
|
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessageId, dir, limit, CacheMode.AllowDownload, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessage.Id, dir, limit, CacheMode.AllowDownload, null, options);
|
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessage.Id, dir, limit, CacheMode.AllowDownload, options);
|
||||||
public IReadOnlyCollection<SocketMessage> GetCachedMessages(int limit = DiscordConfig.MaxMessagesPerBatch)
|
public IReadOnlyCollection<SocketMessage> GetCachedMessages(int limit = DiscordConfig.MaxMessagesPerBatch)
|
||||||
=> SocketChannelHelper.GetCachedMessages(this, Discord, _messages, null, Direction.Before, limit);
|
=> SocketChannelHelper.GetCachedMessages(this, Discord, _messages, null, Direction.Before, limit);
|
||||||
public IReadOnlyCollection<SocketMessage> GetCachedMessages(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch)
|
public IReadOnlyCollection<SocketMessage> GetCachedMessages(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch)
|
||||||
@@ -87,14 +87,14 @@ namespace Discord.WebSocket
|
|||||||
public IReadOnlyCollection<SocketMessage> GetCachedMessages(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch)
|
public IReadOnlyCollection<SocketMessage> GetCachedMessages(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch)
|
||||||
=> SocketChannelHelper.GetCachedMessages(this, Discord, _messages, fromMessage.Id, dir, limit);
|
=> SocketChannelHelper.GetCachedMessages(this, Discord, _messages, fromMessage.Id, dir, limit);
|
||||||
public Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)
|
public Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)
|
||||||
=> ChannelHelper.GetPinnedMessagesAsync(this, Discord, null, options);
|
=> ChannelHelper.GetPinnedMessagesAsync(this, Discord, options);
|
||||||
|
|
||||||
public Task<RestUserMessage> SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null)
|
public Task<RestUserMessage> SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, null, options);
|
=> ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, options);
|
||||||
public Task<RestUserMessage> SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null)
|
public Task<RestUserMessage> SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendFileAsync(this, Discord, filePath, text, isTTS, null, options);
|
=> ChannelHelper.SendFileAsync(this, Discord, filePath, text, isTTS, options);
|
||||||
public Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text, bool isTTS = false, RequestOptions options = null)
|
public Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text, bool isTTS = false, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, null, options);
|
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, options);
|
||||||
|
|
||||||
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
||||||
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
||||||
@@ -186,11 +186,11 @@ namespace Discord.WebSocket
|
|||||||
return GetCachedMessage(id);
|
return GetCachedMessage(id);
|
||||||
}
|
}
|
||||||
IAsyncEnumerable<IReadOnlyCollection<IMessage>> IMessageChannel.GetMessagesAsync(int limit, CacheMode mode, RequestOptions options)
|
IAsyncEnumerable<IReadOnlyCollection<IMessage>> IMessageChannel.GetMessagesAsync(int limit, CacheMode mode, RequestOptions options)
|
||||||
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, null, Direction.Before, limit, mode, null, options);
|
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, null, Direction.Before, limit, mode, options);
|
||||||
IAsyncEnumerable<IReadOnlyCollection<IMessage>> IMessageChannel.GetMessagesAsync(ulong fromMessageId, Direction dir, int limit, CacheMode mode, RequestOptions options)
|
IAsyncEnumerable<IReadOnlyCollection<IMessage>> IMessageChannel.GetMessagesAsync(ulong fromMessageId, Direction dir, int limit, CacheMode mode, RequestOptions options)
|
||||||
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessageId, dir, limit, mode, null, options);
|
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessageId, dir, limit, mode, options);
|
||||||
IAsyncEnumerable<IReadOnlyCollection<IMessage>> IMessageChannel.GetMessagesAsync(IMessage fromMessage, Direction dir, int limit, CacheMode mode, RequestOptions options)
|
IAsyncEnumerable<IReadOnlyCollection<IMessage>> IMessageChannel.GetMessagesAsync(IMessage fromMessage, Direction dir, int limit, CacheMode mode, RequestOptions options)
|
||||||
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessage.Id, dir, limit, mode, null, options);
|
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessage.Id, dir, limit, mode, options);
|
||||||
async Task<IReadOnlyCollection<IMessage>> IMessageChannel.GetPinnedMessagesAsync(RequestOptions options)
|
async Task<IReadOnlyCollection<IMessage>> IMessageChannel.GetPinnedMessagesAsync(RequestOptions options)
|
||||||
=> await GetPinnedMessagesAsync(options).ConfigureAwait(false);
|
=> await GetPinnedMessagesAsync(options).ConfigureAwait(false);
|
||||||
async Task<IUserMessage> IMessageChannel.SendFileAsync(string filePath, string text, bool isTTS, RequestOptions options)
|
async Task<IUserMessage> IMessageChannel.SendFileAsync(string filePath, string text, bool isTTS, RequestOptions options)
|
||||||
|
|||||||
@@ -54,15 +54,15 @@ namespace Discord.WebSocket
|
|||||||
{
|
{
|
||||||
IMessage msg = _messages?.Get(id);
|
IMessage msg = _messages?.Get(id);
|
||||||
if (msg == null)
|
if (msg == null)
|
||||||
msg = await ChannelHelper.GetMessageAsync(this, Discord, id, Guild, options).ConfigureAwait(false);
|
msg = await ChannelHelper.GetMessageAsync(this, Discord, id, options).ConfigureAwait(false);
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, null, Direction.Before, limit, CacheMode.AllowDownload, Guild, options);
|
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, null, Direction.Before, limit, CacheMode.AllowDownload, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessageId, dir, limit, CacheMode.AllowDownload, Guild, options);
|
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessageId, dir, limit, CacheMode.AllowDownload, options);
|
||||||
public IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
public IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null)
|
||||||
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessage.Id, dir, limit, CacheMode.AllowDownload, Guild, options);
|
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessage.Id, dir, limit, CacheMode.AllowDownload, options);
|
||||||
public IReadOnlyCollection<SocketMessage> GetCachedMessages(int limit = DiscordConfig.MaxMessagesPerBatch)
|
public IReadOnlyCollection<SocketMessage> GetCachedMessages(int limit = DiscordConfig.MaxMessagesPerBatch)
|
||||||
=> SocketChannelHelper.GetCachedMessages(this, Discord, _messages, null, Direction.Before, limit);
|
=> SocketChannelHelper.GetCachedMessages(this, Discord, _messages, null, Direction.Before, limit);
|
||||||
public IReadOnlyCollection<SocketMessage> GetCachedMessages(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch)
|
public IReadOnlyCollection<SocketMessage> GetCachedMessages(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch)
|
||||||
@@ -70,14 +70,14 @@ namespace Discord.WebSocket
|
|||||||
public IReadOnlyCollection<SocketMessage> GetCachedMessages(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch)
|
public IReadOnlyCollection<SocketMessage> GetCachedMessages(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch)
|
||||||
=> SocketChannelHelper.GetCachedMessages(this, Discord, _messages, fromMessage.Id, dir, limit);
|
=> SocketChannelHelper.GetCachedMessages(this, Discord, _messages, fromMessage.Id, dir, limit);
|
||||||
public Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)
|
public Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)
|
||||||
=> ChannelHelper.GetPinnedMessagesAsync(this, Discord, Guild, options);
|
=> ChannelHelper.GetPinnedMessagesAsync(this, Discord, options);
|
||||||
|
|
||||||
public Task<RestUserMessage> SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null)
|
public Task<RestUserMessage> SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, Guild, options);
|
=> ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, options);
|
||||||
public Task<RestUserMessage> SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null)
|
public Task<RestUserMessage> SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendFileAsync(this, Discord, filePath, text, isTTS, Guild, options);
|
=> ChannelHelper.SendFileAsync(this, Discord, filePath, text, isTTS, options);
|
||||||
public Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text, bool isTTS = false, RequestOptions options = null)
|
public Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text, bool isTTS = false, RequestOptions options = null)
|
||||||
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, Guild, options);
|
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, options);
|
||||||
|
|
||||||
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
||||||
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
||||||
@@ -124,11 +124,11 @@ namespace Discord.WebSocket
|
|||||||
return GetCachedMessage(id);
|
return GetCachedMessage(id);
|
||||||
}
|
}
|
||||||
IAsyncEnumerable<IReadOnlyCollection<IMessage>> IMessageChannel.GetMessagesAsync(int limit, CacheMode mode, RequestOptions options)
|
IAsyncEnumerable<IReadOnlyCollection<IMessage>> IMessageChannel.GetMessagesAsync(int limit, CacheMode mode, RequestOptions options)
|
||||||
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, null, Direction.Before, limit, mode, Guild, options);
|
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, null, Direction.Before, limit, mode, options);
|
||||||
IAsyncEnumerable<IReadOnlyCollection<IMessage>> IMessageChannel.GetMessagesAsync(ulong fromMessageId, Direction dir, int limit, CacheMode mode, RequestOptions options)
|
IAsyncEnumerable<IReadOnlyCollection<IMessage>> IMessageChannel.GetMessagesAsync(ulong fromMessageId, Direction dir, int limit, CacheMode mode, RequestOptions options)
|
||||||
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessageId, dir, limit, mode, Guild, options);
|
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessageId, dir, limit, mode, options);
|
||||||
IAsyncEnumerable<IReadOnlyCollection<IMessage>> IMessageChannel.GetMessagesAsync(IMessage fromMessage, Direction dir, int limit, CacheMode mode, RequestOptions options)
|
IAsyncEnumerable<IReadOnlyCollection<IMessage>> IMessageChannel.GetMessagesAsync(IMessage fromMessage, Direction dir, int limit, CacheMode mode, RequestOptions options)
|
||||||
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessage.Id, dir, limit, mode, Guild, options);
|
=> SocketChannelHelper.GetMessagesAsync(this, Discord, _messages, fromMessage.Id, dir, limit, mode, options);
|
||||||
async Task<IReadOnlyCollection<IMessage>> IMessageChannel.GetPinnedMessagesAsync(RequestOptions options)
|
async Task<IReadOnlyCollection<IMessage>> IMessageChannel.GetPinnedMessagesAsync(RequestOptions options)
|
||||||
=> await GetPinnedMessagesAsync(options).ConfigureAwait(false);
|
=> await GetPinnedMessagesAsync(options).ConfigureAwait(false);
|
||||||
async Task<IUserMessage> IMessageChannel.SendFileAsync(string filePath, string text, bool isTTS, RequestOptions options)
|
async Task<IUserMessage> IMessageChannel.SendFileAsync(string filePath, string text, bool isTTS, RequestOptions options)
|
||||||
|
|||||||
Reference in New Issue
Block a user