189 lines
6.9 KiB
JavaScript
189 lines
6.9 KiB
JavaScript
const {SlashCommandBuilder, EmbedBuilder, PermissionFlagsBits} =
|
|
require("discord.js");
|
|
const {bwfdkr, bwstars, bwwins, duelswins, swstars} =
|
|
require("../config/reqs.json");
|
|
const env = require("dotenv").config();
|
|
const hypixelApiKey = process.env.HYPIXELAPI;
|
|
const {color} = require("../config/options.json");
|
|
const fetch = require("axios");
|
|
|
|
module.exports = {
|
|
name : "check",
|
|
description : "Check a player's stats.",
|
|
type : "slash",
|
|
|
|
data : new SlashCommandBuilder()
|
|
.setName("check")
|
|
.setDescription("Check a player's stats.")
|
|
.addStringOption((option) => option.setName("ign")
|
|
.setDescription("The player's IGN.")
|
|
.setRequired(true))
|
|
.setDMPermission(false),
|
|
|
|
async execute(interaction) {
|
|
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"));
|
|
|
|
if (!ign) {
|
|
await interaction.editReply("Please provide a player's IGN.");
|
|
return;
|
|
}
|
|
|
|
try {
|
|
await fetch(mojang + ign);
|
|
} catch (error) {
|
|
interaction.editReply({
|
|
embeds : [
|
|
{description : "That player doesn't exist.", color : embedColor}
|
|
]
|
|
});
|
|
return;
|
|
}
|
|
|
|
const userCheck = await fetch(mojang + ign);
|
|
const uuid = userCheck.data.id;
|
|
|
|
try {
|
|
await fetch(slothPixel + uuid);
|
|
} catch (error) {
|
|
interaction.editReply({
|
|
embeds : [ {
|
|
description : "That player hasn't played Hypixel before.",
|
|
color : embedColor
|
|
} ]
|
|
});
|
|
return;
|
|
}
|
|
|
|
const stats = await fetch(slothPixel + uuid);
|
|
const head = minotar + ign;
|
|
|
|
if (!stats.data.uuid) {
|
|
interaction.editReply({
|
|
embeds : [ {
|
|
description : "That player hasn't played Hypixel before.",
|
|
color : embedColor
|
|
} ]
|
|
});
|
|
return;
|
|
}
|
|
|
|
const rank_formatted = stats.data.rank_formatted;
|
|
const rank2 = rank_formatted.replace(/&[0-9a-fk-or]/g, "");
|
|
|
|
if (rank2 === "") {
|
|
var rank = "";
|
|
} else {
|
|
var rank = rank2 + " ";
|
|
}
|
|
|
|
try {
|
|
const guildCheck = await fetch(guildAPI + uuid);
|
|
var guildName = guildCheck.data.name;
|
|
} catch (error) {
|
|
var guildName = "None";
|
|
}
|
|
|
|
const hsbwstars = stats.data.stats.BedWars.level;
|
|
const hsbwfkdr = stats.data.stats.BedWars.final_k_d;
|
|
const hsbwwins = stats.data.stats.BedWars.wins;
|
|
const hsswstars = stats.data.stats.SkyWars.level;
|
|
const hsduelswins = stats.data.stats.Duels.general.wins;
|
|
|
|
if (hsbwstars < bwstars || hsbwfkdr < bwfdkr || hsbwwins < bwwins) {
|
|
var bwtitle =
|
|
"<a:cross_a:1087808606897983539> This player does not meet the BedWars requirements.";
|
|
} else {
|
|
var bwtitle =
|
|
"<a:check_a:1087808632172847134> This player meets the BedWars requirements.";
|
|
}
|
|
|
|
if (hsswstars < swstars) {
|
|
var swtitle =
|
|
"<a:cross_a:1087808606897983539> This player does not meet the SkyWars requirements.";
|
|
} else {
|
|
var swtitle =
|
|
"<a:check_a:1087808632172847134> This player meets the SkyWars requirements.";
|
|
}
|
|
|
|
if (hsduelswins < duelswins) {
|
|
var duelstitle =
|
|
"<a:cross_a:1087808606897983539> This player does not meet the Duels requirements.";
|
|
} else {
|
|
var duelstitle =
|
|
"<a:check_a:1087808632172847134> This player meets the Duels requirements.";
|
|
}
|
|
|
|
try {
|
|
const guildCheck = await fetch(guildAPI + uuid);
|
|
const tag_formatted = guildCheck.data.tag_formatted;
|
|
const guildTag2 = tag_formatted.replace(/&[0-9a-fk-or]/g, "");
|
|
var guildTag = " " + guildTag2;
|
|
} catch (error) {
|
|
var guildTag = "";
|
|
}
|
|
|
|
await interaction.editReply({
|
|
embeds : [ {
|
|
title : rank + stats.data.username + guildTag,
|
|
description : "**Network Level:** `" +
|
|
stats.data.level.toString() + "`\n" +
|
|
"**Current Guild:** `" + guildName + "`",
|
|
color : embedColor,
|
|
thumbnail : {url : head},
|
|
footer : {
|
|
text : interaction.guild.name + " | Developed by @Taken#0002",
|
|
icon_url : interaction.guild.iconURL()
|
|
},
|
|
fields : [
|
|
{
|
|
name : bwtitle,
|
|
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() +
|
|
"`"
|
|
}
|
|
]
|
|
} ]
|
|
});
|
|
}
|
|
};
|