Moved update command to use hypixel api

This commit is contained in:
2023-07-02 20:53:15 +02:00
parent a48e63b339
commit ac0c24a457

View File

@@ -5,7 +5,6 @@ const fetch = require('axios');
const verify = require('../schemas/verifySchema.js') const verify = require('../schemas/verifySchema.js')
const { color, hypixelGuildID } = require('../config/options.json'); const { color, hypixelGuildID } = require('../config/options.json');
const { gm, manager, moderator, beast, member, trialmember, guildRole, guildStaff, defaultMember } = require('../config/roles.json'); const { gm, manager, moderator, beast, member, trialmember, guildRole, guildStaff, defaultMember } = require('../config/roles.json');
const removeThese = [gm, manager, moderator, beast, member, trialmember, guildRole, guildStaff]; const removeThese = [gm, manager, moderator, beast, member, trialmember, guildRole, guildStaff];
module.exports = { module.exports = {
@@ -14,28 +13,24 @@ module.exports = {
type: 'slash', type: 'slash',
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('update') .setName('update')
.setDescription('Update your guild rank.') .setDescription('Update your guild rank.')
.setDMPermission(false), .setDMPermission(false),
async execute(interaction) { async execute(interaction) {
await interaction.deferReply(); await interaction.deferReply();
const user1 = interaction.user; const user1 = interaction.user;
const user = interaction.guild.members.cache.get(user1.id); const user = interaction.guild.members.cache.get(user1.id);
const verifyData = await verify.findOne({ userID: user.id }) const verifyData = await verify.findOne({ userID: user.id })
const roleManage = user.roles; const roleManage = user.roles;
const embedColor = Number(color.replace("#", "0x"));
if (!verifyData) {
for (let i = 0; i < removeThese.length; i++) {
await roleManage.remove(removeThese[i], "Auto role removal. (Update)")
}
if (!verifyData) {
await interaction.editReply({ await interaction.editReply({
embeds: [{ embeds: [{
description: "Updated your roles to `Default Member`", description: "You are not verified. Please run `/verify` to verify yourself",
color: embedColor, color: embedColor,
thumbnail: { thumbnail: {
url: head url: head
@@ -49,22 +44,25 @@ module.exports = {
return return
} }
const slothPixel = "https://api.slothpixel.me/api/players/";
const guildAPI = "https://api.slothpixel.me/api/guilds/"
const mojangAPI = "https://api.mojang.com/user/profile/" const mojangAPI = "https://api.mojang.com/user/profile/"
const hypixel = "https://api.hypixel.net/player"
const guildAPI = "https://api.hypixel.net/guild"
const minotar = "https://minotar.net/helm/"; const minotar = "https://minotar.net/helm/";
const player = hypixel + "?key=" + hypixelApiKey + "&uuid=" + verifyData.uuid
const userCheck = await fetch(mojangAPI + verifyData.uuid);
const hypixelCheck = await fetch(slothPixel + verifyData.uuid);
try { const userCheck = await fetch(mojangAPI + verifyData.uuid);
const guildCheck = await fetch(guildAPI + verifyData.uuid); const head = minotar + userCheck.data.name;
var responseGuildID = guildCheck.data.id;
} catch (err) { const guild = guildAPI + "?key=" + hypixelApiKey + "&player=" + verifyData.uuid
var responseGuildID = null; const guildCheck = await fetch(guild);
if (!guildCheck.data.guild) {
var guildID = null
} else {
var guildID = guildCheck.data.guild._id
} }
if (responseGuildID !== hypixelGuildID) { if (guildID !== hypixelGuildID) {
for (let i = 0; i < removeThese.length; i++) { for (let i = 0; i < removeThese.length; i++) {
await roleManage.remove(removeThese[i], "Auto role removal. (Update)") await roleManage.remove(removeThese[i], "Auto role removal. (Update)")
@@ -87,26 +85,22 @@ module.exports = {
}) })
return return
} }
const guildCheck = await fetch(guildAPI + verifyData.uuid);
const head = minotar + userCheck.data.name;
const embedColor = Number(color.replace("#", "0x")); const GuildMembers = guildCheck.data.guild.members;
const GuildMembers = guildCheck.data.members;
const guildRank = GuildMembers.find(member => member.uuid === verifyData.uuid).rank; const guildRank = GuildMembers.find(member => member.uuid === verifyData.uuid).rank;
if (guildRank === 'Guild Master' && responseGuildID === hypixelGuildID) { if (guildRank === 'Guild Master' && guildID === hypixelGuildID) {
for (let i = 0; i < removeThese.length; i++) { for (let i = 0; i < removeThese.length; i++) {
await roleManage.remove(removeThese[i], "Auto role removal. (Update)") await roleManage.remove(removeThese[i], "Auto role removal. (Update)")
} }
await roleManage.add(guildRole, "User used the update command") await roleManage.add(guildRole, "User used the update command")
await roleManage.add(guildStaff, "User used the update command") await roleManage.add(guildStaff, "User used the update command")
await roleManage.add(gm, "User used the update command") await roleManage.add(gm, "User used the update command")
await roleManage.add(defaultMember, "User used the update command") await roleManage.add(defaultMember, "User used the update command")
await interaction.editReply({ await interaction.editReply({
embeds: [{ embeds: [{
description: "Your rank has been updated to `Guild Master`", description: "Your rank has been updated to `Guild Master`",
@@ -122,18 +116,18 @@ module.exports = {
}) })
} }
if (guildRank === 'Manager' && responseGuildID === hypixelGuildID) { if (guildRank === 'Manager' && guildID === hypixelGuildID) {
for (let i = 0; i < removeThese.length; i++) { for (let i = 0; i < removeThese.length; i++) {
await roleManage.remove(removeThese[i], "Auto role removal. (Update)") await roleManage.remove(removeThese[i], "Auto role removal. (Update)")
} }
await roleManage.add(guildRole, "User used the update command") await roleManage.add(guildRole, "User used the update command")
await roleManage.add(guildStaff, "User used the update command") await roleManage.add(guildStaff, "User used the update command")
await roleManage.add(manager, "User used the update command") await roleManage.add(manager, "User used the update command")
await roleManage.add(defaultMember, "User used the update command") await roleManage.add(defaultMember, "User used the update command")
await interaction.editReply({ await interaction.editReply({
embeds: [{ embeds: [{
description: "Your rank has been updated to `Manager`", description: "Your rank has been updated to `Manager`",
@@ -149,18 +143,18 @@ module.exports = {
}) })
} }
if (guildRank === 'Moderator' && responseGuildID === hypixelGuildID) { if (guildRank === 'Moderator' && guildID === hypixelGuildID) {
for (let i = 0; i < removeThese.length; i++) { for (let i = 0; i < removeThese.length; i++) {
await roleManage.remove(removeThese[i], "Auto role removal. (Update)") await roleManage.remove(removeThese[i], "Auto role removal. (Update)")
} }
await roleManage.add(guildRole, "User used the update command") await roleManage.add(guildRole, "User used the update command")
await roleManage.add(guildStaff, "User used the update command") await roleManage.add(guildStaff, "User used the update command")
await roleManage.add(moderator, "User used the update command") await roleManage.add(moderator, "User used the update command")
await roleManage.add(defaultMember, "User used the update command") await roleManage.add(defaultMember, "User used the update command")
await interaction.editReply({ await interaction.editReply({
embeds: [{ embeds: [{
description: "Your rank has been updated to `Moderator`", description: "Your rank has been updated to `Moderator`",
@@ -177,17 +171,17 @@ module.exports = {
} }
if (guildRank === 'Beast' && responseGuildID === hypixelGuildID) { if (guildRank === 'Beast' && guildID === hypixelGuildID) {
for (let i = 0; i < removeThese.length; i++) { for (let i = 0; i < removeThese.length; i++) {
await roleManage.remove(removeThese[i], "Auto role removal. (Update)") await roleManage.remove(removeThese[i], "Auto role removal. (Update)")
} }
await roleManage.add(guildRole, "User used the update command") await roleManage.add(guildRole, "User used the update command")
await roleManage.add(beast, "User used the update command") await roleManage.add(beast, "User used the update command")
await roleManage.add(defaultMember, "User used the update command") await roleManage.add(defaultMember, "User used the update command")
await interaction.editReply({ await interaction.editReply({
embeds: [{ embeds: [{
description: "Your rank has been updated to `Beast`.", description: "Your rank has been updated to `Beast`.",
@@ -204,7 +198,7 @@ module.exports = {
return return
} }
if (guildRank === 'Member' && responseGuildID === hypixelGuildID) { if (guildRank === 'Member' && guildID === hypixelGuildID) {
for (let i = 0; i < removeThese.length; i++) { for (let i = 0; i < removeThese.length; i++) {
await roleManage.remove(removeThese[i], "Auto role removal. (Update)") await roleManage.remove(removeThese[i], "Auto role removal. (Update)")
@@ -214,7 +208,7 @@ module.exports = {
await roleManage.add(member, "User used the update command") await roleManage.add(member, "User used the update command")
await roleManage.add(defaultMember, "User used the update command") await roleManage.add(defaultMember, "User used the update command")
await interaction.editReply({ await interaction.editReply({
embeds: [{ embeds: [{
description: "Your rank has been updated to `Member`.", description: "Your rank has been updated to `Member`.",
@@ -231,17 +225,17 @@ module.exports = {
return return
} }
if (guildRank === 'Trial Member' && responseGuildID === hypixelGuildID) { if (guildRank === 'Trial Member' && guildID === hypixelGuildID) {
for (let i = 0; i < removeThese.length; i++) { for (let i = 0; i < removeThese.length; i++) {
await roleManage.remove(removeThese[i], "Auto role removal. (Update)") await roleManage.remove(removeThese[i], "Auto role removal. (Update)")
} }
await roleManage.add(guildRole, "User used the update command") await roleManage.add(guildRole, "User used the update command")
await roleManage.add(trialmember, "User used the update command") await roleManage.add(trialmember, "User used the update command")
await roleManage.add(defaultMember, "User used the update command") await roleManage.add(defaultMember, "User used the update command")
await interaction.editReply({ await interaction.editReply({
embeds: [{ embeds: [{
description: "Your rank has been updated to `Trial Member`.", description: "Your rank has been updated to `Trial Member`.",
@@ -259,4 +253,4 @@ module.exports = {
} }
} }
}; };