public static async Task PostGlobalMessageAsync(SocketCommandContext Context) { ulong user_id = Context.User.Id; string user_name = Context.User.Username; string user_rank = ""; string user_server = Context.Guild.Name; string user_image = Context.User.GetAvatarUrl(); string message_text = Context.Message.Content; IReadOnlyCollection <SocketUser> message_mentions = Context.Message.MentionedUsers; string message_channel = ""; string message_footer = Context.Message.Timestamp.ToString(); IReadOnlyCollection <Attachment> message_attachments = Context.Message.Attachments; List <string> message_images = new List <string>(); foreach (Attachment attachment in message_attachments) { if (attachment.Filename.EndsWith(".png") || attachment.Filename.EndsWith(".jpg") || attachment.Filename.EndsWith(".jpeg") || attachment.Filename.EndsWith(".gif")) { message_images.Add(Image.SaveImage(attachment.Filename, attachment.Url)); Console.WriteLine(Image.SaveImage(attachment.Filename, attachment.Url)); } } //if (message_text.Length == 0) message_text = "_Find attachment above._"; string globals_id = ""; var dbCon = DBConnection.Instance(); dbCon.DatabaseName = BotConfig.Load().DatabaseName; if (dbCon.IsConnect()) { message_channel = await GetGlobalChannelInUseAsync(Context.Guild.Id, Context.Channel.Id, dbCon); if (!message_channel.Equals("")) { // Check the user exists await UserProfile.CheckUserAsync(Context.User.Id, dbCon); // Check user rank user_rank = await UserProfile.GetGroupAsync(Context.User.Id, dbCon); // Get their globals id globals_id = await UserProfile.GetGlobalsIdAsync(Context.User.Id, dbCon); // Save the message in the db string query = "INSERT INTO global_messages (user_id, user_name, user_server, user_image, message_text, message_channel, message_footer) " + "VALUES(@user_id, @user_name, @user_server, @user_image, @message_text, @message_channel, @message_footer);"; var cmd = new MySqlCommand(query, dbCon.Connection); cmd.Parameters.Add("@user_id", MySqlDbType.UInt64).Value = user_id; cmd.Parameters.Add("@user_name", MySqlDbType.String).Value = user_name; cmd.Parameters.Add("@user_server", MySqlDbType.String).Value = user_server; cmd.Parameters.Add("@user_image", MySqlDbType.String).Value = user_image; cmd.Parameters.Add("@message_text", MySqlDbType.String).Value = message_text; cmd.Parameters.Add("@message_channel", MySqlDbType.String).Value = message_channel; cmd.Parameters.Add("@message_footer", MySqlDbType.String).Value = globals_id + " | " + message_footer; try { await cmd.ExecuteNonQueryAsync(); await Context.Message.DeleteAsync(); } catch (Exception e) { Console.WriteLine(e.Message); } } // Post the messages everywhere if (!message_channel.Equals("")) { var embed = new EmbedBuilder() { Color = new Color(114, 137, 218) }; embed.WithAuthor(user_name + "#" + Context.User.Discriminator + " from " + user_server, user_image); embed.WithDescription(message_text); embed.WithFooter(user_rank + " - " + globals_id + " | " + message_footer); string query = "SELECT * FROM server_configs;"; var cmd = new MySqlCommand(query, dbCon.Connection); var reader = await cmd.ExecuteReaderAsync(); while (await reader.ReadAsync()) { if (!user_rank.ToLower().Equals("blacklisted")) { await PostToChannelAsync(message_channel, reader, embed, message_images, message_mentions); } } reader.Close(); cmd.Dispose(); } dbCon.Close(); } else { Console.WriteLine("Couldnt connect..."); } }
public static async Task PostGlobalMessageAsync(SocketCommandContext Context) { ulong user_id = Context.User.Id; string user_name = Context.User.Username; string user_rank = ""; string user_server = Context.Guild.Name; string user_image = Context.User.GetAvatarUrl(); string message_text = Context.Message.Content; string message_channel = ""; string message_footer = user_id + " - " + Context.Message.Timestamp.ToString(); var dbCon = DBConnection.Instance(); dbCon.DatabaseName = BotConfig.Load().DatabaseName; if (dbCon.IsConnect()) { message_channel = await GetGlobalChannelInUseAsync(Context, dbCon); if (!message_channel.Equals("")) { // Check the user exists await UserProfile.CheckUserAsync(Context.User.Id, dbCon); // Check user rank user_rank = await UserProfile.GetGroupAsync(Context.User.Id, dbCon); // Save the message in the db string query = "INSERT INTO global_messages (user_id, user_name, user_server, user_image, message_text, message_channel, message_footer) " + "VALUES(@user_id, @user_name, @user_server, @user_image, @message_text, @message_channel, @message_footer);"; var cmd = new MySqlCommand(query, dbCon.Connection); cmd.Parameters.Add("@user_id", MySqlDbType.UInt64).Value = user_id; cmd.Parameters.Add("@user_name", MySqlDbType.String).Value = user_name; cmd.Parameters.Add("@user_server", MySqlDbType.String).Value = user_server; cmd.Parameters.Add("@user_image", MySqlDbType.String).Value = user_image; cmd.Parameters.Add("@message_text", MySqlDbType.String).Value = message_text; cmd.Parameters.Add("@message_channel", MySqlDbType.String).Value = message_channel; cmd.Parameters.Add("@message_footer", MySqlDbType.String).Value = message_footer; try { await cmd.ExecuteNonQueryAsync(); await Context.Message.DeleteAsync(); } catch (Exception e) { Console.WriteLine(e.Message); } } // Post the messages everywhere if (!message_channel.Equals("")) { var embed = new EmbedBuilder() { Color = new Color(114, 137, 218) }; embed.WithAuthor(user_name + " from " + user_server, user_image); embed.WithDescription(message_text); embed.WithFooter(user_rank + " - " + message_footer); string query = "SELECT * FROM server_configs;"; var cmd = new MySqlCommand(query, dbCon.Connection); var reader = await cmd.ExecuteReaderAsync(); while (await reader.ReadAsync()) { if (!user_rank.ToLower().Equals("blacklisted")) { await PostMessageAsync(message_channel, reader, embed); } } reader.Close(); cmd.Dispose(); } dbCon.Close(); } else { Console.WriteLine("Couldnt connect..."); } }