From a8afeff11b3ec769634adcb65ceb38a354598d7f Mon Sep 17 00:00:00 2001 From: Taken Date: Sat, 1 Apr 2023 20:15:42 +0200 Subject: [PATCH 1/6] Making non guild members not be saved to the db. --- commands/verify.js | 48 +++++++++++++++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 13 deletions(-) diff --git a/commands/verify.js b/commands/verify.js index d549407..48d326f 100644 --- a/commands/verify.js +++ b/commands/verify.js @@ -66,9 +66,16 @@ module.exports = { const userUUID = userCheck.data.id; const hypixelCheck = await fetch(slothPixel + userUUID); - const guildCheck = await fetch(guildAPI + userUUID); const head = minotar + ign; + + try { + await fetch(guildAPI + userUUID); + var responseGuildID = guildCheck.data.id; + } catch (err) { + var responseGuildID = null; + } + const guildCheck = await fetch(guildAPI + userUUID); const GuildMembers = await guildCheck.data.members; const guildRank = GuildMembers.find(member => member.uuid === hypixelCheck.data.uuid).rank; @@ -78,41 +85,56 @@ module.exports = { return } - if (guildRank === "Guild Master" && guildCheck.data.id === hypixelGuildID) { - await user.roles.remove(gm && manager && moderator && beast && member && trialmember && guildRole && guildStaff) + if (responseGuildID !== hypixelGuildID) { + + await user.roles.add(defaultMember) + + await interaction.editReply({ + embeds: [{ + title: interaction.guild.name, + description: "You have successfully verified `" + fullUsername + "` with the account `" + hypixelCheck.data.username + "`.", + color: embedColor, + thumbnail: { + url: head + }, + footer: { + icon_url: interaction.guild.iconURL(), + text: interaction.guild.name + " | Developed by Taken#0002" + } + }] + }); + return + } + + if (guildRank === "Guild Master" && responseGuildID === hypixelGuildID) { await user.roles.add(gm); await user.roles.add(guildRole) await user.roles.add(guildStaff) } - if (guildRank === "Manager" && guildCheck.data.id === hypixelGuildID) { - await user.roles.remove(gm && manager && moderator && beast && member && trialmember && guildRole && guildStaff) + if (guildRank === "Manager" && responseGuildID === hypixelGuildID) { await user.roles.add(manager); await user.roles.add(guildRole) await user.roles.add(guildStaff) } - if (guildRank === "Moderator" && guildCheck.data.id === hypixelGuildID) { - await user.roles.remove(gm && manager && moderator && beast && member && trialmember && guildRole && guildStaff) + if (guildRank === "Moderator" && responseGuildID === hypixelGuildID) { await user.roles.add(moderator); await user.roles.add(guildRole) await user.roles.add(guildStaff) } - if (guildRank === "Beast" && guildCheck.data.id === hypixelGuildID) { - await user.roles.remove(gm && manager && moderator && beast && member && trialmember && guildRole && guildStaff) + if (guildRank === "Beast" && responseGuildID === hypixelGuildID) { await user.roles.add(beast); await user.roles.add(guildRole) } - if (guildRank === "Member" && guildCheck.data.id === hypixelGuildID) { - await user.roles.remove(gm && manager && moderator && beast && member && trialmember && guildRole && guildStaff) + if (guildRank === "Member" && responseGuildID === hypixelGuildID) { await user.roles.add(member); await user.roles.add(guildRole) } - if (guildRank === "Trial Member" && guildCheck.data.id === hypixelGuildID) { - await user.roles.remove(gm && manager && moderator && beast && member && trialmember && guildRole && guildStaff) + if (guildRank === "Trial Member" && responseGuildID === hypixelGuildID) { await user.roles.add(trialmember); await user.roles.add(guildRole) } From 6361875b4b68c860737027fad4dffae034acb6f4 Mon Sep 17 00:00:00 2001 From: Taken Date: Sat, 1 Apr 2023 20:39:33 +0200 Subject: [PATCH 2/6] Added devel (dev only) command --- commands/devel.js | 57 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 commands/devel.js diff --git a/commands/devel.js b/commands/devel.js new file mode 100644 index 0000000..e7f8a0b --- /dev/null +++ b/commands/devel.js @@ -0,0 +1,57 @@ +const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require('discord.js'); +const { dev } = require('../config.json'); +const mongoose = require('mongoose'); +const fetch = require('axios'); +const verify = require('../schemas/verifySchema.js'); +const { hypixelGuildID } = require('../config/options.json'); + +module.exports = { + name: 'admin', + description: 'Admin command.', + type: 'slash', + + data: new SlashCommandBuilder() + .setName('devel') + .setDescription('Admin command.') + .addSubcommand(subcommand => + subcommand + .setName('dbclearnonguildmembers') + .setDescription('Clears the database of non-guild members.')) + .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) + .setDMPermission(false), + + async execute(interaction) { + + const subcommand = interaction.options.getSubcommand(); + const user = interaction.user; + const userMentioned = userMention(user.id); + const guild = interaction.guild; + + if (subcommand === 'dbclearnonguildmembers') { + + await interaction.deferReply({ ephemeral: true }) + + if (user.id !== dev) { + interaction.editReply({ content: 'Due to you not screwing something up this command is restricted to only ' + userMentioned, ephemeral: true }) + return + } + + const slothPixel = "https://api.slothpixel.me/api/guilds/" + const verifiedUsers = await verify.find() + + verifiedUsers.forEach(async (user) => { + + const userGuild = await fetch(slothPixel + user.uuid); + + if (userGuild.data.id !== hypixelGuildID) { + await verify.deleteOne({ uuid: user.uuid }) + } + + }) + + interaction.editReply({ content: 'Done!', ephemeral: true }) + + } + + } +}; \ No newline at end of file From 8978a39321d918ba38f9dad175d4bdee81161eaa Mon Sep 17 00:00:00 2001 From: Taken Date: Sun, 2 Apr 2023 10:23:00 +0200 Subject: [PATCH 3/6] Adding reload command --- commands/devel.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/commands/devel.js b/commands/devel.js index e7f8a0b..86847cd 100644 --- a/commands/devel.js +++ b/commands/devel.js @@ -17,6 +17,10 @@ module.exports = { subcommand .setName('dbclearnonguildmembers') .setDescription('Clears the database of non-guild members.')) + .addSubcommand(subcommand => + subcommand + .setName('reload') + .setDescription('Reload the bot.')) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .setDMPermission(false), @@ -53,5 +57,26 @@ module.exports = { } + if (subcommand === 'reload') { + + await interaction.deferReply({ ephemeral: true }) + + const spawn = require('child_process').spawn; + + if (user.id !== dev) { + await interaction.editReply({ content: 'Due to you not screwing something up this command is restricted to only ' + userMentioned, ephemeral: true }) + return + } + + const child = spawn('pm', ['restart 0'], {}) + + if (child.stderr) { + await interaction.editReply({ content: 'Error restarting bot.', ephemeral: true }) + return + } + + await interaction.editReply({ content: 'Restarting bot...', ephemeral: true }) + + } } }; \ No newline at end of file From c29e5a6d9351c7cda6f3227dde06d6a08a7e9daa Mon Sep 17 00:00:00 2001 From: Taken Date: Sun, 2 Apr 2023 10:25:05 +0200 Subject: [PATCH 4/6] Update to reload --- commands/devel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commands/devel.js b/commands/devel.js index 86847cd..bedbb4d 100644 --- a/commands/devel.js +++ b/commands/devel.js @@ -68,7 +68,7 @@ module.exports = { return } - const child = spawn('pm', ['restart 0'], {}) + const child = spawn('pm restart 0', {}) if (child.stderr) { await interaction.editReply({ content: 'Error restarting bot.', ephemeral: true }) From a4249fe856d7ac044b38e6209d92e4f2b0ecbe5e Mon Sep 17 00:00:00 2001 From: Taken Date: Sun, 2 Apr 2023 10:30:08 +0200 Subject: [PATCH 5/6] Disabled reload command --- commands/devel.js | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/commands/devel.js b/commands/devel.js index bedbb4d..aaf9405 100644 --- a/commands/devel.js +++ b/commands/devel.js @@ -59,23 +59,8 @@ module.exports = { if (subcommand === 'reload') { - await interaction.deferReply({ ephemeral: true }) - - const spawn = require('child_process').spawn; - - if (user.id !== dev) { - await interaction.editReply({ content: 'Due to you not screwing something up this command is restricted to only ' + userMentioned, ephemeral: true }) - return - } - - const child = spawn('pm restart 0', {}) - - if (child.stderr) { - await interaction.editReply({ content: 'Error restarting bot.', ephemeral: true }) - return - } - - await interaction.editReply({ content: 'Restarting bot...', ephemeral: true }) + await interaction.reply({ content: 'In development', ephemeral: true }) + return } } From 80f3183daf140f489b3f549e763cc1a8e9d9dbc1 Mon Sep 17 00:00:00 2001 From: Taken Date: Sun, 2 Apr 2023 10:32:12 +0200 Subject: [PATCH 6/6] Removing reload from config --- commands/config.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/commands/config.js b/commands/config.js index 2d60011..61dd08a 100644 --- a/commands/config.js +++ b/commands/config.js @@ -40,10 +40,6 @@ module.exports = { subcommand .setName('sendrules-info') .setDescription('Send the rules and info message to a channel.')) - .addSubcommand(subcommand => - subcommand - .setName('reload') - .setDescription('Reload the bot.')) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .setDMPermission(false),