Browse Source

Add messageCreate event for custom commands in a specified testing guild

pull/33/head
Abheek Dhawan 3 years ago
parent
commit
02abac7c64
Signed by: abheekd GPG Key ID: 7BE81B8C14475B67
  1. 35
      events/messageCreate.js

35
events/messageCreate.js

@ -0,0 +1,35 @@
const axios = require('axios');
const { MessageEmbed } = require('discord.js');
const decode = require('html-entities').decode;
const { testingGuild } = require('../helpers/env');
module.exports = {
name: 'messageCreate',
once: false,
async execute(message) {
if (message.author.bot || message.guild.id != testingGuild) return;
if (message.content.startsWith('!q')) {
const questionId = message.content.split(' ')[1];
axios
.get(`https://scibowldb.com/api/questions/${questionId}`)
.then((res) => {
const data = res.data.question;
const tossupQuestion = data.tossup_question;
const tossupAnswer = data.tossup_answer;
const answers = tossupAnswer.split(' (ACCEPT: ');
if (answers.length > 1) {
answers[1] = answers[1].slice(0, answers[1].length - 1); // If there are multiple elements, it means there was an 'accept' and therefore a trailing ')' which should be removed
answers[1] = answers[1].split(new RegExp(' OR ', 'i')); // Ignore case using the 'i' flag in regex
}
const dataEmbed = new MessageEmbed()
.setTitle('Data')
.setDescription(`\`\`\`json\n${JSON.stringify(data, null, 2)}\`\`\``);
message.reply({
content: decode(tossupQuestion) + `\n\nAnswers: [${answers}]`,
embeds: [dataEmbed],
});
});
}
},
};
Loading…
Cancel
Save