Browse Source

Added explicit DM functions to RawClient

tags/1.0-rc
RogueException 9 years ago
parent
commit
bf1e77e968
5 changed files with 71 additions and 31 deletions
  1. +51
    -19
      src/Discord.Net/API/DiscordRawClient.cs
  2. +4
    -4
      src/Discord.Net/Rest/Entities/Channels/DMChannel.cs
  3. +6
    -2
      src/Discord.Net/Rest/Entities/Message.cs
  4. +4
    -4
      src/Discord.Net/WebSocket/Entities/Channels/DMChannel.cs
  5. +6
    -2
      src/Discord.Net/WebSocket/Entities/Message.cs

+ 51
- 19
src/Discord.Net/API/DiscordRawClient.cs View File

@@ -622,9 +622,16 @@ namespace Discord.API
else
return Array.Empty<Message>();
}
public Task<Message> CreateMessage(ulong channelId, CreateMessageParams args)
=> CreateMessage(0, channelId, args);
public async Task<Message> CreateMessage(ulong guildId, ulong channelId, CreateMessageParams args)
public Task<Message> CreateMessage(ulong guildId, ulong channelId, CreateMessageParams args)
{
if (guildId == 0) throw new ArgumentOutOfRangeException(nameof(guildId));
return CreateMessageInternal(guildId, channelId, args);
}
public Task<Message> CreateDMMessage(ulong channelId, CreateMessageParams args)
{
return CreateMessageInternal(0, channelId, args);
}
public async Task<Message> CreateMessageInternal(ulong guildId, ulong channelId, CreateMessageParams args)
{
if (args == null) throw new ArgumentNullException(nameof(args));
if (channelId == 0) throw new ArgumentOutOfRangeException(nameof(channelId));
@@ -637,12 +644,18 @@ namespace Discord.API
else
return await Send<Message>("POST", $"channels/{channelId}/messages", args, GlobalBucket.DirectMessage).ConfigureAwait(false);
}
public Task<Message> UploadFile(ulong channelId, Stream file, UploadFileParams args)
=> UploadFile(0, channelId, file, args);
public async Task<Message> UploadFile(ulong guildId, ulong channelId, Stream file, UploadFileParams args)
public Task<Message> UploadFile(ulong guildId, ulong channelId, Stream file, UploadFileParams args)
{
if (guildId == 0) throw new ArgumentOutOfRangeException(nameof(guildId));
return UploadFileInternal(guildId, channelId, file, args);
}
public Task<Message> UploadDMFile(ulong channelId, Stream file, UploadFileParams args)
{
return UploadFileInternal(0, channelId, file, args);
}
private async Task<Message> UploadFileInternal(ulong guildId, ulong channelId, Stream file, UploadFileParams args)
{
if (args == null) throw new ArgumentNullException(nameof(args));
//if (guildId == 0) throw new ArgumentOutOfRangeException(nameof(guildId));
if (channelId == 0) throw new ArgumentOutOfRangeException(nameof(channelId));
if (args.Content.IsSpecified)
{
@@ -654,11 +667,18 @@ namespace Discord.API
if (guildId != 0)
return await Send<Message>("POST", $"channels/{channelId}/messages", file, args.ToDictionary(), GuildBucket.SendEditMessage, guildId).ConfigureAwait(false);
else
return await Send<Message>("POST", $"channels/{channelId}/messages", file, args.ToDictionary()).ConfigureAwait(false);
return await Send<Message>("POST", $"channels/{channelId}/messages", file, args.ToDictionary(), GlobalBucket.DirectMessage).ConfigureAwait(false);
}
public Task DeleteMessage(ulong guildId, ulong channelId, ulong messageId)
{
if (guildId == 0) throw new ArgumentOutOfRangeException(nameof(guildId));
return DeleteInternalMessage(guildId, channelId, messageId);
}
public Task DeleteMessage(ulong channelId, ulong messageId)
=> DeleteMessage(0, channelId, messageId);
public async Task DeleteMessage(ulong guildId, ulong channelId, ulong messageId)
public Task DeleteDMMessage(ulong channelId, ulong messageId)
{
return DeleteInternalMessage(0, channelId, messageId);
}
private async Task DeleteInternalMessage(ulong guildId, ulong channelId, ulong messageId)
{
//if (guildId == 0) throw new ArgumentOutOfRangeException(nameof(guildId));
if (channelId == 0) throw new ArgumentOutOfRangeException(nameof(channelId));
@@ -669,11 +689,17 @@ namespace Discord.API
else
await Send("DELETE", $"channels/{channelId}/messages/{messageId}").ConfigureAwait(false);
}
public Task DeleteMessages(ulong channelId, DeleteMessagesParam args)
=> DeleteMessages(0, channelId, args);
public async Task DeleteMessages(ulong guildId, ulong channelId, DeleteMessagesParam args)
public Task DeleteMessages(ulong guildId, ulong channelId, DeleteMessagesParam args)
{
if (guildId == 0) throw new ArgumentOutOfRangeException(nameof(guildId));
return DeleteMessagesInternal(guildId, channelId, args);
}
public Task DeleteDMMessages(ulong channelId, DeleteMessagesParam args)
{
return DeleteMessagesInternal(0, channelId, args);
}
private async Task DeleteMessagesInternal(ulong guildId, ulong channelId, DeleteMessagesParam args)
{
//if (guildId == 0) throw new ArgumentOutOfRangeException(nameof(guildId));
if (channelId == 0) throw new ArgumentOutOfRangeException(nameof(channelId));
if (args == null) throw new ArgumentNullException(nameof(args));
if (args.MessageIds == null) throw new ArgumentNullException(nameof(args.MessageIds));
@@ -694,12 +720,18 @@ namespace Discord.API
break;
}
}
public Task<Message> ModifyMessage(ulong channelId, ulong messageId, ModifyMessageParams args)
=> ModifyMessage(0, channelId, messageId, args);
public async Task<Message> ModifyMessage(ulong guildId, ulong channelId, ulong messageId, ModifyMessageParams args)
public Task<Message> ModifyMessage(ulong guildId, ulong channelId, ulong messageId, ModifyMessageParams args)
{
if (guildId == 0) throw new ArgumentOutOfRangeException(nameof(guildId));
return ModifyMessageInternal(guildId, channelId, messageId, args);
}
public Task<Message> ModifyDMMessage(ulong channelId, ulong messageId, ModifyMessageParams args)
{
return ModifyMessageInternal(0, channelId, messageId, args);
}
private async Task<Message> ModifyMessageInternal(ulong guildId, ulong channelId, ulong messageId, ModifyMessageParams args)
{
if (args == null) throw new ArgumentNullException(nameof(args));
//if (guildId == 0) throw new ArgumentOutOfRangeException(nameof(guildId));
if (channelId == 0) throw new ArgumentOutOfRangeException(nameof(channelId));
if (messageId == 0) throw new ArgumentOutOfRangeException(nameof(messageId));



+ 4
- 4
src/Discord.Net/Rest/Entities/Channels/DMChannel.cs View File

@@ -75,7 +75,7 @@ namespace Discord.Rest
public async Task<Message> SendMessage(string text, bool isTTS = false)
{
var args = new CreateMessageParams { Content = text, IsTTS = isTTS };
var model = await Discord.BaseClient.CreateMessage(Id, args).ConfigureAwait(false);
var model = await Discord.BaseClient.CreateDMMessage(Id, args).ConfigureAwait(false);
return new Message(this, model);
}
/// <inheritdoc />
@@ -85,7 +85,7 @@ namespace Discord.Rest
using (var file = File.OpenRead(filePath))
{
var args = new UploadFileParams { Filename = filename, Content = text, IsTTS = isTTS };
var model = await Discord.BaseClient.UploadFile(Id, file, args).ConfigureAwait(false);
var model = await Discord.BaseClient.UploadDMFile(Id, file, args).ConfigureAwait(false);
return new Message(this, model);
}
}
@@ -93,14 +93,14 @@ namespace Discord.Rest
public async Task<Message> SendFile(Stream stream, string filename, string text = null, bool isTTS = false)
{
var args = new UploadFileParams { Filename = filename, Content = text, IsTTS = isTTS };
var model = await Discord.BaseClient.UploadFile(Id, stream, args).ConfigureAwait(false);
var model = await Discord.BaseClient.UploadDMFile(Id, stream, args).ConfigureAwait(false);
return new Message(this, model);
}

