/// <summary> /// Sends a Target <see cref="SocketMessage"></> to the current <see cref="ISocketMessageChannel"></> /// </summary> /// <param name="message">Target <see cref="SocketMessage"/></param> /// <param name="content">Message content</param> /// <param name="embed">Message embed (if needed)</param> public static async Task Send(SocketMessage message, string content, Embed embed = null) { var channel = message.Channel; if (!AkyBot.HasPermission(channel, GuildPermission.SendMessages)) { // Can't send messages return; } try { await channel.SendMessageAsync(content, false, embed, null); } catch { } }
/// <summary> /// Sends an "error" embed. /// </summary> /// <param name="message">Target <see cref="SocketMessage"/></param> /// <param name="description">Error description</param> /// <returns></returns> public static async Task SendError(SocketMessage message, string description) { var channel = message.Channel; var author = message.Author.GetMember((channel as SocketGuildChannel).Guild); string errorMsg = $"❌ **{author.DisplayName()}**, {description}"; if (!AkyBot.HasPermission(channel, GuildPermission.EmbedLinks)) { await Send(message, errorMsg); return; } EmbedBuilder replyEmbed = new EmbedBuilder() .WithColor(AkyBot.EmbedColor) .WithDescription(errorMsg); await Send(message, null, replyEmbed.Build()); }
/// <summary> /// Sends a file or attachment to the current <see cref="ISocketMessageChannel"/> /// </summary> /// <param name="message">Target <see cref="SocketMessage"/></param> /// <param name="stream">The file stream</param> /// <param name="fileName">Path to file</param> /// <returns></returns> public static async Task SendFile(SocketMessage message, Stream stream, string fileName) { var channel = message.Channel; if (!AkyBot.HasPermission(channel, GuildPermission.SendMessages)) { // Can't send messages return; } if (!AkyBot.HasPermission(channel, GuildPermission.AttachFiles)) { // Can't send attachments return; } try { await channel.SendFileAsync(stream, fileName); } catch { } }
static async Task Start() => await AkyBot.Start();