const { EmbedBuilder, ButtonBuilder, ActionRowBuilder, ComponentType } = require('discord.js') var XMLHttpRequest = require('xhr2'); var XMLHttpRequestUpload = XMLHttpRequest.XMLHttpRequestUpload; var mysql = require('mysql'); //connection check start var con = mysql.createConnection({ host: "localhost", user: "xx", password: "xx", database: "xx" }); con.connect(function(err) { if (err) throw err; console.log("Connected to db!"); //connection check end }); module.exports = { data: { "name": "screenshot", "type": 1, "description": "Submit your screenshot", "options": [ { "name": "nickname", "description": "Insert your discord server NickName", "type": 3, "required": true, }, { "name": "image", "description": "Select your Image from your PC", "type": 11, "required": true, }, ] }, async execute(interaction, client, message){ const username = interaction.options.getString('nickname'); //get username const imageurl = interaction.options.getAttachment('image'); //get imageurl const embed = new EmbedBuilder() .setDescription("``<<>>``") .setColor("#00b0f4") .setTimestamp(); const sent = await interaction.reply({ embeds: [embed], fetchReply: true // ephemeral: true }) const exampleEmbed1 = new EmbedBuilder() .setDescription("``<<>>``") .setThumbnail(`${imageurl.url}`) .setImage(`${imageurl.url}`) .setColor("#00b0f4") .setTimestamp(); const row = new ActionRowBuilder() .addComponents( new ButtonBuilder() .setCustomId('accept') .setLabel('Accept') .setEmoji('✅') .setStyle('3'), new ButtonBuilder() .setCustomId('reject') .setLabel('Reject') .setEmoji('❌') .setStyle('1'), ); interaction.editReply({ embeds: [exampleEmbed1], components: [row] }).then((msg) => { const collector = interaction.channel.createMessageComponentCollector({ time: 100000 }); collector.on("collect", async (i) => { //if accpted if(i.customId === "accept"){ const memberid = interaction.member.user.id; //get member id const messageID = msg.id; //message id //insert data in the db var sql1 = "INSERT INTO `screenshot` (`name`, `url`, `status`, `messageid`, `memebrid`) VALUES ('"+username+"','"+ imageurl.url+"', '1', '"+ messageID+"', '"+ memberid+"')"; con.query(sql1, function (err, result){ if(err) throw err; //edit reply const exampleEmbed2 = new EmbedBuilder() .setDescription("``<<>>``") .setThumbnail(`${imageurl.url}`) .setImage(`${imageurl.url}`) .setColor("#00b0f4") .setTimestamp(); interaction.editReply({ embeds: [exampleEmbed2], fetchReply: true }) //edit reply console.log("screenshot Inserted and approved."); }) } //if rejected if(i.customId === "reject"){ const memberid = interaction.member.user.id; //get member id const messageID = msg.id; //message id //insert data in the db var sql3 = "UPDATE `screenshot` SET `status` = '0' WHERE messageid = '"+messageID+"' && memebrid = '"+ memberid+"' && url = '"+ imageurl.url+"'"; con.query(sql3, function (err, result){ if(err) throw err; //edit reply const exampleEmbed2 = new EmbedBuilder() .setDescription("``<<>>``") .setThumbnail(`${imageurl.url}`) .setImage(`${imageurl.url}`) .setColor("#00b0f4") .setTimestamp(); interaction.editReply({ embeds: [exampleEmbed2], fetchReply: true }) //edit reply console.log("screenshot has been Rejectd."); }) } }) collector.on('end', collected => { console.log(`Collected ${collected.size} interactions.`); }); }); } };