/// <inheritdoc />
public async Task DeleteMessages(IEnumerable<IMessage> messages)
{
await Discord.BaseClient.DeleteMessages(Id, new DeleteMessagesParam { MessageIds = messages.Select(x => x.Id) }).ConfigureAwait(false);
await Discord.BaseClient.DeleteDMMessages(Id, new DeleteMessagesParam { MessageIds = messages.Select(x => x.Id) }).ConfigureAwait(false);
}

/// <inheritdoc />


+ 6
- 2
src/Discord.Net/Rest/Entities/Message.cs View File

@@ -127,14 +127,18 @@ namespace Discord.Rest
if (guildChannel != null)
model = await Discord.BaseClient.ModifyMessage(guildChannel.Guild.Id, Channel.Id, Id, args).ConfigureAwait(false);
else
model = await Discord.BaseClient.ModifyMessage(Channel.Id, Id, args).ConfigureAwait(false);
model = await Discord.BaseClient.ModifyDMMessage(Channel.Id, Id, args).ConfigureAwait(false);
Update(model);
}

/// <inheritdoc />
public async Task Delete()
{
await Discord.BaseClient.DeleteMessage(Channel.Id, Id).ConfigureAwait(false);
var guildChannel = Channel as GuildChannel;
if (guildChannel != null)
await Discord.BaseClient.DeleteMessage(guildChannel.Id, Channel.Id, Id).ConfigureAwait(false);
else
await Discord.BaseClient.DeleteDMMessage(Channel.Id, Id).ConfigureAwait(false);
}

