2021-09-22 17:15:31 +00:00
|
|
|
/* eslint-disable no-case-declarations */
|
|
|
|
/* eslint-disable indent */
|
|
|
|
// dotenv for handling environment variables
|
|
|
|
const dotenv = require('dotenv');
|
|
|
|
dotenv.config();
|
|
|
|
const token = process.env.TOKEN;
|
2024-09-22 23:46:44 +00:00
|
|
|
const statusChannelId = process.env.STATUS_CHANNEL_ID;
|
2021-09-22 17:15:31 +00:00
|
|
|
|
|
|
|
// Discord.JS
|
2023-08-05 01:17:44 +00:00
|
|
|
const { Client } = require('discord.js-selfbot-v13');
|
2021-09-22 17:15:31 +00:00
|
|
|
const client = new Client({
|
|
|
|
partials: [
|
|
|
|
'CHANNEL',
|
|
|
|
'MESSAGE',
|
|
|
|
],
|
|
|
|
});
|
|
|
|
const { MessageActionRow, MessageButton } = require('discord.js');
|
|
|
|
|
|
|
|
// Various imports
|
|
|
|
const fn = require('./functions.js');
|
|
|
|
const config = require('./config.json');
|
|
|
|
const strings = require('./strings.json');
|
2024-09-25 19:35:01 +00:00
|
|
|
const { GifData, CommandData } = require('./CustomModules/NodBot.js');
|
2024-09-22 23:46:44 +00:00
|
|
|
const isDev = process.env.IS_DEV;
|
2021-09-22 17:15:31 +00:00
|
|
|
|
2024-06-21 22:35:12 +00:00
|
|
|
client.once('ready', async () => {
|
2021-09-22 17:15:31 +00:00
|
|
|
fn.collections.dotCommands(client);
|
|
|
|
fn.collections.setvalidCommands(client);
|
2023-12-14 15:43:40 +00:00
|
|
|
fn.collections.roaches(client);
|
2024-06-21 22:35:12 +00:00
|
|
|
await fn.download.gifs(client);
|
|
|
|
await fn.download.pastas(client);
|
|
|
|
await fn.download.joints(client);
|
|
|
|
await fn.download.requests(client);
|
|
|
|
await fn.download.strains(client);
|
|
|
|
await fn.download.medicalAdvice(client);
|
2021-09-22 17:15:31 +00:00
|
|
|
console.log('Ready!');
|
2024-06-22 13:17:24 +00:00
|
|
|
await fn.avWx.metar.getAllICAOs();
|
2024-06-22 13:42:02 +00:00
|
|
|
await fn.avWx.datis.getAllICAOs();
|
2024-06-21 22:35:12 +00:00
|
|
|
// console.log(JSON.stringify(icaoArray));
|
2024-09-22 23:46:44 +00:00
|
|
|
client.channels.fetch(statusChannelId).then(channel => {
|
|
|
|
channel.send(`${new Date().toISOString()} -- <@${process.env.OWNER_ID}>\nStartup Sequence Complete`);
|
|
|
|
});
|
2021-09-22 17:15:31 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
// dot-commands
|
|
|
|
client.on('messageCreate', message => {
|
|
|
|
// Some basic checking to prevent running unnecessary code
|
|
|
|
if (message.author.bot) return;
|
2022-12-22 00:04:52 +00:00
|
|
|
if (message.author.id == client.user.id) return;
|
2021-09-22 17:15:31 +00:00
|
|
|
|
2024-06-21 19:02:22 +00:00
|
|
|
// Automatic Responses, will respond if any message contains the keyword(s), excluding self-messages
|
2021-09-22 21:14:14 +00:00
|
|
|
const lowerContent = message.content.toLowerCase();
|
2024-06-21 19:02:22 +00:00
|
|
|
const autoresponses = fn.autoresponses.checkForAll(lowerContent);
|
|
|
|
autoresponses.forEach(e => {
|
|
|
|
fn.autoresponses.send(message, e);
|
|
|
|
});
|
2021-09-22 17:15:31 +00:00
|
|
|
|
2022-05-28 21:08:41 +00:00
|
|
|
// Break the message down into its components and analyze it
|
2024-09-25 19:35:01 +00:00
|
|
|
const commandData = new CommandData(message).validate(message.client.dotCommands);
|
2022-06-09 22:31:34 +00:00
|
|
|
console.log(commandData);
|
2021-09-24 00:08:29 +00:00
|
|
|
|
2021-09-22 17:15:31 +00:00
|
|
|
if (commandData.isValid && commandData.isCommand) {
|
|
|
|
try {
|
|
|
|
client.dotCommands.get(commandData.command).execute(message, commandData);
|
|
|
|
}
|
|
|
|
catch (error) {
|
|
|
|
console.error(error);
|
|
|
|
message.reply('There was an error trying to execute that command.');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
});
|
|
|
|
|
|
|
|
client.login(token);
|