Files
Dev-Pengu/Commands/reaction.js

58 lines
2.2 KiB
JavaScript

const { EmbedBuilder, SlashCommandBuilder, Client, MessageInteraction,PermissionFlagsBits, ButtonStyle } = require('discord.js');
module.exports = {
name: "reaction",
description: "setup command for reaction type messages",
options: [],
CommandCreator() {
const data = new SlashCommandBuilder()
.setName(this.name)
.setDescription(this.description)
.setDefaultMemberPermissions(PermissionFlagsBits.MuteMembers)
.addStringOption(option => option.setName("type").setDescription("type of action to perform on reaction").setRequired(true).addChoices(
{name: "Roles", value:"reactionRole"},
{name: "Voting", value:"voting"},
{name: "Remove", value:"remove"}
))
.addStringOption(option => option.setName("message").setDescription("The Message ID to assign reactions to").setRequired(true))
.addStringOption(option => option.setName("emojis").setDescription("Emojis to react with seperated by ','"))
.addStringOption(option => option.setName("values").setDescription("Values assigned to emojis in order seperated by ','"));
return data.toJSON();
},
/**
*
* @param {Client} bot
* @param {MessageInteraction} interaction
*/
async run(bot, interaction) {
var message = interaction.options.getString("message")
var type = interaction.options.getString("type")
let messages = await interaction.channel.messages.fetch(message);
//console.log(messages)
if (type === "remove") {
// delete all database entries for this message
messages.reactions.removeAll()
interaction.reply("cleard message")
}
if (type === "voting" || type === "reactionRole") {
var emojis = interaction.options.getString("emojis").split(",")
var values = interaction.options.getString("values").split(",")
console.log(emojis)
console.log(values)
console.log(emojis.length === values.length)
emojis.forEach(e => {
console.log(e)
messages.react(e)
});
interaction.reply("reactions set")
}
},
}