| @@ -78,6 +78,11 @@ namespace Discord.API | |||||
| var request = new APIRequests.SendMessage { Content = message, Mentions = mentions }; | var request = new APIRequests.SendMessage { Content = message, Mentions = mentions }; | ||||
| return Http.Post<APIResponses.SendMessage>(Endpoints.ChannelMessages(channelId), request, options); | return Http.Post<APIResponses.SendMessage>(Endpoints.ChannelMessages(channelId), request, options); | ||||
| } | } | ||||
| public static Task<APIResponses.EditMessage> EditMessage(string channelId, string messageId, string message, string[] mentions, HttpOptions options) | |||||
| { | |||||
| var request = new APIRequests.EditMessage { Content = message, Mentions = mentions }; | |||||
| return Http.Patch<APIResponses.EditMessage>(Endpoints.ChannelMessage(channelId, messageId), request, options); | |||||
| } | |||||
| public static Task SendIsTyping(string channelId, HttpOptions options) | public static Task SendIsTyping(string channelId, HttpOptions options) | ||||
| => Http.Post(Endpoints.ChannelTyping(channelId), options); | => Http.Post(Endpoints.ChannelTyping(channelId), options); | ||||
| public static Task DeleteMessage(string channelId, string msgId, HttpOptions options) | public static Task DeleteMessage(string channelId, string msgId, HttpOptions options) | ||||
| @@ -59,6 +59,7 @@ namespace Discord.API.Models | |||||
| public class AcceptInvite : GetInvite { } | public class AcceptInvite : GetInvite { } | ||||
| public class SendMessage : Message { } | public class SendMessage : Message { } | ||||
| public class EditMessage : Message { } | |||||
| public class GetMessages : Message { } | public class GetMessages : Message { } | ||||
| public class GetRegions | public class GetRegions | ||||
| @@ -63,6 +63,7 @@ namespace Discord.API.Models | |||||
| [JsonProperty(PropertyName = "mentions")] | [JsonProperty(PropertyName = "mentions")] | ||||
| public string[] Mentions; | public string[] Mentions; | ||||
| } | } | ||||
| public class EditMessage : SendMessage { } | |||||
| public class SetMemberMute | public class SetMemberMute | ||||
| { | { | ||||
| @@ -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) | public Task DeleteMessage(Message msg) | ||||
| => DeleteMessage(msg.ChannelId, msg.Id); | => DeleteMessage(msg.ChannelId, msg.Id); | ||||
| public async Task DeleteMessage(string channelId, string msgId) | public async Task DeleteMessage(string channelId, string msgId) | ||||