From d85782bf9012b0335387f1869b3c84af5bef5009 Mon Sep 17 00:00:00 2001 From: Taken Date: Sat, 18 Mar 2023 23:55:55 +0100 Subject: [PATCH] Updating verify and force verify --- commands/forceverify.js | 139 ++++++++++++++++++++++++++++++++++++++++ commands/verify.js | 2 +- 2 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 commands/forceverify.js diff --git a/commands/forceverify.js b/commands/forceverify.js new file mode 100644 index 0000000..6e96507 --- /dev/null +++ b/commands/forceverify.js @@ -0,0 +1,139 @@ +const { SlashCommandBuilder, PermissionFlagsBits } = require('discord.js'); +const { hypixelApiKey } = require('../config.json'); +const fetch = require('axios'); +const { color, hypixelGuildID } = require('../config/options.json'); +const verify = require('../schemas/verifySchema.js') +const mongoose = require('mongoose'); +const { gm, manager, moderator, beast, member, trialmember, guildRole, guildStaff, defaultMember } = require('../config/roles.json'); + + +module.exports = { + name: 'forceverify', + description: 'Force verify a user.', + type: 'slash', + + data: new SlashCommandBuilder() + .setName('forceverify') + .setDescription('Force verify a user.') + .addUserOption(option => + option + .setName('user') + .setDescription('The user to force verify.')) + .addStringOption(option => + option + .setName('ign') + .setDescription('The user\'s in-game name.')) + .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) + .setDMPermission(false), + + async execute(interaction) { + + await interaction.deferReply(); + + const user1 = interaction.options.getUser('user'); + const user = interaction.guild.members.cache.get(user1.id); + const fullUsername = user1.username + "#" + user1.discriminator + const ign = interaction.options.getString('ign'); + + const mojang = "https://api.mojang.com/users/profiles/minecraft/" + const slothPixel = "https://api.slothpixel.me/api/players/"; + const guildAPI = "https://api.slothpixel.me/api/guilds/" + const minotar = "https://minotar.net/helm/"; + const embedColor = Number(color.replace("#", "0x")); + + const userCheck = await fetch(mojang + ign); + const userUUID = userCheck.data.id; + + const hypixelCheck = await fetch(slothPixel + userUUID); + const guildCheck = await fetch(guildAPI + userUUID); + const head = minotar + ign; + + const GuildMembers = await guildCheck.data.members; + const guildRank = GuildMembers.find(member => member.uuid === hypixelCheck.data.uuid).rank; + + if (!user) { + interaction.reply('Please provide a user to force verify.') + return + } + + if (!ign) { + interaction.reply('Please provide a player\'s IGN.') + return + } + + if (!userUUID) { + interaction.reply('That player doesn\'t exist. [Mojang]') + return + } + + if (!hypixelCheck.data.uuid) { + interaction.reply('That player doesn\'t exist. [Hypixel]') + return + } + + if (guildRank === "Guild Master" && guildCheck.data.id === 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.add(manager); + await user.roles.add(guildRole) + await user.roles.add(guildStaff) + } + + if (guildRank === "Moderator" && guildCheck.data.id === 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.add(beast); + await user.roles.add(guildRole) + } + + if (guildRank === "Member" && guildCheck.data.id === hypixelGuildID) { + await user.roles.add(member); + await user.roles.add(guildRole) + } + + if (guildRank === "Trial Member" && guildCheck.data.id === hypixelGuildID) { + await user.roles.add(trialmember); + await user.roles.add(guildRole) + } + + await user.roles.add(defaultMember); + + const verifyData = await verify.findOne({ userID: user.id }) + + const newVerify = new verify({ + _id: new mongoose.Types.ObjectId(), + userID: user.id, + uuid: userUUID + }) + + if (verifyData) { + await verify.findOneAndUpdate({ userID: user.id }, { uuid: userUUID }) + } else { + await newVerify.save() + } + + await interaction.reply({ + embeds: [{ + title: interaction.guild.name, + description: "You have successfully force 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" + } + }] + }); + + } +}; \ No newline at end of file diff --git a/commands/verify.js b/commands/verify.js index 7590a49..20b92d9 100644 --- a/commands/verify.js +++ b/commands/verify.js @@ -27,7 +27,7 @@ module.exports = { const user1 = interaction.options.getUser('user'); const user = interaction.guild.members.cache.get(user1.id); - const fullUsername = user.username + "#" + user.discriminator + const fullUsername = user1.username + "#" + user1.discriminator const ign = interaction.options.getString('ign'); const mojang = "https://api.mojang.com/users/profiles/minecraft/" const slothPixel = "https://api.slothpixel.me/api/players/";