Updated and beautied check command

This commit is contained in:
2023-04-25 17:30:22 +02:00
parent 32f5c385d4
commit e612106caa

View File

@@ -1,147 +1,139 @@
const { SlashCommandBuilder, EmbedBuilder, PermissionFlagsBits } = require('discord.js'); const { SlashCommandBuilder, EmbedBuilder, PermissionFlagsBits } = require("discord.js");
const { bwfdkr, bwstars, bwwins, duelswins, swstars } = require('../config/reqs.json') const { bwfdkr, bwstars, bwwins, duelswins, swstars } = require("../config/reqs.json");
const getuuid = require('../utils/functions'); const getuuid = require("../utils/functions.js");
const env = require('dotenv').config(); const env = require("dotenv").config();
const hypixelApiKey = process.env.HYPIXELAPI; const hypixelApiKey = process.env.HYPIXELAPI;
const { color } = require('../config/options.json'); const { color } = require("../config/options.json");
const fetch = require('axios'); const fetch = require("axios");
module.exports = { module.exports = {
name: 'check', name: "check",
description: 'Check a player\'s stats.', description: "Check a player's stats.",
type: 'slash', type: "slash",
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('check') .setName("check")
.setDescription('Check a player\'s stats.') .setDescription("Check a player's stats.")
.addStringOption(option => .addStringOption((option) => option.setName("ign").setDescription("The player's IGN.").setRequired(true))
option .setDMPermission(false),
.setName('ign')
.setDescription('The player\'s IGN.')
.setRequired(true))
.setDMPermission(false),
async execute(interaction) { async execute(interaction) {
await interaction.deferReply({});
await interaction.deferReply({}) 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 ign = interaction.options.getString('ign'); if (!ign) {
const mojang = "https://api.mojang.com/users/profiles/minecraft/" await interaction.editReply("Please provide a player's IGN.");
const slothPixel = "https://api.slothpixel.me/api/players/"; return;
const guildAPI = "https://api.slothpixel.me/api/guilds/" }
const minotar = "https://minotar.net/helm/";
const embedColor = Number(color.replace("#", "0x"));
if (!ign) { try {
await interaction.editReply('Please provide a player\'s IGN.') await fetch(mojang + ign);
return } catch (error) {
} interaction.editReply("That player doesn't exist. [Mojang]");
return;
}
if (await getuuid(ign) === null) { const uuid = await fetch(mojang + ign);
await interaction.editReply('That player doesn\'t exist. [Mojang]')
return
}
const userUUID = await getuuid(ign); try {
await fetch(slothPixel + uuid.data.id);
} catch (error) {
interaction.editReply("That player doesn't exist. [Hypixel]");
return;
}
try { const stats = await fetch(slothPixel + uuid.data.id);
await fetch(slothPixel + userUUID); const head = minotar + ign;
} catch (error) {
interaction.editReply('That player doesn\'t exist. [Hypixel]')
return
}
const stats = await fetch(slothPixel + userUUID); if (!stats.data.uuid) {
const head = minotar + ign; interaction.editReply("That player doesn't exist. [Hypixel]");
return;
}
if (!stats.data.uuid) { const rank_formatted = stats.data.rank_formatted;
interaction.editReply('That player doesn\'t exist. [Hypixel]') const rank2 = rank_formatted.replace(/&[0-9a-fk-or]/g, "");
return
}
const rank_formatted = stats.data.rank_formatted if (rank2 === "") {
const rank2 = rank_formatted.replace(/&[0-9a-fk-or]/g, "") var rank = "";
} else {
var rank = rank2 + " ";
}
if (rank2 === "") { try {
var rank = "" const guildCheck = await fetch(guildAPI + userUUID);
} else { var guildName = guildCheck.data.name;
var rank = rank2 + " " } catch (error) {
} var guildName = "None";
}
try { const hsbwstars = stats.data.stats.BedWars.level;
const guildCheck = await fetch(guildAPI + userUUID); const hsbwfkdr = stats.data.stats.BedWars.final_k_d;
var guildName = guildCheck.data.name const hsbwwins = stats.data.stats.BedWars.wins;
} catch (error) { const hsswstars = stats.data.stats.SkyWars.level;
var guildName = "None" const hsduelswins = stats.data.stats.Duels.general.wins;
}
const hsbwstars = stats.data.stats.BedWars.level if (hsbwstars < bwstars || hsbwfkdr < bwfdkr || hsbwwins < bwwins) {
const hsbwfkdr = stats.data.stats.BedWars.final_k_d var bwtitle = "<a:cross_a:1087808606897983539> This player does not meet the BedWars requirements.";
const hsbwwins = stats.data.stats.BedWars.wins } else {
const hsswstars = stats.data.stats.SkyWars.level var bwtitle = "<a:check_a:1087808632172847134> This player meets the BedWars requirements.";
const hsduelswins = stats.data.stats.Duels.general.wins }
if (hsbwstars < bwstars || hsbwfkdr < bwfdkr || hsbwwins < bwwins) { if (hsswstars < swstars) {
var bwtitle = "<a:cross_a:1087808606897983539> This player does not meet the BedWars requirements." var swtitle = "<a:cross_a:1087808606897983539> This player does not meet the SkyWars requirements.";
} else { } else {
var bwtitle = "<a:check_a:1087808632172847134> This player meets the BedWars requirements." var swtitle = "<a:check_a:1087808632172847134> This player meets the SkyWars requirements.";
} }
if (hsswstars < swstars) { if (hsduelswins < duelswins) {
var swtitle = "<a:cross_a:1087808606897983539> This player does not meet the SkyWars requirements." var duelstitle = "<a:cross_a:1087808606897983539> This player does not meet the Duels requirements.";
} else { } else {
var swtitle = "<a:check_a:1087808632172847134> This player meets the SkyWars requirements." var duelstitle = "<a:check_a:1087808632172847134> This player meets the Duels requirements.";
} }
if (hsduelswins < duelswins) { try {
var duelstitle = "<a:cross_a:1087808606897983539> This player does not meet the Duels requirements." const guildCheck = await fetch(guildAPI + userUUID);
} else { const tag_formatted = guildCheck.data.tag_formatted;
var duelstitle = "<a:check_a:1087808632172847134> This player meets the Duels requirements." const guildTag2 = tag_formatted.replace(/&[0-9a-fk-or]/g, "");
} var guildTag = " " + guildTag2;
} catch (error) {
var guildTag = "";
}
try { await interaction.editReply({
const guildCheck = await fetch(guildAPI + userUUID); embeds: [
const tag_formatted = guildCheck.data.tag_formatted {
const guildTag2 = tag_formatted.replace(/&[0-9a-fk-or]/g, "") title: rank + stats.data.username + guildTag,
var guildTag = " " + guildTag2 description: "**Network Level:** `" + stats.data.level.toString() + "`\n" + "**Current Guild:** `" + guildName + "`",
} catch (error) { color: embedColor,
var guildTag = "" thumbnail: {
} url: head
},
await interaction.editReply({ footer: {
embeds: [{ text: interaction.guild.name + " | Developed by @Taken#0002",
title: rank + stats.data.username + guildTag, icon_url: interaction.guild.iconURL()
description: "**Network Level:** `" + stats.data.level.toString() + "`\n" + },
"**Current Guild:** `" + guildName + "`", fields: [
color: embedColor, {
thumbnail: { name: bwtitle,
url: head value: "**➺ Stars:** `" + stats.data.stats.BedWars.level.toString() + " / " + bwstars.toString() + "`\n" + "**➺ FKDR:** `" + stats.data.stats.BedWars.final_k_d.toString() + " / " + bwfdkr.toString() + "`\n" + "**➺ Wins:** `" + stats.data.stats.BedWars.wins.toString() + " / " + bwwins.toString() + "`"
}, },
footer: { {
text: interaction.guild.name + " | Developed by @Taken#0002", name: swtitle,
icon_url: interaction.guild.iconURL() value: "**➺ Stars:** `" + stats.data.stats.SkyWars.level.toFixed(2).toString() + " / " + swstars.toString() + "`\n" + "**➺ KDR:** `" + stats.data.stats.SkyWars.kill_death_ratio.toString() + "`\n" + "**➺ Wins:** `" + stats.data.stats.SkyWars.wins.toString() + "`"
}, },
fields: [ {
{ name: duelstitle,
name: bwtitle, value: "**➺ Wins:** `" + stats.data.stats.Duels.general.wins.toString() + " / " + duelswins.toString() + "`\n" + "**➺ KDR:** `" + stats.data.stats.Duels.general.kd_ratio.toFixed(2).toString() + "`\n" + "**➺ WLR:** `" + stats.data.stats.Duels.general.win_loss_ratio.toFixed(2).toString() + "`"
value: "**➺ Stars:** `" + stats.data.stats.BedWars.level.toString() + " / " + bwstars.toString() + "`\n" + }
"**➺ FKDR:** `" + stats.data.stats.BedWars.final_k_d.toString() + " / " + bwfdkr.toString() + "`\n" + ]
"**➺ Wins:** `" + stats.data.stats.BedWars.wins.toString() + " / " + bwwins.toString() + "`" }
}, ]
{ });
name: swtitle, }
value: "**➺ Stars:** `" + stats.data.stats.SkyWars.level.toFixed(2).toString() + " / " + swstars.toString() + "`\n" +
"**➺ KDR:** `" + stats.data.stats.SkyWars.kill_death_ratio.toString() + "`\n" +
"**➺ Wins:** `" + stats.data.stats.SkyWars.wins.toString() + "`"
},
{
name: duelstitle,
value: "**➺ Wins:** `" + stats.data.stats.Duels.general.wins.toString() + " / " + duelswins.toString() + "`\n" +
"**➺ KDR:** `" + stats.data.stats.Duels.general.kd_ratio.toFixed(2).toString() + "`\n" +
"**➺ WLR:** `" + stats.data.stats.Duels.general.win_loss_ratio.toFixed(2).toString() + "`"
}
]
}]
})
}
}; };