Browse Source

Updated to use new outgoing message format

tags/docs-0.9
RogueException 9 years ago
parent
commit
33b79de116
5 changed files with 9 additions and 24 deletions
  1. +0
    -2
      src/Discord.Net/API/Client/Rest/SendMessage.cs
  2. +0
    -2
      src/Discord.Net/API/Client/Rest/UpdateMessage.cs
  3. +6
    -10
      src/Discord.Net/MessageQueue.cs
  4. +1
    -4
      src/Discord.Net/Models/Channel.cs
  5. +2
    -6
      src/Discord.Net/Models/Message.cs

+ 0
- 2
src/Discord.Net/API/Client/Rest/SendMessage.cs View File

@@ -15,8 +15,6 @@ namespace Discord.API.Client.Rest


[JsonProperty("content")] [JsonProperty("content")]
public string Content { get; set; } public string Content { get; set; }
[JsonProperty("mentions"), JsonConverter(typeof(LongStringArrayConverter))]
public ulong[] MentionedUserIds { get; set; }
[JsonProperty("nonce", NullValueHandling = NullValueHandling.Ignore)] [JsonProperty("nonce", NullValueHandling = NullValueHandling.Ignore)]
public string Nonce { get; set; } public string Nonce { get; set; }
[JsonProperty("tts")] [JsonProperty("tts")]


+ 0
- 2
src/Discord.Net/API/Client/Rest/UpdateMessage.cs View File

@@ -16,8 +16,6 @@ namespace Discord.API.Client.Rest


[JsonProperty("content")] [JsonProperty("content")]
public string Content { get; set; } = ""; public string Content { get; set; } = "";
[JsonProperty("mentions"), JsonConverter(typeof(LongStringArrayConverter))]
public ulong[] MentionedUserIds { get; set; } = new ulong[0];


public UpdateMessageRequest(ulong channelId, ulong messageId) public UpdateMessageRequest(ulong channelId, ulong messageId)
{ {


+ 6
- 10
src/Discord.Net/MessageQueue.cs View File

@@ -13,15 +13,13 @@ namespace Discord.Net
{ {
public readonly ulong Id, ChannelId; public readonly ulong Id, ChannelId;
public readonly string Text; public readonly string Text;
public readonly ulong[] MentionedUsers;
public readonly bool IsTTS; public readonly bool IsTTS;


public MessageQueueItem(ulong id, ulong channelId, string text, ulong[] userIds, bool isTTS)
public MessageQueueItem(ulong id, ulong channelId, string text, bool isTTS)
{ {
Id = id; Id = id;
ChannelId = channelId; ChannelId = channelId;
Text = text; Text = text;
MentionedUsers = userIds;
IsTTS = isTTS; IsTTS = isTTS;
} }
} }
@@ -37,13 +35,13 @@ namespace Discord.Net
_pending = new ConcurrentQueue<MessageQueueItem>(); _pending = new ConcurrentQueue<MessageQueueItem>();
} }


public void QueueSend(ulong channelId, string text, ulong[] userIds, bool isTTS)
public void QueueSend(ulong channelId, string text, bool isTTS)
{ {
_pending.Enqueue(new MessageQueueItem(0, channelId, text, userIds, isTTS));
_pending.Enqueue(new MessageQueueItem(0, channelId, text, isTTS));
} }
public void QueueEdit(ulong channelId, ulong messageId, string text, ulong[] userIds)
public void QueueEdit(ulong channelId, ulong messageId, string text)
{ {
_pending.Enqueue(new MessageQueueItem(channelId, messageId, text, userIds, false));
_pending.Enqueue(new MessageQueueItem(channelId, messageId, text, false));
} }


