diff --git a/src/commands/guild.ts b/src/commands/guild.ts index dcb6e78..54b0db8 100644 --- a/src/commands/guild.ts +++ b/src/commands/guild.ts @@ -1,9 +1,9 @@ import { InteractionContextType, SlashCommandBuilder } from "discord.js" import { devMessage, embedColor } from "~/config/options" import { ICommand } from "~/typings" -import guildInfo from "./guild/info" -import guildMember from "./guild/member" -import guildTop from "./guild/top" +import guildInfo, { infoSub } from "./guild/info" +import guildMember, { memberSub } from "./guild/member" +import guildTop, { topSub } from "./guild/top" export default { name: "guild", @@ -15,66 +15,9 @@ export default { data: new SlashCommandBuilder() .setName("guild") .setDescription("Subcommands for guilds") - .addSubcommand(subcommand => - subcommand - .setName("member") - .setDescription("Get info about a guild memeber") - .addStringOption(option => - option - .setName("ign") - .setDescription("The IGN of the player.") - .setMinLength(3) - .setMaxLength(16) - .setRequired(true) - ) - ) - .addSubcommand(subcommand => - subcommand - .setName("info") - .setDescription("Get info about a guild.") - .addStringOption(option => - option - .setName("query") - .setDescription("The query to search for. [Default: player]") - .setRequired(true) - ) - .addStringOption(option => - option - .setName("type") - .setDescription("The type of query.") - .addChoices( - { name: "Guild Member", value: "ign" }, - { name: "Guild Name", value: "name" }, - { name: "Guild Id", value: "id" } - ) - ) - ) - .addSubcommand(subcommand => - subcommand - .setName("top") - .setDescription("Get the top guild members based on gexp") - .addStringOption(option => - option - .setName("query") - .setDescription("The query to search for. [Default: player]") - .setRequired(true) - ) - .addStringOption(option => - option - .setName("type") - .setDescription("The type of query.") - .addChoices( - { name: "Guild Member", value: "ign" }, - { name: "Guild Name", value: "name" }, - { name: "Guild Id", value: "id" } - ) - ) - .addNumberOption(option => - option - .setName("amount") - .setDescription("The amount of guild members to show. [Default: 10]") - ) - ) + .addSubcommand(memberSub) + .addSubcommand(infoSub) + .addSubcommand(topSub) .setContexts(InteractionContextType.Guild), async execute({ interaction }) { diff --git a/src/commands/guild/info.ts b/src/commands/guild/info.ts index 9805771..a891d02 100644 --- a/src/commands/guild/info.ts +++ b/src/commands/guild/info.ts @@ -1,8 +1,29 @@ +import { SlashCommandSubcommandBuilder } from "discord.js" import { devMessage, embedColor } from "~/config/options" import { IGuildData, SubCommand } from "~/typings" import { dateTimeFormatter, numberFormatter } from "~/utils/Functions/intlFormaters" import { getGuild, getIGN, getPlayer, getUUID, guildLevel } from "~/utils/Hypixel" +export const infoSub = new SlashCommandSubcommandBuilder() + .setName("info") + .setDescription("Get info about a guild.") + .addStringOption(option => + option + .setName("query") + .setDescription("The query to search for. [Default: player]") + .setRequired(true) + ) + .addStringOption(option => + option + .setName("type") + .setDescription("The type of query.") + .addChoices( + { name: "Guild Member", value: "ign" }, + { name: "Guild Name", value: "name" }, + { name: "Guild Id", value: "id" } + ) + ) + const cmd: SubCommand = async (interaction) => { await interaction.deferReply() diff --git a/src/commands/guild/member.ts b/src/commands/guild/member.ts index 77d2341..9714c71 100644 --- a/src/commands/guild/member.ts +++ b/src/commands/guild/member.ts @@ -1,8 +1,21 @@ +import { SlashCommandSubcommandBuilder } from "discord.js" import { devMessage, embedColor } from "~/config/options" import { SubCommand } from "~/typings" import { dateTimeFormatter, numberFormatter } from "~/utils/Functions/intlFormaters" import { getGuild, getHeadURL, getPlayer, getUUID } from "~/utils/Hypixel" +export const memberSub = new SlashCommandSubcommandBuilder() + .setName("member") + .setDescription("Get info about a guild memeber") + .addStringOption(option => + option + .setName("ign") + .setDescription("The IGN of the player.") + .setMinLength(3) + .setMaxLength(16) + .setRequired(true) + ) + const cmd: SubCommand = async (interaction) => { await interaction.deferReply() diff --git a/src/commands/guild/top.ts b/src/commands/guild/top.ts index 67ada54..a4b6117 100644 --- a/src/commands/guild/top.ts +++ b/src/commands/guild/top.ts @@ -1,9 +1,35 @@ +import { SlashCommandSubcommandBuilder } from "discord.js" import { devMessage, embedColor } from "~/config/options" import { IGuildData, SubCommand } from "~/typings" import { numberFormatter } from "~/utils/Functions/intlFormaters" import { getGuild, getIGN, getPlayer, getUUID } from "~/utils/Hypixel" import { redis } from "~/utils/Illegitimate" +export const topSub = new SlashCommandSubcommandBuilder() + .setName("top") + .setDescription("Get the top guild members based on gexp") + .addStringOption(option => + option + .setName("query") + .setDescription("The query to search for. [Default: player]") + .setRequired(true) + ) + .addStringOption(option => + option + .setName("type") + .setDescription("The type of query.") + .addChoices( + { name: "Guild Member", value: "ign" }, + { name: "Guild Name", value: "name" }, + { name: "Guild Id", value: "id" } + ) + ) + .addNumberOption(option => + option + .setName("amount") + .setDescription("The amount of guild members to show. [Default: 10]") + ) + const cmd: SubCommand = async (interaction) => { await interaction.deferReply() diff --git a/src/commands/staff.ts b/src/commands/staff.ts index 175b140..40fb2ee 100644 --- a/src/commands/staff.ts +++ b/src/commands/staff.ts @@ -1,11 +1,11 @@ -import { InteractionContextType, PermissionFlagsBits, SlashCommandBuilder } from "discord.js" +import { InteractionContextType, PermissionFlagsBits, SlashCommandBuilder, SlashCommandSubcommandBuilder } from "discord.js" import { devMessage, embedColor } from "~/config/options" import { ICommand } from "~/typings" -import beast from "./staff/beast" -import help from "./staff/help" -import prune from "./staff/prune" -import removeGuildRoles from "./staff/removeguildroles" -import updateAll from "./staff/updateall" +import beast, { beastSub } from "./staff/beast" +import help, { helpSub } from "./staff/help" +import prune, { pruneSub } from "./staff/prune" +import removeGuildRoles, { removeGuildRolesSub } from "./staff/removeguildroles" +import updateAll, { updateAllSub } from "./staff/updateall" export default { name: "staff", @@ -17,37 +17,11 @@ export default { data: new SlashCommandBuilder() .setName("staff") .setDescription("Subcommands for staff") - .addSubcommand(subcommand => - subcommand - .setName("help") - .setDescription("Get help with staff commands") - ) - .addSubcommand(subcommand => - subcommand - .setName("beast") - .setDescription("Check a user for beast reqs") - .addStringOption(option => - option - .setName("ign") - .setDescription("The IGN of the player.") - .setRequired(true) - ) - ) - .addSubcommand(subcommand => - subcommand - .setName("prune") - .setDescription("Update the discord roles of all guild members") - ) - .addSubcommand(subcommand => - subcommand - .setName("removeguildroles") - .setDescription("Remove guild roles from non members") - ) - .addSubcommand(subcommand => - subcommand - .setName("updateall") - .setDescription("Update the discord roles of all guild members") - ) + .addSubcommand(helpSub) + .addSubcommand(beastSub) + .addSubcommand(pruneSub) + .addSubcommand(removeGuildRolesSub) + .addSubcommand(updateAllSub) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .setContexts(InteractionContextType.Guild), diff --git a/src/commands/staff/beast.ts b/src/commands/staff/beast.ts index 28582b0..2c08f96 100644 --- a/src/commands/staff/beast.ts +++ b/src/commands/staff/beast.ts @@ -1,8 +1,19 @@ +import { SlashCommandSubcommandBuilder } from "discord.js" import { devMessage, embedColor } from "~/config/options" import { beastbwfkdr, beastbwstars, beastduelswins, beastswkdr, beastswstars, bwwins, duelswlr } from "~/config/reqs" import { SubCommand } from "~/typings" import { bedwarsLevel, getGuild, getHeadURL, getPlayer, getUUID, hypixelLevel, skywarsLevel } from "~/utils/Hypixel" +export const beastSub = new SlashCommandSubcommandBuilder() + .setName("beast") + .setDescription("Check a user for beast reqs") + .addStringOption(option => + option + .setName("ign") + .setDescription("The IGN of the player.") + .setRequired(true) + ) + const cmd: SubCommand = async (interaction) => { await interaction.deferReply() diff --git a/src/commands/staff/help.ts b/src/commands/staff/help.ts index 33d495a..af661d4 100644 --- a/src/commands/staff/help.ts +++ b/src/commands/staff/help.ts @@ -1,7 +1,11 @@ -import { ActionRowBuilder, ButtonBuilder, ButtonStyle, ComponentType, MessageFlags } from "discord.js" +import { ActionRowBuilder, ButtonBuilder, ButtonStyle, ComponentType, MessageFlags, SlashCommandSubcommandBuilder } from "discord.js" import { devMessage, embedColor } from "~/config/options" import { SubCommmndClient } from "~/typings" +export const helpSub = new SlashCommandSubcommandBuilder() + .setName("help") + .setDescription("Get help with staff commands") + const cmd: SubCommmndClient = async (interaction, client) => { await interaction.deferReply() diff --git a/src/commands/staff/prune.ts b/src/commands/staff/prune.ts index 5773092..e740f8d 100644 --- a/src/commands/staff/prune.ts +++ b/src/commands/staff/prune.ts @@ -1,8 +1,12 @@ -import { ActionRowBuilder, ButtonBuilder, ButtonInteraction, ButtonStyle, ComponentType } from "discord.js" +import { ActionRowBuilder, ButtonBuilder, ButtonInteraction, ButtonStyle, ComponentType, SlashCommandSubcommandBuilder } from "discord.js" import { devMessage, embedColor } from "~/config/options" import { SubCommand } from "~/typings" import env from "~/utils/Env" +export const pruneSub = new SlashCommandSubcommandBuilder() + .setName("prune") + .setDescription("Update the discord roles of all guild members") + const cmd: SubCommand = async (interaction) => { await interaction.deferReply() diff --git a/src/commands/staff/removeguildroles.ts b/src/commands/staff/removeguildroles.ts index 9bb1561..424b5cf 100644 --- a/src/commands/staff/removeguildroles.ts +++ b/src/commands/staff/removeguildroles.ts @@ -1,4 +1,4 @@ -import { GuildMember } from "discord.js" +import { GuildMember, SlashCommandSubcommandBuilder } from "discord.js" import { getVerifies } from "src/drizzle/functions" import { embedColor, hypixelGuildID } from "~/config/options" import { IGuildData, SubCommand } from "~/typings" @@ -6,6 +6,10 @@ import env from "~/utils/Env" import roleManage from "~/utils/Functions/rolesmanage" import { getGuild } from "~/utils/Hypixel" +export const removeGuildRolesSub = new SlashCommandSubcommandBuilder() + .setName("removeguildroles") + .setDescription("Remove guild roles from non members") + const cmd: SubCommand = async (interaction) => { await interaction.deferReply() diff --git a/src/commands/staff/updateall.ts b/src/commands/staff/updateall.ts index d6e1b0d..4710ef2 100644 --- a/src/commands/staff/updateall.ts +++ b/src/commands/staff/updateall.ts @@ -1,4 +1,4 @@ -import { ChannelType, GuildMember } from "discord.js" +import { ChannelType, GuildMember, SlashCommandSubcommandBuilder } from "discord.js" import { getVerifies } from "src/drizzle/functions" import { embedColor, hypixelGuildID } from "~/config/options" import { IGuildData, SubCommand } from "~/typings" @@ -8,6 +8,10 @@ import roleManage from "~/utils/Functions/rolesmanage" import { getGuild, getIGN } from "~/utils/Hypixel" import { log } from "~/utils/Logger" +export const updateAllSub = new SlashCommandSubcommandBuilder() + .setName("updateall") + .setDescription("Update the discord roles of all guild members") + const cmd: SubCommand = async (interaction) => { await interaction.deferReply()