Files

105 lines
3.2 KiB
JavaScript
Raw Permalink Normal View History

const { MessageActionRow, MessageButton, MessageEmbed, DiscordAPIError, Message } = require('discord.js');
const complaintRow = new MessageActionRow();
const green = '#00f035';
const red = '#f30000';
complaintRow.setComponents(
new MessageButton()
.setCustomId('SUBMITCOMPLAINT')
.setLabel('Submit Complaint')
.setStyle('DANGER') //Maybe change this to 'PRIMARY'
);
function submitComplaint(message, bot) {
const complaint = message.content;
const channel = bot.guilds.cache.get(bot.home_server).channels.cache.get('998899306671124501');
const author = {
name: "Selmer Bot",
url: "",
iconURL: bot.user.displayAvatarURL()
}
const newEmbed = new MessageEmbed()
.setColor(red)
.setTitle(`Submitted by _${message.author.username}#${message.author.discriminator} ${message.author}_ in *${message.guild}* (OPEN)`)
.setAuthor(author)
.setDescription(`Content: ${complaint}`)
.setTimestamp();
const row = new MessageActionRow()
.addComponents(
new MessageButton()
.setCustomId('DEBUGDONE')
.setLabel('Done')
.setStyle('SUCCESS'),
new MessageButton()
.setCustomId('DEBUGURGENT')
.setLabel('Mark as Urgent')
.setStyle('DANGER'),
);
channel.send({ embeds: [newEmbed], components: [row] });
}
function resolveComplaint(interaction) {
if (interaction.customId == 'DEBUGDONE') {
var embd = new MessageEmbed(interaction.message.embeds[0]);
embd.setColor(green);
embd.title = embd.title.replace('(OPEN)', '(CLOSED)').replace('(URGENT)', '(CLOSED)');
interaction.update({ embeds: [embd], components: [] });
interaction.message.unpin();
} else {
var embd = new MessageEmbed(interaction.message.embeds[0]);
const row = new MessageActionRow();
row.addComponents(
new MessageButton()
.setCustomId('DEBUGDONE')
.setLabel('Done')
.setStyle('SUCCESS'),
);
embd.title = embd.title.replace('(OPEN)', '(URGENT)');
interaction.update({ embeds: [embd], components: [row] });
const m = interaction.message.pin();
// m.then((msg) => {
// msg.delete();
// });
}
}
module.exports = {
name: 'Complaints',
/**
* @param {Message} message
*/
async addComplaintButton(bot, message) {
try {
function filter(reaction) {
return (reaction.emoji.name == '✅');
}
message.react('✅').then(() => {
message.awaitReactions({ filter, max: 1, time: 60000, errors: ['time'] })
.then(collected => {
const reaction = collected.first();
submitComplaint(message, bot);
})
.catch(collected => { message.reactions.cache.get('✅').remove(); });
});
} catch (err) {
console.error(err);
}
}, submitComplaint, resolveComplaint
}
/*
const { addComplaintButton } = require('../dev only/submitcomplaint');
addComplaintButton(bot, message);
*/