Пример #1
0
        public async Task SendMessage(string message, MessageEmbed embed = null, IEnumerable <IMessageAttachment> attachments = null)
        {
            if (message == null && embed == null && attachments == null)
            {
                throw new ArgumentException("All parmeters are null. At least one must be set.");
            }

            if (UnmessagableChannelTypes.Contains(ChannelType))
            {
                throw new InvalidOperationException($"Cannot send message to channel type '{ChannelType}'.");
            }

            if (message == string.Empty)
            {
                throw new ArgumentOutOfRangeException(nameof(message), "Message must be non-empty.");
            }

            if (message?.Length > 2000)
            {
                throw new ArgumentOutOfRangeException(nameof(message), "Message must be less than or equal to 2000 characters.");
            }

            var body = new JObject();

            if (message != null)
            {
                body["content"] = message;
            }

            if (embed != null)
            {
                body["embed"] = JObject.FromObject(embed);
            }

            await Bot.SendJson(HttpMethod.Post, Connectivity.ChannelMessagesPathFormat, new[] { Id }, doc : body, attachments : attachments);
        }
Пример #2
0
 public async Task SendMessage(MessageEmbed embed)
 {
     await SendMessage(null, embed);
 }
Пример #3
0
 public async Task SendMessage(string message, MessageEmbed embed = null, IEnumerable <IMessageAttachment> attachments = null)
 {
     await(await GetDmChannel()).SendMessage(message, embed: embed, attachments: attachments);
 }