internal Task Run(CancellationToken cancelToken, int interval) internal Task Run(CancellationToken cancelToken, int interval)
@@ -64,7 +62,6 @@ namespace Discord.Net
var request = new SendMessageRequest(queuedMessage.ChannelId) var request = new SendMessageRequest(queuedMessage.ChannelId)
{ {
Content = queuedMessage.Text, Content = queuedMessage.Text,
MentionedUserIds = queuedMessage.MentionedUsers,
Nonce = GenerateNonce().ToIdString(), Nonce = GenerateNonce().ToIdString(),
IsTTS = queuedMessage.IsTTS IsTTS = queuedMessage.IsTTS
}; };
@@ -74,8 +71,7 @@ namespace Discord.Net
{ {
var request = new UpdateMessageRequest(queuedMessage.ChannelId, queuedMessage.Id) var request = new UpdateMessageRequest(queuedMessage.ChannelId, queuedMessage.Id)
{ {
Content = queuedMessage.Text,
MentionedUserIds = queuedMessage.MentionedUsers
Content = queuedMessage.Text
}; };
await _client.ClientAPI.Send(request).ConfigureAwait(false); await _client.ClientAPI.Send(request).ConfigureAwait(false);
} }


+ 1
- 4
src/Discord.Net/Models/Channel.cs View File

@@ -333,19 +333,16 @@ namespace Discord
private async Task<Message> SendMessageInternal(string text, bool isTTS) private async Task<Message> SendMessageInternal(string text, bool isTTS)
{ {
Message msg = null; Message msg = null;
var mentionedUsers = new List<User>();
text = Message.CleanUserMentions(this, text, mentionedUsers);
if (text.Length > DiscordConfig.MaxMessageSize) if (text.Length > DiscordConfig.MaxMessageSize)
throw new ArgumentOutOfRangeException(nameof(text), $"Message must be {DiscordConfig.MaxMessageSize} characters or less."); throw new ArgumentOutOfRangeException(nameof(text), $"Message must be {DiscordConfig.MaxMessageSize} characters or less.");


if (Client.Config.UseMessageQueue) if (Client.Config.UseMessageQueue)
Client.MessageQueue.QueueSend(Id, text, mentionedUsers.Select(x => x.Id).ToArray(), isTTS);
Client.MessageQueue.QueueSend(Id, text, isTTS);
else else
{ {
var request = new SendMessageRequest(Id) var request = new SendMessageRequest(Id)
{ {
Content = text, Content = text,
MentionedUserIds = mentionedUsers.Select(x => x.Id).ToArray(),
Nonce = null, Nonce = null,
IsTTS = isTTS IsTTS = isTTS
}; };


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

@@ -314,21 +314,17 @@ namespace Discord
if (text == null) throw new ArgumentNullException(nameof(text)); if (text == null) throw new ArgumentNullException(nameof(text));


var channel = Channel; var channel = Channel;
var mentionedUsers = new List<User>();
if (!channel.IsPrivate)
text = CleanUserMentions(channel, text, mentionedUsers);


if (text.Length > DiscordConfig.MaxMessageSize) if (text.Length > DiscordConfig.MaxMessageSize)
throw new ArgumentOutOfRangeException(nameof(text), $"Message must be {DiscordConfig.MaxMessageSize} characters or less."); throw new ArgumentOutOfRangeException(nameof(text), $"Message must be {DiscordConfig.MaxMessageSize} characters or less.");


if (Client.Config.UseMessageQueue) if (Client.Config.UseMessageQueue)
Client.MessageQueue.QueueEdit(channel.Id, Id, text, mentionedUsers.Select(x => x.Id).ToArray());
Client.MessageQueue.QueueEdit(channel.Id, Id, text);
else else
{ {
var request = new UpdateMessageRequest(Channel.Id, Id) var request = new UpdateMessageRequest(Channel.Id, Id)
{ {
Content = text,
MentionedUserIds = mentionedUsers.Select(x => x.Id).ToArray()
Content = text
}; };
await Client.ClientAPI.Send(request).ConfigureAwait(false); await Client.ClientAPI.Send(request).ConfigureAwait(false);
} }


Loading…
Cancel
Save