From e52e2dcb617c974f5d83e30c326aaf91cc566586 Mon Sep 17 00:00:00 2001 From: Taken Date: Wed, 16 Oct 2024 10:58:13 +0200 Subject: [PATCH 1/4] Updated hypixel api wrapper --- src/interfaces/IGuild.ts | 6 +-- src/interfaces/IPlayer.ts | 6 +-- src/utils/HypixelFunctions/account.ts | 77 ++++++++++++++------------- 3 files changed, 45 insertions(+), 44 deletions(-) diff --git a/src/interfaces/IGuild.ts b/src/interfaces/IGuild.ts index fc6445b..8451fbe 100644 --- a/src/interfaces/IGuild.ts +++ b/src/interfaces/IGuild.ts @@ -1,9 +1,7 @@ // dprint-ignore-file export interface IGuild { - data: { - success: boolean - guild: IGuildData - } + success: boolean + guild: IGuildData } export interface IGuildData { diff --git a/src/interfaces/IPlayer.ts b/src/interfaces/IPlayer.ts index 1ec6f6e..0c18238 100644 --- a/src/interfaces/IPlayer.ts +++ b/src/interfaces/IPlayer.ts @@ -1,9 +1,7 @@ // dprint-ignore-file export interface IPlayer { - data: { - success: boolean - player: IPlayerData - } + success: boolean + player: IPlayerData } export interface IPlayerData { diff --git a/src/utils/HypixelFunctions/account.ts b/src/utils/HypixelFunctions/account.ts index 2c9f46b..b9dee97 100644 --- a/src/utils/HypixelFunctions/account.ts +++ b/src/utils/HypixelFunctions/account.ts @@ -1,4 +1,4 @@ -import fetch from "axios" +import axios from "axios" import { IPlayer, IPlayerData } from "~/interfaces" import { IGuild, IGuildData } from "~/interfaces" import env from "~/utils/Env.js" @@ -10,25 +10,21 @@ const guild = "https://api.hypixel.net/guild" const minotar = "https://minotar.net/helm/" type GuildQueryType = "player" | "name" | "id" -type Profile = { - data: { - id: string - name: string - } +type UUIDData = { + id: string + name: string } -type Profile2 = { - data: { - id: string - name: string - properties: { name: string, value: string }[] - profileActions: [] - } +type IGNData = { + id: string + name: string + properties: { name: string, value: string }[] + profileActions: [] } async function getUUID(ign: string): Promise { try { - const req: Profile = await fetch(mojang + ign) + const req = await axios.get(mojang + ign) return req.data.id // eslint-disable-next-line @typescript-eslint/no-unused-vars } catch (err) { @@ -38,7 +34,7 @@ async function getUUID(ign: string): Promise { async function getIGN(uuid: string): Promise { try { - const req: Profile2 = await fetch(mojanguuid + uuid) + const req = await axios.get(mojanguuid + uuid) return req.data.name // eslint-disable-next-line @typescript-eslint/no-unused-vars } catch (err) { @@ -47,39 +43,48 @@ async function getIGN(uuid: string): Promise { } async function getPlayer(uuid: string): Promise { - const playerReq: IPlayer = await fetch(hypixel, { - params: { - uuid: uuid - }, - headers: { - "API-Key": apikey + try { + const req = await axios.get(hypixel, { + params: { + uuid: uuid + }, + headers: { + "API-Key": apikey + } + }) + if (!req.data.player) { + return null } - }) - if (!playerReq.data.player) { + return req.data.player + // eslint-disable-next-line @typescript-eslint/no-unused-vars + } catch (err) { return null } - - return playerReq.data.player } async function getGuild(query: string, type?: GuildQueryType): Promise { const reqType = type ? type : "player" - const guildReq: IGuild = await fetch(guild, { - params: { - [reqType]: query - }, - headers: { - "API-Key": apikey - } - }) + try { + const req = await axios.get(guild, { + params: { + [reqType]: query + }, + headers: { + "API-Key": apikey + } + }) - if (!guildReq.data.guild) { + if (!req.data.guild) { + return null + } + + return req.data.guild + // eslint-disable-next-line @typescript-eslint/no-unused-vars + } catch (err) { return null } - - return guildReq.data.guild } async function getHeadURL(ign: string): Promise { From 523f8115e7e9775247b31ff77086c0cdcca982f7 Mon Sep 17 00:00:00 2001 From: Taken Date: Wed, 16 Oct 2024 11:02:59 +0200 Subject: [PATCH 2/4] Updated guild function --- src/utils/HypixelFunctions/account.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/utils/HypixelFunctions/account.ts b/src/utils/HypixelFunctions/account.ts index b9dee97..f6c1457 100644 --- a/src/utils/HypixelFunctions/account.ts +++ b/src/utils/HypixelFunctions/account.ts @@ -63,9 +63,7 @@ async function getPlayer(uuid: string): Promise { } } -async function getGuild(query: string, type?: GuildQueryType): Promise { - const reqType = type ? type : "player" - +async function getGuild(query: string, reqType: GuildQueryType = "player"): Promise { try { const req = await axios.get(guild, { params: { From 8eac52d5920f06bf8453caaf7b0d8fe72d584705 Mon Sep 17 00:00:00 2001 From: Taken Date: Wed, 16 Oct 2024 11:08:09 +0200 Subject: [PATCH 3/4] Idk why this was an async function --- src/commands-contextmenu/updateuser.ts | 2 +- src/commands/check.ts | 2 +- src/commands/find.ts | 2 +- src/commands/forceupdate.ts | 2 +- src/commands/forceverify.ts | 2 +- src/commands/guild/member.ts | 2 +- src/commands/staff/beast.ts | 2 +- src/commands/update.ts | 2 +- src/commands/uuid.ts | 2 +- src/commands/verify.ts | 2 +- src/commands/whoami.ts | 2 +- src/commands/whois.ts | 2 +- src/components/buttons/checkstats.ts | 2 +- src/components/modals/verifyModal.ts | 2 +- src/utils/HypixelFunctions/account.ts | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/commands-contextmenu/updateuser.ts b/src/commands-contextmenu/updateuser.ts index 7f25989..5d095e4 100644 --- a/src/commands-contextmenu/updateuser.ts +++ b/src/commands-contextmenu/updateuser.ts @@ -51,7 +51,7 @@ export default { }) const ign = (await getIGN(verifyData.uuid)) as string - const head = await getHeadURL(ign) + const head = getHeadURL(ign) await interaction.editReply({ embeds: [{ diff --git a/src/commands/check.ts b/src/commands/check.ts index 4c6e16b..20bd04b 100644 --- a/src/commands/check.ts +++ b/src/commands/check.ts @@ -53,7 +53,7 @@ export default { }] }) - const head = await getHeadURL(ign) + const head = getHeadURL(ign) const player = await getPlayer(uuid) if (!player) { interaction.editReply({ diff --git a/src/commands/find.ts b/src/commands/find.ts index 9589194..7749530 100644 --- a/src/commands/find.ts +++ b/src/commands/find.ts @@ -61,7 +61,7 @@ export default { return } - const head = await getHeadURL(ign) + const head = getHeadURL(ign) const formattedIgn = await getIGN(uuid) await interaction.editReply({ embeds: [{ diff --git a/src/commands/forceupdate.ts b/src/commands/forceupdate.ts index f370121..21a6ede 100644 --- a/src/commands/forceupdate.ts +++ b/src/commands/forceupdate.ts @@ -58,7 +58,7 @@ export default { }) const ign = (await getIGN(verifyData.uuid)) as string - const head = await getHeadURL(ign) + const head = getHeadURL(ign) await interaction.editReply({ embeds: [{ diff --git a/src/commands/forceverify.ts b/src/commands/forceverify.ts index 74acf14..d58a245 100644 --- a/src/commands/forceverify.ts +++ b/src/commands/forceverify.ts @@ -111,7 +111,7 @@ export default { responseGuildID = guild._id } - const head = await getHeadURL(ign) + const head = getHeadURL(ign) if (responseGuildID === hypixelGuildID) { const GuildMembers = guild!.members const guildRank = GuildMembers.find(member => member.uuid === player.uuid)!.rank diff --git a/src/commands/guild/member.ts b/src/commands/guild/member.ts index f2b4ae3..3a9fff3 100644 --- a/src/commands/guild/member.ts +++ b/src/commands/guild/member.ts @@ -32,7 +32,7 @@ export default async function guildMember(interaction: ChatInputCommandInteracti }] }) - const head = await getHeadURL(ign) + const head = getHeadURL(ign) const player = await getPlayer(uuid) if (!player) { await interaction.editReply({ diff --git a/src/commands/staff/beast.ts b/src/commands/staff/beast.ts index 2cdedb2..e68bfdf 100644 --- a/src/commands/staff/beast.ts +++ b/src/commands/staff/beast.ts @@ -38,7 +38,7 @@ export default async function beast(interaction: ChatInputCommandInteraction): P }] }) - const head = await getHeadURL(ign) + const head = getHeadURL(ign) const player = await getPlayer(uuid) if (!player) { interaction.editReply({ diff --git a/src/commands/update.ts b/src/commands/update.ts index 3f41122..355aa35 100644 --- a/src/commands/update.ts +++ b/src/commands/update.ts @@ -58,7 +58,7 @@ export default { } const ign = (await getIGN(verifyData.uuid)) as string - const head = await getHeadURL(ign) + const head = getHeadURL(ign) if (guildID !== hypixelGuildID) { const roles = roleManage("default") await user.roles.remove(roles.rolesToRemove, "User used the update command") diff --git a/src/commands/uuid.ts b/src/commands/uuid.ts index 85eb6ab..2708f8f 100644 --- a/src/commands/uuid.ts +++ b/src/commands/uuid.ts @@ -40,7 +40,7 @@ export default { const formattedUuid = formatUuid(uuid) const newIgn = await getIGN(uuid) as string - const head = await getHeadURL(ign) + const head = getHeadURL(ign) await interaction.editReply({ embeds: [{ diff --git a/src/commands/verify.ts b/src/commands/verify.ts index 5a24352..e514d3f 100644 --- a/src/commands/verify.ts +++ b/src/commands/verify.ts @@ -76,7 +76,7 @@ export default { }] }) - const head = await getHeadURL(ign) + const head = getHeadURL(ign) const player = (await getPlayer(uuid)) as IPlayerData if (!player) { interaction.editReply({ diff --git a/src/commands/whoami.ts b/src/commands/whoami.ts index 17065bd..8c32452 100644 --- a/src/commands/whoami.ts +++ b/src/commands/whoami.ts @@ -34,7 +34,7 @@ export default { } const ign = await getIGN(verifyData.uuid) - const head = await getHeadURL(ign!) + const head = getHeadURL(ign!) await interaction.editReply({ embeds: [{ diff --git a/src/commands/whois.ts b/src/commands/whois.ts index 2d6a25a..c81cbb4 100644 --- a/src/commands/whois.ts +++ b/src/commands/whois.ts @@ -40,7 +40,7 @@ export default { } const ign = (await getIGN(verifiedUser.uuid)) as string - const head = await getHeadURL(ign) + const head = getHeadURL(ign) await interaction.editReply({ embeds: [{ diff --git a/src/components/buttons/checkstats.ts b/src/components/buttons/checkstats.ts index 41e51f1..bfa8d07 100644 --- a/src/components/buttons/checkstats.ts +++ b/src/components/buttons/checkstats.ts @@ -31,7 +31,7 @@ export default { } const ign = player?.playername || "" - const head = await getHeadURL(ign) + const head = getHeadURL(ign) const rank2 = player.newPackageRank const monthlyRank = player.monthlyPackageRank diff --git a/src/components/modals/verifyModal.ts b/src/components/modals/verifyModal.ts index 7b45b0f..622095e 100644 --- a/src/components/modals/verifyModal.ts +++ b/src/components/modals/verifyModal.ts @@ -48,7 +48,7 @@ export default { }] }) - const head = await getHeadURL(ign) + const head = getHeadURL(ign) const player = await getPlayer(uuid) if (!player) { interaction.editReply({ diff --git a/src/utils/HypixelFunctions/account.ts b/src/utils/HypixelFunctions/account.ts index f6c1457..cf475ec 100644 --- a/src/utils/HypixelFunctions/account.ts +++ b/src/utils/HypixelFunctions/account.ts @@ -85,7 +85,7 @@ async function getGuild(query: string, reqType: GuildQueryType = "player"): Prom } } -async function getHeadURL(ign: string): Promise { +function getHeadURL(ign: string): string { return minotar + ign } From 619225b66e146fd85361f587d3ca61713c9ed7ac Mon Sep 17 00:00:00 2001 From: Taken Date: Wed, 16 Oct 2024 11:14:22 +0200 Subject: [PATCH 4/4] Added context to contextmenu commands --- src/commands-contextmenu/congratsmessage.ts | 3 ++- src/commands-contextmenu/resetnick.ts | 3 ++- src/commands-contextmenu/updateuser.ts | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/commands-contextmenu/congratsmessage.ts b/src/commands-contextmenu/congratsmessage.ts index b72133e..1f6eb9b 100644 --- a/src/commands-contextmenu/congratsmessage.ts +++ b/src/commands-contextmenu/congratsmessage.ts @@ -1,4 +1,4 @@ -import { ApplicationCommandType, ContextMenuCommandBuilder, PermissionFlagsBits, userMention } from "discord.js" +import { ApplicationCommandType, ContextMenuCommandBuilder, InteractionContextType, PermissionFlagsBits, userMention } from "discord.js" import { IContextMenu } from "~/interfaces" export default { @@ -9,6 +9,7 @@ export default { data: new ContextMenuCommandBuilder() .setName("Congratulate") .setType(ApplicationCommandType.Message) + .setContexts(InteractionContextType.Guild) .setDefaultMemberPermissions(PermissionFlagsBits.ManageMessages), async execute({ interaction }) { diff --git a/src/commands-contextmenu/resetnick.ts b/src/commands-contextmenu/resetnick.ts index b98331c..e6292dc 100644 --- a/src/commands-contextmenu/resetnick.ts +++ b/src/commands-contextmenu/resetnick.ts @@ -1,4 +1,4 @@ -import { ApplicationCommandType, ContextMenuCommandBuilder, PermissionFlagsBits } from "discord.js" +import { ApplicationCommandType, ContextMenuCommandBuilder, InteractionContextType, PermissionFlagsBits } from "discord.js" import { IContextMenu } from "~/interfaces" export default { @@ -9,6 +9,7 @@ export default { data: new ContextMenuCommandBuilder() .setName("Reset Nickname") .setType(ApplicationCommandType.User) + .setContexts(InteractionContextType.Guild) .setDefaultMemberPermissions(PermissionFlagsBits.ManageNicknames), async execute({ interaction }) { diff --git a/src/commands-contextmenu/updateuser.ts b/src/commands-contextmenu/updateuser.ts index 5d095e4..3049832 100644 --- a/src/commands-contextmenu/updateuser.ts +++ b/src/commands-contextmenu/updateuser.ts @@ -1,4 +1,4 @@ -import { ApplicationCommandType, ContextMenuCommandBuilder, PermissionFlagsBits, userMention } from "discord.js" +import { ApplicationCommandType, ContextMenuCommandBuilder, InteractionContextType, PermissionFlagsBits, userMention } from "discord.js" import db from "src/drizzle/db.js" import { devMessage, embedColor, hypixelGuildID } from "~/config/options.js" import { waitingListRole } from "~/config/roles.js" @@ -14,6 +14,7 @@ export default { data: new ContextMenuCommandBuilder() .setName("Update User") .setType(ApplicationCommandType.User) + .setContexts(InteractionContextType.Guild) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator), async execute({ interaction }) {