Spaces:
Running
Running
const { SlashCommandBuilder } = require('discord.js'); | |
const { getFirestore } = require('firebase-admin/firestore'); | |
module.exports = { | |
data: new SlashCommandBuilder() | |
.setName('activate') | |
.setDescription("Activates counting") | |
.addStringOption(option => | |
option.setName("mode") | |
.setDescription("The mode for counting") | |
.setRequired(true) | |
.addChoices( | |
{ | |
name: "Normal", | |
value: "normal" | |
}, | |
{ | |
name: "Fizz Buzz", | |
value: "fizzbuzz" | |
}, | |
{ | |
name: "Roman Numerals", | |
value: "roman" | |
}, | |
{ | |
name: "Hexadecimals", | |
value: "hex" | |
}, | |
{ | |
name: "Binary", | |
value: "bin" | |
}, | |
{ | |
name: "Marshmallow", | |
value: "marshmallow" | |
} | |
)), | |
async execute(interaction) { | |
const db = getFirestore(); | |
const channel = interaction.channelId; | |
const id = `${interaction.guildId}-${channel}`; | |
const doc = db.doc(`channels/${id}`); | |
const exists = (await doc.get()).exists; | |
if (exists) { | |
await interaction.reply(`Channel <#${channel}> has already been activated for counting. To view info, run /info. To change mode, deactivate, then activate with the new mode.`) | |
} else { | |
const mode = interaction.options.getString("mode"); | |
const data = { | |
mode: mode, | |
num: 0, | |
lastUser: "" | |
}; | |
await doc.set(data); | |
await interaction.reply(`Activated channel <#${channel}> with mode ${mode} for counting.`) | |
} | |
} | |
} | |