From 640dff78b2a93cea0b441dbc08a8bfd48626ddfa Mon Sep 17 00:00:00 2001 From: Brandon Smith Date: Sat, 15 Aug 2015 12:51:45 -0300 Subject: [PATCH] Added EditMessage --- Discord.Net/API/DiscordAPI.cs | 5 +++++ Discord.Net/API/Models/APIResponses.cs | 1 + Discord.Net/API/Models/ApiRequests.cs | 1 + Discord.Net/DiscordClient.cs | 20 ++++++++++++++++++++ 4 files changed, 27 insertions(+) diff --git a/Discord.Net/API/DiscordAPI.cs b/Discord.Net/API/DiscordAPI.cs index dc3fa480d..7f97ce45c 100644 --- a/Discord.Net/API/DiscordAPI.cs +++ b/Discord.Net/API/DiscordAPI.cs @@ -78,6 +78,11 @@ namespace Discord.API var request = new APIRequests.SendMessage { Content = message, Mentions = mentions }; return Http.Post(Endpoints.ChannelMessages(channelId), request, options); } + public static Task EditMessage(string channelId, string messageId, string message, string[] mentions, HttpOptions options) + { + var request = new APIRequests.EditMessage { Content = message, Mentions = mentions }; + return Http.Patch(Endpoints.ChannelMessage(channelId, messageId), request, options); + } public static Task SendIsTyping(string channelId, HttpOptions options) => Http.Post(Endpoints.ChannelTyping(channelId), options); public static Task DeleteMessage(string channelId, string msgId, HttpOptions options) diff --git a/Discord.Net/API/Models/APIResponses.cs b/Discord.Net/API/Models/APIResponses.cs index b3e8e7d1d..5f3744e77 100644 --- a/Discord.Net/API/Models/APIResponses.cs +++ b/Discord.Net/API/Models/APIResponses.cs @@ -59,6 +59,7 @@ namespace Discord.API.Models public class AcceptInvite : GetInvite { } public class SendMessage : Message { } + public class EditMessage : Message { } public class GetMessages : Message { } public class GetRegions diff --git a/Discord.Net/API/Models/ApiRequests.cs b/Discord.Net/API/Models/ApiRequests.cs index 26ed03459..83d47ca07 100644 --- a/Discord.Net/API/Models/ApiRequests.cs +++ b/Discord.Net/API/Models/ApiRequests.cs @@ -63,6 +63,7 @@ namespace Discord.API.Models [JsonProperty(PropertyName = "mentions")] public string[] Mentions; } + public class EditMessage : SendMessage { } public class SetMemberMute { diff --git a/Discord.Net/DiscordClient.cs b/Discord.Net/DiscordClient.cs index 5aadcd434..79245481b 100644 --- a/Discord.Net/DiscordClient.cs +++ b/Discord.Net/DiscordClient.cs @@ -679,6 +679,26 @@ namespace Discord } } + public Task EditMessage(Message message, string text) + => EditMessage(message.ChannelId, message.Id, text, new string[0]); + public Task EditMessage(Channel channel, string messageId, string text) + => EditMessage(channel.Id, messageId, text, new string[0]); + public Task EditMessage(string channelId, string messageId, string text) + => EditMessage(channelId, messageId, text, new string[0]); + public Task EditMessage(Message message, string text, string[] mentions) + => EditMessage(message.ChannelId, message.Id, text, mentions); + public Task EditMessage(Channel channel, string messageId, string text, string[] mentions) + => EditMessage(channel.Id, messageId, text, mentions); + public async Task EditMessage(string channelId, string messageId, string text, string[] mentions) + { + CheckReady(); + if (text.Length > DiscordAPI.MaxMessageSize) + text = text.Substring(0, DiscordAPI.MaxMessageSize); + + var msg = await DiscordAPI.EditMessage(channelId, messageId, text, mentions, _httpOptions); + _messages.Update(msg.Id, channelId, msg); + } + public Task DeleteMessage(Message msg) => DeleteMessage(msg.ChannelId, msg.Id); public async Task DeleteMessage(string channelId, string msgId)