@@ -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")] | ||||
@@ -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) | ||||
{ | { | ||||
@@ -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); | ||||
} | } | ||||
@@ -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 | ||||
}; | }; | ||||
@@ -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); | ||||
} | } | ||||