145 lines
4.9 KiB
JavaScript
145 lines
4.9 KiB
JavaScript
"use strict";
|
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
if (k2 === undefined) k2 = k;
|
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
}
|
|
Object.defineProperty(o, k2, desc);
|
|
}) : (function(o, m, k, k2) {
|
|
if (k2 === undefined) k2 = k;
|
|
o[k2] = m[k];
|
|
}));
|
|
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
}) : function(o, v) {
|
|
o["default"] = v;
|
|
});
|
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
if (mod && mod.__esModule) return mod;
|
|
var result = {};
|
|
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
__setModuleDefault(result, mod);
|
|
return result;
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const Discord = __importStar(require("discord.js"));
|
|
const fs = __importStar(require("fs"));
|
|
const { token, disableDaytimeAnnouncements } = JSON.parse(fs.readFileSync('./config.json', 'utf8'));
|
|
const path = __importStar(require("path"));
|
|
const morningHour = 8;
|
|
const eveningHour = 21;
|
|
function getNextMorning() {
|
|
let now = new Date();
|
|
let next = new Date();
|
|
if (now.getUTCHours() >= morningHour) {
|
|
next.setTime(next.getTime() + 1000 * 60 * 60 * 24);
|
|
}
|
|
next.setUTCHours(morningHour);
|
|
next.setUTCMinutes(Math.floor(Math.random() * 60));
|
|
next.setUTCSeconds(Math.floor(Math.random() * 60));
|
|
console.log('next morning set to ' + next);
|
|
return next.getTime();
|
|
}
|
|
function getNextNight() {
|
|
let now = new Date();
|
|
let next = new Date();
|
|
if (now.getUTCHours() >= eveningHour) {
|
|
next.setTime(next.getTime() + 1000 * 60 * 60 * 24);
|
|
}
|
|
next.setUTCHours(eveningHour);
|
|
next.setUTCMinutes(Math.floor(Math.random() * 60));
|
|
next.setUTCSeconds(Math.floor(Math.random() * 60));
|
|
console.log('next night set to ' + next);
|
|
return next.getTime();
|
|
}
|
|
let next;
|
|
function save() {
|
|
fs.writeFileSync('./next.json', JSON.stringify(next));
|
|
}
|
|
if (fs.existsSync('./next.json')) {
|
|
next = JSON.parse(fs.readFileSync('./next.json', 'utf8'));
|
|
}
|
|
else {
|
|
next = {
|
|
morning: getNextMorning(),
|
|
night: getNextNight()
|
|
};
|
|
save();
|
|
}
|
|
const bot = new Discord.Client({
|
|
intents: [
|
|
Discord.Intents.FLAGS.GUILDS,
|
|
Discord.Intents.FLAGS.GUILD_MESSAGES,
|
|
Discord.Intents.FLAGS.GUILD_VOICE_STATES,
|
|
Discord.Intents.FLAGS.GUILD_MESSAGE_REACTIONS,
|
|
],
|
|
});
|
|
const channels = [
|
|
'587108210683412493'
|
|
];
|
|
const morning = [
|
|
'goob morning',
|
|
'gm besties',
|
|
'morning !!!',
|
|
'it is Morning',
|
|
'gm',
|
|
'goom morbning'
|
|
];
|
|
const night = [
|
|
'good night!!!!!!',
|
|
'nini all',
|
|
'goob night',
|
|
'goo night .....',
|
|
'sleep well everyone!!!!!',
|
|
'good night !! dont let the bugs bite'
|
|
];
|
|
bot.on('ready', async () => {
|
|
setInterval(() => {
|
|
let current = new Date().getTime();
|
|
// console.log(current, next.morning, next.night);
|
|
if (current > next.morning && !disableDaytimeAnnouncements) {
|
|
next.morning = getNextMorning();
|
|
channels.forEach(c => {
|
|
bot.channels.fetch(c)
|
|
.then(channel => channel.send(morning[Math.floor(Math.random() * morning.length)]))
|
|
.catch(err => console.log('couldnt find channel ' + c + ': ' + err));
|
|
});
|
|
save();
|
|
}
|
|
if (current > next.night && !disableDaytimeAnnouncements) {
|
|
next.night = getNextNight();
|
|
channels.forEach(c => {
|
|
bot.channels.fetch(c)
|
|
.then(channel => channel.send(night[Math.floor(Math.random() * night.length)]))
|
|
.catch(err => console.log('couldnt find channel ' + c + ': ' + err));
|
|
});
|
|
save();
|
|
}
|
|
}, 1000);
|
|
bot.commands = new Discord.Collection();
|
|
const cmdFiles = fs.readdirSync(path.join(__dirname, "./commands")).filter((file) => file.endsWith(".js"));
|
|
for (const file of cmdFiles) {
|
|
const cmd = (await Promise.resolve().then(() => __importStar(require(`./commands/${file}`))));
|
|
bot.commands.set(cmd.data.name, cmd);
|
|
if (cmd.onClientReady)
|
|
cmd.onClientReady(bot);
|
|
}
|
|
console.log('foggy online');
|
|
});
|
|
bot.on('interactionCreate', async (interaction) => {
|
|
if (!interaction.isCommand())
|
|
return;
|
|
const command = interaction.client.commands.get(interaction.commandName);
|
|
if (!command)
|
|
return;
|
|
try {
|
|
await command.execute(interaction, interaction.member);
|
|
}
|
|
catch (error) {
|
|
interaction.reply({ content: "`ERROR`", ephemeral: true });
|
|
console.error(error);
|
|
}
|
|
});
|
|
bot.login(token);
|