public override string ToString() => Text;


+ 4
- 4
src/Discord.Net/WebSocket/Entities/Channels/DMChannel.cs View File

@@ -75,7 +75,7 @@ namespace Discord.WebSocket
public async Task<Message> SendMessage(string text, bool isTTS = false)
{
var args = new CreateMessageParams { Content = text, IsTTS = isTTS };
var model = await Discord.BaseClient.CreateMessage(Id, args).ConfigureAwait(false);
var model = await Discord.BaseClient.CreateDMMessage(Id, args).ConfigureAwait(false);
return new Message(this, model);
}
/// <inheritdoc />
@@ -85,7 +85,7 @@ namespace Discord.WebSocket
using (var file = File.OpenRead(filePath))
{
var args = new UploadFileParams { Filename = filename, Content = text, IsTTS = isTTS };
var model = await Discord.BaseClient.UploadFile(Id, file, args).ConfigureAwait(false);
var model = await Discord.BaseClient.UploadDMFile(Id, file, args).ConfigureAwait(false);
return new Message(this, model);
}
}
@@ -93,14 +93,14 @@ namespace Discord.WebSocket
public async Task<Message> SendFile(Stream stream, string filename, string text = null, bool isTTS = false)
{
var args = new UploadFileParams { Filename = filename, Content = text, IsTTS = isTTS };
var model = await Discord.BaseClient.UploadFile(Id, stream, args).ConfigureAwait(false);
var model = await Discord.BaseClient.UploadDMFile(Id, stream, args).ConfigureAwait(false);
return new Message(this, model);
}

/// <inheritdoc />
public async Task DeleteMessages(IEnumerable<IMessage> messages)
{
await Discord.BaseClient.DeleteMessages(Id, new DeleteMessagesParam { MessageIds = messages.Select(x => x.Id) }).ConfigureAwait(false);
await Discord.BaseClient.DeleteDMMessages(Id, new DeleteMessagesParam { MessageIds = messages.Select(x => x.Id) }).ConfigureAwait(false);
}

/// <inheritdoc />


+ 6
- 2
src/Discord.Net/WebSocket/Entities/Message.cs View File

@@ -126,13 +126,17 @@ namespace Discord.WebSocket
if (guildChannel != null)
await Discord.BaseClient.ModifyMessage(guildChannel.Guild.Id, Channel.Id, Id, args).ConfigureAwait(false);
else
await Discord.BaseClient.ModifyMessage(Channel.Id, Id, args).ConfigureAwait(false);
await Discord.BaseClient.ModifyDMMessage(Channel.Id, Id, args).ConfigureAwait(false);
}

/// <inheritdoc />
public async Task Delete()
{
await Discord.BaseClient.DeleteMessage(Channel.Id, Id).ConfigureAwait(false);
var guildChannel = Channel as GuildChannel;
if (guildChannel != null)
await Discord.BaseClient.DeleteMessage(guildChannel.Id, Channel.Id, Id).ConfigureAwait(false);
else
await Discord.BaseClient.DeleteDMMessage(Channel.Id, Id).ConfigureAwait(false);
}

public override string ToString() => Text;


Loading…
Cancel
Save