/** List of intents https://discord.com/developers/docs/topics/gateway#privileged-intents */ require('dotenv').config() var http = require('http') http.createServer(function (req, res) { res.writeHead(200, { 'Content-Type': 'text/plain' }) res.end('Hello World\n') }).listen(5000, "127.0.0.1") const { Client, Collection, GatewayIntentBits } = require('discord.js') const client = new Client({ intents: [ GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.GuildMessageReactions, GatewayIntentBits.GuildMembers, ], }) const fs = require('fs') client.commands = new Collection() const commandFiles = fs.readdirSync('./commands') .filter(file => !file.includes('WIP')) for (const file of commandFiles) { const command = require(`./commands/${file}`) // Set a new item in the Collection // With the key as the command name and the value as the exported module client.commands.set(command.data.name, command) } const mongoose = require('mongoose') async function dbConnect() { mongoose.connect(process.env.DBSRV, { useNewUrlParser: true, useUnifiedTopology: true, }).then(() => { console.log('Connected to database') }).catch((err) => { console.log(err) }) } const help = require('./helpFunctions.js') const cron = require('node-cron') let gotMessage; client.once('ready', async () => { gotMessage = require('./messageHandler'); const ping = require('./ping') if (client.user.username != 'MOOver Debug') { const turnOnMsg = ['AAAAAAAAAAAAA', 'Just turned on!', 'Just woke up!', 'May have crashed... sowwyyy >.<', 'Heyyyy!', 'I\'m baaaack', 'Whom\'st have summoned the ancient one?'] client.channels.cache.get('780439236867653635').send(turnOnMsg[help.RNG(turnOnMsg.length)]); } cron.schedule('0 13 * * *', async function () { ping() }) await dbConnect(); const { eModel } = require('./database/schemas'); eModel.updateMany({}, { $set: { specialMessage: "" }}).exec() console.log('Running!') }) client.on('messageCreate', (message) => { gotMessage(message) }); client.on('interactionCreate', async interaction => { if (!interaction.isCommand()) return const command = client.commands.get(interaction.commandName) if (!command) return try { await command.execute(interaction) } catch (error) { console.error(error) await interaction.reply({ content: 'There was an error while executing this command!', ephemeral: true, }) } }) client.login(process.env.TOKEN) module.exports = client