diff --git a/commands/forceunverify.js b/commands/forceunverify.js index fee0be2..8f65dd3 100644 --- a/commands/forceunverify.js +++ b/commands/forceunverify.js @@ -1,7 +1,6 @@ const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require('discord.js'); const { color } = 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"); const removeThese = [gm, manager, moderator, beast, member, trialmember, guildRole, guildStaff, defaultMember] @@ -28,7 +27,6 @@ module.exports = { const member = interaction.guild.members.cache.get(member1.id) const embedColor = Number(color.replace('#', '0x')) const verifiedUser = await verify.findOne({ userID: member1.id }) - const user = interaction.user if (!verifiedUser) { return interaction.reply({ @@ -45,7 +43,7 @@ module.exports = { await interaction.reply({ embeds: [{ - description: "Successfully unverified" + userMention(member1.id), + description: "Successfully unverified " + userMention(member1.id), color: embedColor, footer: { text: interaction.guild.name + " | Developed by taken.lua", diff --git a/commands/forceupdate.js b/commands/forceupdate.js index f85e0eb..897a271 100644 --- a/commands/forceupdate.js +++ b/commands/forceupdate.js @@ -1,9 +1,8 @@ const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require('discord.js'); -const hypixelAPIKey = process.env.HYPIXELAPIKEY; +const { getGuild, getHeadURL, getIGN } = require('../utils/utils.js') const { hypixelGuildID, color } = require('../config/options.json'); const { gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff, defaultMember } = require('../config/roles.json'); const verify = require('../schemas/verifySchema.js') -const fetch = require('axios'); const removeThese = [gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff] module.exports = { @@ -50,18 +49,14 @@ module.exports = { return } - const mojangAPI = "https://api.mojang.com/user/profile/" - const guildlAPI = "https://api.hypixel.net/guild" - const minotar = "https://minotar.net/helm/"; - const guild = guildlAPI + "?key=" + hypixelAPIKey + "&player=" + verifyData.uuid; - const userCheck = await fetch(mojangAPI + verifyData.uuid); - const guildCheck = await fetch(guild); - const head = minotar + userCheck.data.name; + const ign = await getIGN(verifyData.uuid); + const head = await getHeadURL(ign) + const guild = await getGuild(verifyData.uuid); - if (!guildCheck.data.guild) { + if (!guild) { var responseGuildID = null } else { - var responseGuildID = guildCheck.data.guild._id + var responseGuildID = guild._id } if (responseGuildID !== hypixelGuildID) { @@ -89,7 +84,7 @@ module.exports = { if (responseGuildID === hypixelGuildID) { - const GuildMembers = guildCheck.data.guild.members; + const GuildMembers = guild.members; const guildRank = GuildMembers.find(member => member.uuid === verifyData.uuid).rank; if (guildRank === 'Guild Master') { diff --git a/commands/forceverify.js b/commands/forceverify.js index bb1e84c..d11e7f4 100644 --- a/commands/forceverify.js +++ b/commands/forceverify.js @@ -1,6 +1,5 @@ const { SlashCommandBuilder, PermissionFlagsBits } = require('discord.js'); -const hypixelApiKey = process.env.HYPIXELAPIKEY; -const fetch = require('axios'); +const { getUUID, getPlayer, getGuild, getHeadURL } = require('../utils/utils.js'); const { color, hypixelGuildID } = require('../config/options.json'); const verify = require('../schemas/verifySchema.js') const { mongoose } = require('mongoose'); @@ -36,25 +35,16 @@ module.exports = { const user = interaction.guild.members.cache.get(user1.id); const ign = interaction.options.getString('ign'); const mod = interaction.user - - // const slothPixel = "https://api.slothpixel.me/api/players/"; - // const guildAPI = "https://api.slothpixel.me/api/guilds/" - - const mojang = "https://api.mojang.com/users/profiles/minecraft/" - const hypixelApi = "https://api.hypixel.net/player" - const guildApi = "https://api.hypixel.net/guild" - const minotar = "https://minotar.net/helm/"; const embedColor = Number(color.replace("#", "0x")); - if (!user) { - interaction.editReply('Please provide a user to force verify.\nThis can also mean the user is not in the server.') + const verifyData = await verify.findOne({ userID: user.id }) + if (verifyData) { + interaction.editReply('That user is already verified.') return } - const verifyData = await verify.findOne({ userID: user.id }) - - if (verifyData) { - interaction.editReply('That user is already verified.') + if (!user) { + interaction.editReply('Please provide a user to force verify.\nThis can also mean the user is not in the server.') return } @@ -75,23 +65,19 @@ module.exports = { var modName = mod.username + "#" + mod.discriminator } - try { - await fetch(mojang + ign); - } catch (err) { - interaction.editReply('That player doesn\'t exist. [Mojang]') + const uuid = await getUUID(ign); + if (!uuid) { + interaction.editReply({ + embeds: [{ + description: " That player doesn't exist.", + color: embedColor + }] + }) return } - const userCheck = await fetch(mojang + ign); - const userUUID = userCheck.data.id; - - const player = hypixelApi + "?key=" + hypixelApiKey + "&uuid=" + userUUID - const guild = guildApi + "?key=" + hypixelApiKey + "&player=" + userUUID - const head = minotar + ign; - - const hypixelCheck = await fetch(player); - - if (!hypixelCheck.data.player) { + const player = await getPlayer(uuid); + if (!player) { interaction.editReply({ embeds: [{ description: " That player hasn't played Hypixel before.", @@ -101,17 +87,17 @@ module.exports = { return; } - const guildCheck = await fetch(guild) - - if (!guildCheck.data.guild) { + const guild = await getGuild(uuid); + if (!guild) { var responseGuildID = null } else { - var responseGuildID = guildCheck.data.guild._id + var responseGuildID = guild._id } + const head = await getHeadURL(ign); if (responseGuildID === hypixelGuildID) { - const GuildMembers = guildCheck.data.guild.members; - const guildRank = GuildMembers.find(member => member.uuid === hypixelCheck.data.player.uuid).rank; + const GuildMembers = guild.members; + const guildRank = GuildMembers.find(member => member.uuid === player.uuid).rank; if (guildRank === "Guild Master") { await user.roles.add(gm, "User was force verified by " + modName); @@ -157,7 +143,7 @@ module.exports = { const newVerify = new verify({ _id: new mongoose.Types.ObjectId(), userID: user.id, - uuid: userUUID + uuid: uuid }) await newVerify.save(); @@ -165,7 +151,7 @@ module.exports = { await interaction.editReply({ embeds: [{ title: interaction.guild.name, - description: "You have successfully force verified `" + username + "` with the account `" + hypixelCheck.data.player.displayname + "`.", + description: "You have successfully force verified `" + username + "` with the account `" + player.displayname + "`.", color: embedColor, thumbnail: { url: head diff --git a/commands/update.js b/commands/update.js index e066575..aa66b93 100644 --- a/commands/update.js +++ b/commands/update.js @@ -1,6 +1,5 @@ const { SlashCommandBuilder } = require('discord.js'); -const hypixelApiKey = process.env.HYPIXELAPIKEY; -const fetch = require('axios'); +const { getGuild, getIGN, getHeadURL } = require('../utils/utils.js'); const verify = require('../schemas/verifySchema.js') const { color, hypixelGuildID } = require('../config/options.json'); const { gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff, defaultMember } = require('../config/roles.json'); @@ -33,9 +32,6 @@ module.exports = { embeds: [{ description: "You are not verified. Please run `/verify` to verify yourself", color: embedColor, - thumbnail: { - url: head - }, footer: { text: interaction.guild.name + " | Developed by @Taken#0002", icon_url: interaction.guild.iconURL({ dynamic: true }) @@ -45,20 +41,15 @@ module.exports = { return } - const mojangAPI = "https://api.mojang.com/user/profile/" - const guildAPI = "https://api.hypixel.net/guild" - const minotar = "https://minotar.net/helm/"; - const userCheck = await fetch(mojangAPI + verifyData.uuid); - const head = minotar + userCheck.data.name; - const guild = guildAPI + "?key=" + hypixelApiKey + "&player=" + verifyData.uuid - const guildCheck = await fetch(guild); - - if (!guildCheck.data.guild) { + const guild = await getGuild(verifyData.uuid); + if (!guild) { var guildID = null } else { - var guildID = guildCheck.data.guild._id + var guildID = guild._id } + const ign = await getIGN(verifyData.uuid); + const head = await getHeadURL(ign); if (guildID !== hypixelGuildID) { for (let i = 0; i < removeThese.length; i++) { @@ -85,7 +76,7 @@ module.exports = { if (guildID === hypixelGuildID) { - const GuildMembers = guildCheck.data.guild.members; + const GuildMembers = guild.members; const guildRank = GuildMembers.find(member => member.uuid === verifyData.uuid).rank; if (guildRank === 'Guild Master') { diff --git a/commands/verify.js b/commands/verify.js index 6cd047d..ed1d449 100644 --- a/commands/verify.js +++ b/commands/verify.js @@ -1,6 +1,5 @@ const { SlashCommandBuilder } = require("discord.js"); -const hypixelApiKey = process.env.HYPIXELAPIKEY; -const fetch = require("axios"); +const { getUUID, getPlayer, getGuild, getHeadURL } = require("../utils/utils.js"); const { color, hypixelGuildID } = require("../config/options.json"); const verify = require("../schemas/verifySchema.js"); const mongoose = require("mongoose"); @@ -28,15 +27,9 @@ module.exports = { const user1 = interaction.user const user = interaction.guild.members.cache.get(user1.id); const ign = interaction.options.getString("ign"); - const mojang = "https://api.mojang.com/users/profiles/minecraft/"; - const hypixel = "https://api.hypixel.net/player" - const guildAPI = "https://api.hypixel.net/guild" - const minotar = "https://minotar.net/helm/"; const embedColor = Number(color.replace("#", "0x")); - const head = minotar + ign; const verifyData = await verify.findOne({ userID: user.id }); - if (verifyData) { interaction.editReply("You are already verified.\n" + "Try running /update to update your roles.") return; @@ -52,9 +45,8 @@ module.exports = { return; } - try { - await fetch(mojang + ign); - } catch (err) { + const uuid = await getUUID(ign); + if (!uuid) { interaction.editReply({ embeds: [{ description: " That player does not exist.", @@ -64,13 +56,9 @@ module.exports = { return; } - const userCheck = await fetch(mojang + ign); - const userUUID = userCheck.data.id; - - const player = hypixel + "?key=" + hypixelApiKey + "&uuid=" + userUUID - const stats = await fetch(player); - - if (!stats.data.player) { + const head = await getHeadURL(ign); + const player = await getPlayer(uuid); + if (!player) { interaction.editReply({ embeds: [{ description: " That player hasn't played Hypixel before.", @@ -86,7 +74,7 @@ module.exports = { var username = user1.username + "#" + user1.discriminator } - if (!stats.data.player.socialMedia) { + if (!player.socialMedia) { interaction.editReply({ embeds: [ { @@ -99,7 +87,7 @@ module.exports = { return; } - if (!stats.data.player.socialMedia.links.DISCORD) { + if (!player.socialMedia.links.DISCORD) { interaction.editReply({ embeds: [ { @@ -112,7 +100,7 @@ module.exports = { return; } - const linkedDiscord = stats.data.player.socialMedia.links.DISCORD + const linkedDiscord = player.socialMedia.links.DISCORD if (linkedDiscord !== username) { interaction.editReply({ @@ -127,18 +115,16 @@ module.exports = { return; } - const guild = guildAPI + "?key=" + hypixelApiKey + "&player=" + userUUID - const guildCheck = await fetch(guild); - - if (!guildCheck.data.guild) { + const guild = await getGuild(uuid); + if (!guild) { var guildID = null } else { - var guildID = guildCheck.data.guild._id + var guildID = guild._id } if (guildID === hypixelGuildID) { - const GuildMembers = guildCheck.data.guild.members - const guildRank = GuildMembers.find((member) => member.uuid === stats.data.player.uuid).rank; + const GuildMembers = guild.members + const guildRank = GuildMembers.find((member) => member.uuid === player.uuid).rank; if (guildRank === "Guild Master" && guildID === hypixelGuildID) { await user.roles.add(gm, "Verification"); @@ -184,7 +170,7 @@ module.exports = { const newVerify = new verify({ _id: new mongoose.Types.ObjectId(), userID: user.id, - uuid: userUUID + uuid: uuid }); await newVerify.save(); @@ -193,7 +179,7 @@ module.exports = { embeds: [ { title: interaction.guild.name, - description: "You have successfully verified `" + username + "` with the account `" + stats.data.player.displayname + "`.", + description: "You have successfully verified `" + username + "` with the account `" + player.displayname + "`.", color: embedColor, thumbnail: { url: head diff --git a/commands/whois.js b/commands/whois.js index 77e6c8b..c8dde8a 100644 --- a/commands/whois.js +++ b/commands/whois.js @@ -1,7 +1,7 @@ const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require('discord.js'); +const { getIGN, getHeadURL } = require('../utils/utils.js') const { color } = require('../config/options.json'); const verify = require('../schemas/verifySchema.js'); -const fetch = require('axios'); module.exports = { name: 'whois', @@ -27,19 +27,15 @@ module.exports = { const user = interaction.options.getUser('user'); const embedColor = Number(color.replace("#", "0x")); - const mojang = "https://api.mojang.com/user/profile/" - const minotar = "https://minotar.net/helm/"; const verifiedUser = await verify.findOne({ userID: user.id }); - if (!verifiedUser) { interaction.editReply({ content: 'This user has not verified their account.' }); return } - const userCheck = await fetch(mojang + verifiedUser.uuid); - const ign = userCheck.data.name; - const head = minotar + ign; + const ign = await getIGN(verifiedUser.uuid); + const head = await getHeadURL(ign) await interaction.editReply({ embeds: [{ diff --git a/scripts/dev-deploy.js b/scripts/dev-deploy.js index 5cdc4d1..5830e14 100644 --- a/scripts/dev-deploy.js +++ b/scripts/dev-deploy.js @@ -1,5 +1,5 @@ const { REST, Routes } = require('discord.js'); -const env = require('dotenv').config(); +require('dotenv').config(); const token = process.env.DEVTOKEN; const clientId = process.env.DEVID; const guildId = process.env.GUILDID; @@ -11,7 +11,6 @@ const commands = []; const commandFiles = [ "../commands/config.js", "../commands/setup.js", - "../commands/guild.js" ] // Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment