From b4c4c7bd1ec93f6eb06d9a6fe1348eab6a31fadb Mon Sep 17 00:00:00 2001 From: EmotionChild Date: Mon, 13 Dec 2021 13:25:45 +1300 Subject: [PATCH] Fixed some bugs - EmotionChild Fixed some bugs which were causing errors --- Database Examples/index4mongo.js | 103 +++++++++++++++++-------------- config.example.json | 1 + events/interactionCreate.js | 1 - package.json | 4 +- 4 files changed, 61 insertions(+), 48 deletions(-) diff --git a/Database Examples/index4mongo.js b/Database Examples/index4mongo.js index ff2295e..10f9702 100644 --- a/Database Examples/index4mongo.js +++ b/Database Examples/index4mongo.js @@ -4,6 +4,7 @@ const Discord = require('discord.js'); const client = new Discord.Client({ intents: [ Discord.Intents.FLAGS.GUILDS, + Discord.Intents.FLAGS.GUILD_MEMBERS, Discord.Intents.FLAGS.GUILD_MESSAGE_REACTIONS ] }); @@ -13,71 +14,96 @@ client.config = config; // Load quickmongo const { Database } = require('quickmongo'); -const db = new Database(`${config.mongo_url}`); +const db = new Database(config.mongodb_url); -// check the DB when it's ready -db.once('ready', async () => { - if (!Array.isArray(await db.get('giveaways')) === null) await db.set('giveaways', []); - // start the manager only if the db got checked to prevent an error +// Ceck the DB when it is ready +db.on('ready', async () => { + if (!Array.isArray(await b.get('giveaways'))) await db.set('giveaways', []); + // Start the manager only after the BD got checked to prevent an error client.giveawaysManager._init(); console.log('SUCCESS!'); -}); +}) // Init discord giveaways const { GiveawaysManager } = require('discord-giveaways'); -class GiveawayManagerWithOwnDatabase extends GiveawaysManager { - // This funtion is called when the manager need to get all the giveaways stored in the database +const GiveawayManagerWithOwnDatabase = class extends GiveawaysManager { + // This function is called when the manager needs to get all giveaways which are stored in the database. async getAllGiveaways() { + // Get all giveaways from the database return await db.get('giveaways'); } - - // This function is called when a giveaway needs to be saved in the database (when a giveaway is created or when a giveaway is edited). - async saveGiveaway(messageID, giveawayData) { - // Add the nw one + + // This function is called when a giveaway needs to be saved in the database. + async sameGiveaway(messageId, giveawayData) { + // Add the giveaway to the database await db.push('giveaways', giveawayData); - // Can't forget to return something. + // Don't forget to return something! return true; } - async editGiveaway(messageID, giveawayData) { - // Gets all the current giveaways + // This function is called when a giveaway needs to be edited in the database. + async editGiveaway(messageId, giveawayData) { + // Get all giveaways from the database const giveaways = await db.get('giveaways'); - // Remove the old giveaway from the current giveaways ID - const newGiveawaysArray = giveaways.filter((giveaway) => giveaway.messageID !== messageID); - // Push the new giveaway to the array + // Remove the unexisting giveaway from the array + const newGiveawaysArray = giveaways.filter((giveaway) => giveaway.messageId !== messageId); + // Push the edited giveaway to the array newGiveawaysArray.push(giveawayData); // Save the updated array await db.set('giveaways', newGiveawaysArray); - // Can't forget to return something. + // Don't forget to return something! return true; } - async deleteGiveaway(messageID) { - // Gets all the current giveaways - const data = await db.get('giveaways'); - // Remove the giveaway from the array - const newGiveawaysArray = data.filter((giveaway) => giveaway.messageID !== messageID); + // This function is called when a giveaway needs to be deleted from the database. + async deleteGiveaway(messageId) { + // Get all giveaways from the database + const giveaways = await db.get('giveaways'); + // Remove the unexisting giveaway from the array + const newGiveawaysArray = giveaways.filter((giveaway) => giveaway.messageId !== messageId); // Save the updated array await db.set('giveaways', newGiveawaysArray); - // Can't forget to return something. + // Don't forget to return something! return true; } -} +}; // Create a new instance of your new class const manager = new GiveawayManagerWithOwnDatabase(client, { - updateCountdownEvery: 10000, default: { botsCanWin: false, - embedColor: "#FF0000", + embedColor: '#FF0000', embedColorEnd: '#000000', - reaction: "🎉" + reaction: '🎉', } -}, false) +}, false); client.giveawaysManager = manager; -/* Load all events */ +/* Load all commands */ +client.commands = new Discord.Collection(); +fs.readdir("./commands/", (_err, files) => { + files.forEach((file) => { + if(!file.endsWith(".js")) return; + let props = require(`./commands/${file}`); + let commandName = file.split(".")[0]; + client.commands.set(commandName, { + name: commandName, + ...props + }); + console.log(`👌 Command loaded: ${commandName}`); + }); + synchronizeSlashCommands(client, client.commands.map((c) => ({ + name: c.name, + description: c.description, + options: c.options, + type: 'CHAT_INPUT' + })), { + debug: true + }); +}); + +/* Load all commands */ fs.readdir("./events/", (_err, files) => { files.forEach((file) => { if (!file.endsWith(".js")) return; @@ -85,20 +111,7 @@ fs.readdir("./events/", (_err, files) => { let eventName = file.split(".")[0]; console.log(`👌 Event loaded: ${eventName}`); client.on(eventName, event.bind(null, client)); - delete require.cache[require.resolve(`./events/${file}`)]; - }); -}); - -client.commands = new Discord.Collection(); - -/* Load all commands */ -fs.readdir("./commands", (_err, files) => { - files.forEach((file) => { - if (!file.endsWith(".js")) return; - let props = require(`./commands/${file}`); - let commandName = file.split(".")[0]; - client.commands.set(commandName, props); - console.log(`👌 Command loaded: ${commandName}`); + delete require.cache[require.resolve(`.events/${file}`)]; }); }); diff --git a/config.example.json b/config.example.json index 1c36f8c..13f8aca 100644 --- a/config.example.json +++ b/config.example.json @@ -1,5 +1,6 @@ { "token": "Discord Bot Token", + "mongo_url": "mongodb://localhost:27017/giveawaychild", "everyoneMention": false, "hostedBy": true } \ No newline at end of file diff --git a/events/interactionCreate.js b/events/interactionCreate.js index 2fd253b..3c4dc1a 100644 --- a/events/interactionCreate.js +++ b/events/interactionCreate.js @@ -10,5 +10,4 @@ module.exports = (client, interaction) => { }); command.run(client, interaction); - }; \ No newline at end of file diff --git a/package.json b/package.json index 396a5a6..22275b8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "giveaway-child", - "version": "2.0.0", + "version": "2.0.1", "description": "", "main": "index.js", "scripts": { @@ -24,7 +24,7 @@ "beautify": "^0.0.8", "discord-giveaways": "^5.0.1", "discord-sync-commands": "^0.3.0", - "discord.js": "^13.2.0", + "discord.js": "^13.3.1", "fero-ms": "^2.0.7", "ms": "^2.1.3", "quickdb": "^1.0.5",