8.4 DEV 1

Changed JSON to SQLlite
Added Suggestion Forums
Added /suggestadmin
This commit is contained in:
1tzEmerald committed 2025-09-20 23:09:22 +01:00
1 parent c6db929d12
commit a05d65099b
40 files changed
+1562 -1522

No files matched your search

+41 -27
View File
@@ -1,12 +1,27 @@
const fs = require("fs");
const path = require("path");
const Discord = require("discord.js");
const { GatewayIntentBits, Partials } = require('discord.js');
const yaml = require("js-yaml");
const { Command, Event } = require('./Addon.js'); // Adjust the path as needed
const { Command, Event } = require('./Addon.js');
const supportbot = yaml.load(fs.readFileSync("./Configs/supportbot.yml", "utf8"));
const cmdconfig = yaml.load(fs.readFileSync("./Configs/commands.yml", "utf8"));
function walk(dir, ext = ".js", fileList = []) {
const files = fs.readdirSync(dir);
for (const file of files) {
const full = `${dir}/${file}`;
const stat = fs.statSync(full);
if (stat.isDirectory()) {
walk(full, ext, fileList);
} else if (file.endsWith(ext)) {
fileList.push(full);
}
}
return fileList;
}
class Client extends Discord.Client {
constructor() {
super({
@@ -23,7 +38,7 @@ class Client extends Discord.Client {
}
async getChannel(channel, guild) {
if (!channel) return null; // Add check for undefined channel
if (!channel) return null;
return guild.channels.cache.find(
(c) =>
(c.type === Discord.ChannelType.GuildText || c.type === Discord.ChannelType.GuildNews) &&
@@ -32,14 +47,14 @@ class Client extends Discord.Client {
}
async getRole(role, guild) {
if (!role) return null; // Add check for undefined role
if (!role) return null;
return guild.roles.cache.find(
(r) => r.id === role || (r.name && r.name.toLowerCase() === role.toLowerCase())
);
}
async getCategory(category, guild) {
if (!category) return null; // Add check for undefined category
if (!category) return null;
return guild.channels.cache.find(
(c) =>
c.type === Discord.ChannelType.GuildCategory &&
@@ -48,72 +63,75 @@ class Client extends Discord.Client {
}
async start(token) {
let tempCommandFiles = fs.readdirSync("./Commands").filter((file) => file.endsWith(".js"));
let tempCommandFiles = walk("./Commands");
if (cmdconfig.Suggestion.Enabled === false) {
tempCommandFiles = tempCommandFiles.filter(item => item !== "suggest.js");
tempCommandFiles = tempCommandFiles.filter(item => path.basename(item) !== "suggest.js");
}
if (cmdconfig.Suggestion.Enabled === false) {
tempCommandFiles = tempCommandFiles.filter(item => path.basename(item) !== "suggestadmin.js");
}
if (cmdconfig.Help.Enabled === false) {
tempCommandFiles = tempCommandFiles.filter(item => item !== "help.js");
tempCommandFiles = tempCommandFiles.filter(item => path.basename(item) !== "help.js");
}
if (cmdconfig.Info.Enabled === false) {
tempCommandFiles = tempCommandFiles.filter(item => item !== "info.js");
tempCommandFiles = tempCommandFiles.filter(item => path.basename(item) !== "info.js");
}
if (cmdconfig.OpenTicket.Enabled === false) {
tempCommandFiles = tempCommandFiles.filter(item => item !== "ticket.js");
tempCommandFiles = tempCommandFiles.filter(item => path.basename(item) !== "ticket.js");
}
if (cmdconfig.CloseTicket.Enabled === false) {
tempCommandFiles = tempCommandFiles.filter(item => item !== "close.js");
tempCommandFiles = tempCommandFiles.filter(item => path.basename(item) !== "close.js");
}
if (cmdconfig.Embed.Enabled === false) {
tempCommandFiles = tempCommandFiles.filter(item => item !== "embed.js");
tempCommandFiles = tempCommandFiles.filter(item => path.basename(item) !== "embed.js");
}
if (cmdconfig.Translate.Enabled === false) {
tempCommandFiles = tempCommandFiles.filter(item => item !== "translate.js");
tempCommandFiles = tempCommandFiles.filter(item => path.basename(item) !== "translate.js");
}
if (cmdconfig.UserInfo.Enabled === false) {
tempCommandFiles = tempCommandFiles.filter(item => item !== "userinfo.js");
tempCommandFiles = tempCommandFiles.filter(item => path.basename(item) !== "userinfo.js");
}
if (cmdconfig.Ping.Enabled === false) {
tempCommandFiles = tempCommandFiles.filter(item => item !== "Ping.js");
tempCommandFiles = tempCommandFiles.filter(item => path.basename(item) !== "Ping.js");
}
if (cmdconfig.AddUser.Enabled === false) {
tempCommandFiles = tempCommandFiles.filter(item => item !== "addUser.js");
tempCommandFiles = tempCommandFiles.filter(item => path.basename(item) !== "addUser.js");
}
if (cmdconfig.RemoveUser.Enabled === false) {
tempCommandFiles = tempCommandFiles.filter(item => item !== "removeUser.js");
tempCommandFiles = tempCommandFiles.filter(item => path.basename(item) !== "removeUser.js");
}
if (cmdconfig.ForceAddUser.Enabled === false) {
tempCommandFiles = tempCommandFiles.filter(item => item !== "forceaddUser.js");
tempCommandFiles = tempCommandFiles.filter(item => path.basename(item) !== "forceaddUser.js");
}
if (cmdconfig.Profile.Enabled === false) {
tempCommandFiles = tempCommandFiles.filter(item => item !== "profile.js");
tempCommandFiles = tempCommandFiles.filter(item => path.basename(item) !== "profile.js");
}
if (cmdconfig.Settings.Enabled === false) {
tempCommandFiles = tempCommandFiles.filter(item => item !== "settings.js");
tempCommandFiles = tempCommandFiles.filter(item => path.basename(item) !== "settings.js");
}
if (cmdconfig.Mod.Enabled === false) {
tempCommandFiles = tempCommandFiles.filter(item => item !== "mod.js");
tempCommandFiles = tempCommandFiles.filter(item => path.basename(item) !== "mod.js");
}
const commandFiles = tempCommandFiles;
const commands = commandFiles.map((file) => require(`../Commands/${file}`));
const commands = commandFiles.map((file) => require(`../${file}`));
// Load main commands
console.log(`\u001b[33m`, "――――――――――――――――――――――――――――――――――――――――――――");
commands.forEach((cmd) => {
@@ -121,7 +139,6 @@ class Client extends Discord.Client {
this.commands.set(cmd.name, cmd);
});
// Load addon commands and events
console.log(`\u001b[33m`, "▬▬▬▬▬▬▬ Commands ▬▬▬▬▬▬▬");
if (supportbot.General.Addons.Enabled) {
@@ -133,7 +150,6 @@ class Client extends Discord.Client {
return addon;
});
// Addons
console.log(" ");
console.log(`\u001b[33m`, "▬▬▬▬▬▬▬ Addons ▬▬▬▬▬▬▬");
@@ -163,8 +179,6 @@ class Client extends Discord.Client {
console.log(`\u001b[33m`, "▬▬▬▬▬▬▬ Addons ▬▬▬▬▬▬▬");
}
// Register Slash Commands
this.once("ready", async () => {
await this.guilds.cache.first()?.commands.set(this.commands);
console.log(
@@ -196,4 +210,4 @@ class Client extends Discord.Client {
}
}
module.exports = Client;
module.exports = Client;