Esempio n. 1
0
        /// <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 { }
        }
Esempio n. 2
0
        /// <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());
        }
Esempio n. 3
0
        /// <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 { }
        }
Esempio n. 4
0
 static async Task Start() => await AkyBot.Start();