Files
SupportBot/Events/ready.js
T

143 lines
6.1 KiB
JavaScript
Raw Permalink Normal View History

2021-10-24 22:47:42 +01:00
// SupportBot | Emerald Services
// Ready Event
const fs = require("fs");
const Discord = require("discord.js");
2024-06-12 12:54:31 +01:00
const { Client, GatewayIntentBits, ActivityType } = require('discord.js');
const client = new Discord.Client({intents: 32767})
2021-10-24 22:47:42 +01:00
const yaml = require("js-yaml");
2022-08-12 01:35:36 +01:00
2021-10-27 19:30:10 -05:00
const supportbot = yaml.load(
fs.readFileSync("./Configs/supportbot.yml", "utf8")
);
2021-10-24 22:47:42 +01:00
const panelconfig = yaml.load(
2021-10-27 19:30:10 -05:00
fs.readFileSync("./Configs/ticket-panel.yml", "utf8")
2021-10-24 22:47:42 +01:00
);
2022-08-12 01:35:36 +01:00
const cmdconfig = yaml.load(
fs.readFileSync("./Configs/commands.yml", "utf8")
);
const msgconfig = yaml.load(
fs.readFileSync("./Configs/messages.yml", "utf8")
);
2021-10-24 22:47:42 +01:00
const Event = require("../Structures/Event.js");
2024-10-10 19:14:45 +01:00
let chan1 = client.channels.cache.get(supportbot.Ticket.TicketHome);
2024-06-12 12:54:31 +01:00
2022-02-27 04:30:15 +00:00
module.exports = new Event("ready", async (client, interaction) => {
const { getRole, getChannel, getCategory } = client;
2024-06-12 12:54:31 +01:00
if (supportbot.Activity.Type === "Playing", "playing") {
client.user.setPresence({
activities: [{ name: supportbot.Activity.Status, type: Discord.ActivityType.Playing }],
status: supportbot.Activity.Type,
});
}
if (supportbot.Activity.Type === "Watching", "watching") {
client.user.setPresence({
activities: [{ name: supportbot.Activity.Status, type: Discord.ActivityType.Watching }],
status: supportbot.Activity.Type,
});
}
if (supportbot.Activity.Type === "Listening", "listening") {
client.user.setPresence({
activities: [{ name: supportbot.Activity.Status, type: Discord.ActivityType.Listening }],
status: supportbot.Activity.Type,
});
}
if (supportbot.Activity.Type === "Competing", "competing") {
client.user.setPresence({
activities: [{ name: supportbot.Activity.Status, type: Discord.ActivityType.Competing }],
status: supportbot.Activity.Type,
});
}
2021-10-24 22:47:42 +01:00
2024-07-30 17:45:35 +01:00
console.log(`\u001b[33m`, `――――――――――――――――――――――――――――――――――――――――――――`);
2022-07-22 13:19:05 +01:00
console.log(` `);
console.log(`\u001b[31m`, `┏━━━┓╋╋╋╋╋╋╋╋╋╋╋╋╋┏┓┏━━┓╋╋╋┏┓`);
console.log(`\u001b[31m`, `┃┏━┓┃╋╋╋╋╋╋╋╋╋╋╋╋┏┛┗┫┏┓┃╋╋┏┛┗┓`);
console.log(`\u001b[31m`, `┃┗━━┳┓┏┳━━┳━━┳━━┳┻┓┏┫┗┛┗┳━┻┓┏┛`);
console.log(`\u001b[31m`, `┗━━┓┃┃┃┃┏┓┃┏┓┃┏┓┃┏┫┃┃┏━┓┃┏┓┃┃`);
console.log(`\u001b[31m`, `┃┗━┛┃┗┛┃┗┛┃┗┛┃┗┛┃┃┃┗┫┗━┛┃┗┛┃┗┓`);
console.log(`\u001b[31m`, `┗━━━┻━━┫┏━┫┏━┻━━┻┛┗━┻━━━┻━━┻━┛`);
console.log(`\u001b[31m`, `┗╋╋╋╋╋╋╋┃┃╋┃┃`);
console.log(`\u001b[31m`, `╋╋╋╋╋╋╋┗┛╋┗┛`);
2021-10-24 22:47:42 +01:00
console.log(` `);
2024-07-30 17:45:35 +01:00
console.log(`\u001b[33m`, `――――――――――――――――――――――――――――――――――――――――――――`);
console.log(` `);
console.log(`\u001b[33m`, `${supportbot.General.Name} | [${supportbot.SupportBot_Version}]`, `\u001b[32m`, `Connected to Discord`,);
console.log("\u001b[32m", "SupportBot created by Emerald Development ");
2021-10-24 22:47:42 +01:00
console.log(` `);
2024-07-30 17:45:35 +01:00
console.log(`\u001b[33m`, `――――――――――――――――― [Links] ――――――――――――――――――`);
console.log("\u001b[32m", "Discord: https://dsc.gg/emerald-dev");
console.log("\u001b[32m", "Website: https://emeraldsrv.com");
console.log("\u001b[32m", "Community: https://community.emeraldsrv.com");
console.log("\u001b[32m", "Documentation: https://docs.emeraldsrv.com");
2022-07-22 13:19:05 +01:00
console.log(` `);
2024-07-30 17:45:35 +01:00
console.log(`\u001b[33m`, `――――――――――――――――― [Invite] ――――――――――――――――――`);
console.log("\u001b[32m", `Invite URL: https://discord.com/api/oauth2/authorize?client_id=${client.user.id}&permissions=8&scope=bot%20applications.commands`);
2022-07-22 13:19:05 +01:00
console.log(` `);
2024-07-30 17:45:35 +01:00
console.log(`\u001b[33m`, `――――――――――――――――― [Config Check] ――――――――――――――――――`);
console.log("\u001b[32m", "Config initialization...");
2022-06-16 22:12:14 +01:00
2021-11-17 19:04:20 -06:00
const roles = [
2022-08-12 01:35:36 +01:00
supportbot.Roles.StaffMember.Admin,
2024-11-09 00:37:51 +00:00
supportbot.Roles.StaffMember.Staff
2021-11-17 19:04:20 -06:00
];
2022-06-23 00:05:08 +01:00
2022-08-12 01:35:36 +01:00
if (supportbot.Roles.AutoRole.Role) roles.push(supportbot.Roles.AutoRole.Role);
2024-06-12 12:54:31 +01:00
const channels = [
supportbot.Suggestions.Channel,
supportbot.Ticket.Log.TicketLog,
supportbot.Ticket.Log.TranscriptLog,
2024-10-10 19:14:45 +01:00
supportbot.Ticket.TicketHome,
2024-06-12 12:54:31 +01:00
supportbot.Welcome.Channel,
supportbot.Leave.Channel,
supportbot.Translate.Log
];
2022-06-22 23:30:59 +01:00
//const categories = [supportbot.TicketCategory];
2021-11-17 19:04:20 -06:00
2024-06-12 12:54:31 +01:00
if (!channels) {
console.log("\u001b[31m", `[MISSING CHANNEL]`, `\u001b[37;1m`, `${channels}`, "\u001b[31m", `channel not found. Please check your config file.`);
return;
}
// else {
// console.log(`\u001b[32m`, `[CHANNEL LOCATED]`, `\u001b[37;1m`, `${channels}`, `\u001b[32;1m`, `channel has been found.`);
// }
const missingC = [];
const missingR = [];
const missingCat = [];
2022-07-23 07:50:12 +01:00
2021-11-17 19:04:20 -06:00
for (let r of roles) {
const find = await getRole(r, client.guilds.cache.first());
2021-11-17 19:04:20 -06:00
if (!find) missingR.push(r);
}
2022-06-22 23:30:59 +01:00
// for (let cat of categories) {
// const find = await getCategory(cat, client.guilds.cache.first());
// if (!find) missingCat.push(cat);
// }
2021-10-24 22:47:42 +01:00
2024-07-30 17:45:35 +01:00
const missingRoles = await Promise.all(roles.map(role => getRole(role, client.guilds.cache.first())));
const missingChannels = await Promise.all(channels.map(channel => getChannel(channel, client.guilds.cache.first())));
2021-11-17 19:04:20 -06:00
2024-07-30 17:45:35 +01:00
if (missingRoles.some(role => !role)) {
console.log("\u001b[31m", `Missing roles in your server configuration: ${missingRoles.filter(role => !role).join(', ')}`);
2021-11-17 19:04:20 -06:00
}
2024-07-30 17:45:35 +01:00
if (missingChannels.some(channel => !channel)) {
console.log("\u001b[31m", `Missing channels in your server configuration: ${missingChannels.filter(channel => !channel).join(', ')}`);
}
2024-07-30 17:45:35 +01:00
console.log("\u001b[32m", "Configs initialized, No problems were detected.");
console.log(` `);
2022-06-23 00:05:08 +01:00
});