From 3d4fc1fccbb76a3be4d3b89fdbe25843ad9de7ab Mon Sep 17 00:00:00 2001 From: Taken Date: Wed, 22 Nov 2023 23:50:21 +0100 Subject: [PATCH] Added eslintrc config and updated all files to it --- .eslintrc.js | 42 ++++++ commands-contextmenu/congratsmessage.js | 26 ++-- commands-contextmenu/resetnick.js | 24 +-- commands-testing/dev-info.js | 44 +++--- commands/ban.js | 36 ++--- commands/check.js | 98 ++++++------- commands/clear.js | 24 +-- commands/config.js | 24 +-- commands/devel.js | 42 +++--- commands/forceunverify.js | 22 +-- commands/forceupdate.js | 58 ++++---- commands/forceverify.js | 84 +++++------ commands/guild.js | 40 ++--- commands/guild/info.js | 18 +-- commands/guild/member.js | 84 +++++------ commands/help.js | 42 +++--- commands/kick.js | 30 ++-- commands/remove.js | 28 ++-- commands/reqs.js | 44 +++--- commands/send.js | 38 ++--- commands/setnick.js | 32 ++-- commands/setup.js | 44 +++--- commands/slowmode.js | 30 ++-- commands/update.js | 58 ++++---- commands/uuid.js | 26 ++-- commands/verify.js | 100 ++++++------- commands/whois.js | 36 ++--- events/buttons/checkstats.js | 84 +++++------ events/buttons/guildapplicationaccept.js | 58 ++++---- events/buttons/guildapplicationdeny.js | 22 +-- events/buttons/guildapply.js | 118 +++++++-------- events/buttons/guildinactivitylog.js | 138 +++++++++--------- events/buttons/inactiveapplicationaccept.js | 2 +- events/buttons/inactiveapplicationdeny.js | 2 +- events/buttons/staffapplicationaccept.js | 34 ++--- events/buttons/staffapplicationdeny.js | 22 +-- events/buttons/staffapply.js | 114 +++++++-------- events/buttons/verify.js | 8 +- events/buttons/waitingListUpdate.js | 26 ++-- events/modals/denyreasonbox.js | 48 +++--- events/modals/staffdenyreasonbox.js | 38 ++--- events/server/guildMemberAdd/logNewJoins.js | 20 +-- events/server/interactions/logBtnsCmds.js | 4 +- events/server/messages/clown.js | 12 +- events/server/ready/consolelog.js | 8 +- events/server/ready/sendOnlineMessage.js | 22 +-- events/server/ready/status.js | 18 +-- events/server/voiceStateUpdate/vcJoinLeave.js | 16 +- index.js | 44 +++--- schemas/guildAppSchema.js | 6 +- schemas/settingsSchema.js | 6 +- schemas/staffAppSchema.js | 6 +- schemas/verifySchema.js | 6 +- schemas/waitinglistSchema.js | 6 +- scripts/deploy-commands.js | 72 ++++----- scripts/dev-deploy.js | 28 ++-- utils/autodeploy.js | 52 +++---- utils/eventHandler.js | 10 +- utils/eventHandlers/button.js | 34 ++--- utils/eventHandlers/command.js | 48 +++--- utils/eventHandlers/contextmenu.js | 34 ++--- utils/eventHandlers/events.js | 10 +- utils/eventHandlers/modal.js | 20 +-- utils/functions/account.js | 10 +- utils/functions/bedwars.js | 52 +++---- utils/functions/guild.js | 24 +-- utils/functions/hypixel.js | 30 ++-- utils/functions/skywars.js | 10 +- utils/functions/uuid.js | 2 +- utils/utils.js | 12 +- 70 files changed, 1276 insertions(+), 1234 deletions(-) create mode 100644 .eslintrc.js diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..24fa9da --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,42 @@ +module.exports = { + "env": { + "browser": true, + "commonjs": true, + "es2021": true + }, + "extends": "eslint:recommended", + "overrides": [ + { + "env": { + "node": true + }, + "files": [ + ".eslintrc.{js,cjs}" + ], + "parserOptions": { + "sourceType": "script" + } + } + ], + "parserOptions": { + "ecmaVersion": "latest" + }, + "rules": { + "indent": [ + "error", + 4 + ], + "linebreak-style": [ + "error", + "windows" + ], + "quotes": [ + "error", + "double" + ], + "semi": [ + "error", + "never" + ] + } +} diff --git a/commands-contextmenu/congratsmessage.js b/commands-contextmenu/congratsmessage.js index 0a806a8..e372b2e 100644 --- a/commands-contextmenu/congratsmessage.js +++ b/commands-contextmenu/congratsmessage.js @@ -1,12 +1,12 @@ -const { ContextMenuCommandBuilder, ApplicationCommandType, PermissionFlagsBits, userMention } = require('discord.js'); +const { ContextMenuCommandBuilder, ApplicationCommandType, PermissionFlagsBits, userMention } = require("discord.js") module.exports = { - name: 'congratsmessage', - description: 'Congratulate a user.', - type: 'contextmenu', + name: "congratsmessage", + description: "Congratulate a user.", + type: "contextmenu", data: new ContextMenuCommandBuilder() - .setName('Congratulate') + .setName("Congratulate") .setType(ApplicationCommandType.Message) .setDefaultMemberPermissions(PermissionFlagsBits.ManageMessages), @@ -15,22 +15,22 @@ module.exports = { async execute(interaction) { const { targetId } = interaction - const message = await interaction.channel.messages.fetch(targetId); + const message = await interaction.channel.messages.fetch(targetId) if (!message) { - return interaction.reply({ content: 'That user does not exist.', ephemeral: true }); + return interaction.reply({ content: "That user does not exist.", ephemeral: true }) } - const target = message.author; + const target = message.author await message.reply({ embeds: [{ - title: 'Congratulations!', + title: "Congratulations!", description: `GG to ${userMention(target.id)}!`, }] - }); - await message.react('🎉'); + }) + await message.react("🎉") - await interaction.reply({ content: `Sent a congrats message`, ephemeral: true }); + await interaction.reply({ content: "Sent a congrats message", ephemeral: true }) } -}; +} diff --git a/commands-contextmenu/resetnick.js b/commands-contextmenu/resetnick.js index 2218aa4..2bf9f45 100644 --- a/commands-contextmenu/resetnick.js +++ b/commands-contextmenu/resetnick.js @@ -1,12 +1,12 @@ -const { ContextMenuCommandBuilder, ApplicationCommandType, PermissionFlagsBits } = require('discord.js'); +const { ContextMenuCommandBuilder, ApplicationCommandType, PermissionFlagsBits } = require("discord.js") module.exports = { - name: 'resetnick', - description: 'Reset your nickname.', - type: 'contextmenu', + name: "resetnick", + description: "Reset your nickname.", + type: "contextmenu", data: new ContextMenuCommandBuilder() - .setName('Reset Nickname') + .setName("Reset Nickname") .setType(ApplicationCommandType.User) .setDefaultMemberPermissions(PermissionFlagsBits.ManageNicknames), @@ -15,22 +15,22 @@ module.exports = { async execute(interaction) { const { targetId } = interaction - const target = await interaction.guild.members.fetch(targetId); + const target = await interaction.guild.members.fetch(targetId) if (!target) { - return interaction.reply({ content: 'That user does not exist.', ephemeral: true }); + return interaction.reply({ content: "That user does not exist.", ephemeral: true }) } if (target.id === interaction.user.id) { - return interaction.reply({ content: 'You can\'t reset your own nickname.', ephemeral: true }); + return interaction.reply({ content: "You can't reset your own nickname.", ephemeral: true }) } if (!target.manageable) { - return interaction.reply({ content: 'I cannot reset that user\'s nickname.', ephemeral: true }); + return interaction.reply({ content: "I cannot reset that user's nickname.", ephemeral: true }) } - await target.setNickname(target.user.username, 'Reset by ' + interaction.user.username + "#" + interaction.user.discriminator); + await target.setNickname(target.user.username, "Reset by " + interaction.user.username + "#" + interaction.user.discriminator) - return interaction.reply({ content: `Reset ${target.user.username}'s nickname.`, ephemeral: true }); + return interaction.reply({ content: `Reset ${target.user.username}'s nickname.`, ephemeral: true }) } -}; +} diff --git a/commands-testing/dev-info.js b/commands-testing/dev-info.js index 7b84abe..91d0dfb 100644 --- a/commands-testing/dev-info.js +++ b/commands-testing/dev-info.js @@ -1,25 +1,25 @@ -const { SlashCommandBuilder, PermissionFlagsBits } = require('discord.js'); +const { SlashCommandBuilder, PermissionFlagsBits } = require("discord.js") module.exports = { - name: 'dev-info', - description: 'Test command for the bot.', - type: 'slash', + name: "dev-info", + description: "Test command for the bot.", + type: "slash", data: new SlashCommandBuilder() - .setName('dev-info') - .setDescription('Test command for the bot.') + .setName("dev-info") + .setDescription("Test command for the bot.") .addStringOption(option => option - .setName('test') - .setDescription('Test option.')) + .setName("test") + .setDescription("Test option.")) .addStringOption(option => option - .setName('test2') - .setDescription('Test option.')) + .setName("test2") + .setDescription("Test option.")) .addStringOption(option => option - .setName('test3') - .setDescription('Test option.')) + .setName("test3") + .setDescription("Test option.")) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .setDMPermission(false), @@ -27,17 +27,17 @@ module.exports = { async execute(interaction) { - const test = interaction.options.getString('test'); - const test2 = interaction.options.getString('test2'); - const test3 = interaction.options.getString('test3'); + const test = interaction.options.getString("test") + const test2 = interaction.options.getString("test2") + const test3 = interaction.options.getString("test3") - const message = await interaction.channel.messages.fetch(test); - const embed = message.embeds[0]; - const fields = embed.fields; - const field1 = fields[0]; + const message = await interaction.channel.messages.fetch(test) + const embed = message.embeds[0] + const fields = embed.fields + const field1 = fields[0] - console.log(field1.value); + console.log(field1.value) - await interaction.reply({ content: 'Test command.', ephemeral: true }); + await interaction.reply({ content: "Test command.", ephemeral: true }) } -}; +} diff --git a/commands/ban.js b/commands/ban.js index e87c3eb..df8632b 100644 --- a/commands/ban.js +++ b/commands/ban.js @@ -1,28 +1,28 @@ -const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require('discord.js') -const { admin, helper } = require('../config/roles.json') -const { color } = require('../config/options.json') +const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require("discord.js") +const { admin, helper } = require("../config/roles.json") +const { color } = require("../config/options.json") module.exports = { - name: 'ban', - description: 'Ban a user', - type: 'slash', + name: "ban", + description: "Ban a user", + type: "slash", data: new SlashCommandBuilder() - .setName('ban') - .setDescription('Ban a user') + .setName("ban") + .setDescription("Ban a user") .addUserOption(option => option - .setName('user') - .setDescription('User to ban') + .setName("user") + .setDescription("User to ban") .setRequired(true)) .addStringOption(option => option - .setName('reason') - .setDescription('Reason for ban')) + .setName("reason") + .setDescription("Reason for ban")) .addNumberOption(option => option - .setName('messagedeletiondays') - .setDescription('Number of days to delete messages') + .setName("messagedeletiondays") + .setDescription("Number of days to delete messages") .addChoices( { name: "1 day", value: 1 }, { name: "2 days", value: 2 }, @@ -42,13 +42,13 @@ module.exports = { await interaction.deferReply() - const member = interaction.options.getMember('user') - const reason = interaction.options.getString('reason') ?? "No reason provided." - const messageDeletionDays = interaction.options.getNumber('messagedeletiondays') ?? 0 + const member = interaction.options.getMember("user") + const reason = interaction.options.getString("reason") ?? "No reason provided." + const messageDeletionDays = interaction.options.getNumber("messagedeletiondays") ?? 0 const mod = await interaction.guild.members.fetch(interaction.user.id) const memberRoles = member.roles.cache.map(role => role.id) const modRoles = mod.roles.cache.map(role => role.id) - const embedColor = Number(color.replace('#', '0x')) + const embedColor = Number(color.replace("#", "0x")) if (!modRoles.includes(admin)) { await interaction.editReply("You do not have permission to use this command.") diff --git a/commands/check.js b/commands/check.js index 8d77241..95b2f7f 100644 --- a/commands/check.js +++ b/commands/check.js @@ -1,7 +1,7 @@ -const { SlashCommandBuilder } = require("discord.js"); -const { bwfkdr, bwstars, bwwins, swstars, duelswins, duelswlr } = require("../config/reqs.json"); -const { color } = require("../config/options.json"); -const { hypixelLevel, bedwarsLevel, skywarsLevel, getUUID, getPlayer, getGuild, getHeadURL } = require("../utils/utils.js"); +const { SlashCommandBuilder } = require("discord.js") +const { bwfkdr, bwstars, bwwins, swstars, duelswins, duelswlr } = require("../config/reqs.json") +const { color } = require("../config/options.json") +const { hypixelLevel, bedwarsLevel, skywarsLevel, getUUID, getPlayer, getGuild, getHeadURL } = require("../utils/utils.js") module.exports = { name: "check", @@ -20,27 +20,27 @@ module.exports = { async execute(interaction) { - await interaction.deferReply({}); + await interaction.deferReply({}) - const ign = interaction.options.getString("ign"); - const embedColor = Number(color.replace("#", "0x")); + const ign = interaction.options.getString("ign") + const embedColor = Number(color.replace("#", "0x")) if (!ign) { - await interaction.editReply("Please provide a player's IGN."); - return; + await interaction.editReply("Please provide a player's IGN.") + return } - const uuid = await getUUID(ign); + const uuid = await getUUID(ign) if (!uuid) { interaction.editReply({ embeds: [ { description: "That player doesn't exist.", color: embedColor } ] - }); - return; + }) + return } - const head = await getHeadURL(ign); + const head = await getHeadURL(ign) const player = await getPlayer(uuid) if (!player) { interaction.editReply({ @@ -48,32 +48,32 @@ module.exports = { description: "That player hasn't played Hypixel before.", color: embedColor }] - }); - return; + }) + return } - const rank2 = player.newPackageRank; - const monthlyRank = player.monthlyPackageRank; + const rank2 = player.newPackageRank + const monthlyRank = player.monthlyPackageRank let rank = "" - if (rank2 === 'VIP') { + if (rank2 === "VIP") { rank = "[VIP] " - } else if (rank2 === 'VIP_PLUS') { + } else if (rank2 === "VIP_PLUS") { rank = "[VIP+] " - } else if (rank2 === 'MVP') { + } else if (rank2 === "MVP") { rank = "[MVP] " - } else if (rank2 === 'MVP_PLUS' && monthlyRank === 'NONE') { + } else if (rank2 === "MVP_PLUS" && monthlyRank === "NONE") { rank = "[MVP+] " - } else if (rank2 === 'MVP_PLUS' && monthlyRank === 'SUPERSTAR') { + } else if (rank2 === "MVP_PLUS" && monthlyRank === "SUPERSTAR") { rank = "[MVP++] " } const guild = await getGuild(uuid) let guildName = "" if (!guild) { - guildName = "None"; + guildName = "None" } else { - guildName = guild.name; + guildName = guild.name } let guildTag = "" @@ -86,61 +86,61 @@ module.exports = { } //bedwars level - const hsbwexp = player.stats.Bedwars.Experience; - const hsbwstars = bedwarsLevel(hsbwexp); + const hsbwexp = player.stats.Bedwars.Experience + const hsbwstars = bedwarsLevel(hsbwexp) // bedwars fkdr - const hsbwfk = player.stats.Bedwars.final_kills_bedwars; - const hsbwfd = player.stats.Bedwars.final_deaths_bedwars; - const hsbwfkdr = hsbwfk / hsbwfd; + const hsbwfk = player.stats.Bedwars.final_kills_bedwars + const hsbwfd = player.stats.Bedwars.final_deaths_bedwars + const hsbwfkdr = hsbwfk / hsbwfd // bedwars wins - const hsbwwins = player.stats.Bedwars.wins_bedwars; + const hsbwwins = player.stats.Bedwars.wins_bedwars // skywars level - const hsswexp = player.stats.SkyWars.skywars_experience; - const hsswstars = skywarsLevel(hsswexp); + const hsswexp = player.stats.SkyWars.skywars_experience + const hsswstars = skywarsLevel(hsswexp) // skywars kdr - const hsswkills = player.stats.SkyWars.kills; - const hsswdeaths = player.stats.SkyWars.deaths; - const hsswkd = hsswkills / hsswdeaths; + const hsswkills = player.stats.SkyWars.kills + const hsswdeaths = player.stats.SkyWars.deaths + const hsswkd = hsswkills / hsswdeaths //skywars wins - const hsswwins = player.stats.SkyWars.wins; + const hsswwins = player.stats.SkyWars.wins // dueks kdr const hsduelskills = player.stats.Duels.kills const hsduelsdeaths = player.stats.Duels.deaths const hsduelskd = hsduelskills / hsduelsdeaths // duels wins - const hsduelswins = player.stats.Duels.wins; + const hsduelswins = player.stats.Duels.wins // duels wlr - const hsduelslosses = player.stats.Duels.losses; - const hsduelswlr = hsduelswins / hsduelslosses; + const hsduelslosses = player.stats.Duels.losses + const hsduelswlr = hsduelswins / hsduelslosses // network level - const hypixelExp = player.networkExp; - const level = hypixelLevel(hypixelExp); + const hypixelExp = player.networkExp + const level = hypixelLevel(hypixelExp) let bwtitle = "" let swtitle = "" let duelstitle = "" if (hsbwstars < bwstars || hsbwfkdr < bwfkdr || hsbwwins < bwwins) { bwtitle = - " This player does not meet the BedWars requirements."; + " This player does not meet the BedWars requirements." } else { bwtitle = - " This player meets the BedWars requirements."; + " This player meets the BedWars requirements." } if (hsswstars < swstars) { swtitle = - " This player does not meet the SkyWars requirements."; + " This player does not meet the SkyWars requirements." } else { swtitle = - " This player meets the SkyWars requirements."; + " This player meets the SkyWars requirements." } if (hsduelswins < duelswins || hsduelswlr < duelswlr) { duelstitle = - " This player does not meet the Duels requirements."; + " This player does not meet the Duels requirements." } else { duelstitle = - " This player meets the Duels requirements."; + " This player meets the Duels requirements." } await interaction.editReply({ @@ -195,6 +195,6 @@ module.exports = { } ] }] - }); + }) } -}; +} diff --git a/commands/clear.js b/commands/clear.js index 0dbeef4..0aaf452 100644 --- a/commands/clear.js +++ b/commands/clear.js @@ -1,18 +1,18 @@ -const { SlashCommandBuilder, PermissionFlagsBits } = require('discord.js') -const { color } = require('../config/options.json') +const { SlashCommandBuilder, PermissionFlagsBits } = require("discord.js") +const { color } = require("../config/options.json") module.exports = { - name: 'clear', - description: 'Clears messages', - type: 'slash', + name: "clear", + description: "Clears messages", + type: "slash", data: new SlashCommandBuilder() - .setName('clear') - .setDescription('Clears messages') + .setName("clear") + .setDescription("Clears messages") .addIntegerOption(option => option - .setName('amount') - .setDescription('Amount of messages to clear') + .setName("amount") + .setDescription("Amount of messages to clear") .setRequired(true)) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .setDMPermission(false), @@ -23,14 +23,14 @@ module.exports = { await interaction.deferReply({ ephemeral: true }) - const amount = interaction.options.getInteger('amount') + const amount = interaction.options.getInteger("amount") const channel = interaction.channel - const embedColor = Number(color.replace('#', '0x')) + const embedColor = Number(color.replace("#", "0x")) if (!amount || amount < 1 || amount > 100) { await interaction.editReply({ embeds: [{ - description: 'Please provide an amount of messages to clear', + description: "Please provide an amount of messages to clear", color: embedColor }], }) diff --git a/commands/config.js b/commands/config.js index 40ad951..7f8c877 100644 --- a/commands/config.js +++ b/commands/config.js @@ -1,7 +1,7 @@ -const { SlashCommandBuilder, PermissionFlagsBits } = require('discord.js'); -const { color } = require("../config/options.json"); -const settings = require("../schemas/settingsSchema.js"); -const mongoose = require("mongoose"); +const { SlashCommandBuilder, PermissionFlagsBits } = require("discord.js") +const { color } = require("../config/options.json") +const settings = require("../schemas/settingsSchema.js") +const mongoose = require("mongoose") module.exports = { name: "config", @@ -33,12 +33,12 @@ module.exports = { async execute(interaction) { - await interaction.deferReply(); + await interaction.deferReply() const setting = interaction.options.getString("setting") - const value = interaction.options.getString("value"); - const embedColor = Number(color.replace("#", "0x")); - const settingsData = await settings.findOne({ name: setting }); + const value = interaction.options.getString("value") + const embedColor = Number(color.replace("#", "0x")) + const settingsData = await settings.findOne({ name: setting }) if (!settingsData) { @@ -46,22 +46,22 @@ module.exports = { _id: new mongoose.Types.ObjectId(), name: setting, value: value - }); + }) - await newSetting.save(); + await newSetting.save() await interaction.editReply({ embeds: [{ description: "Successfully created `" + setting + "` with value `" + value + "`.", color: embedColor }] - }); + }) } else { await settings.findOneAndUpdate( { name: setting }, { value: value } - ); + ) await interaction.editReply({ embeds: [{ diff --git a/commands/devel.js b/commands/devel.js index 6f6a2a1..9c573eb 100644 --- a/commands/devel.js +++ b/commands/devel.js @@ -1,29 +1,29 @@ -const { SlashCommandBuilder, PermissionFlagsBits, userMention, EmbedBuilder, ChannelType } = require('discord.js'); +const { SlashCommandBuilder, PermissionFlagsBits, userMention, EmbedBuilder, ChannelType } = require("discord.js") module.exports = { - name: 'admin', - description: 'Admin command.', - type: 'slash', + name: "admin", + description: "Admin command.", + type: "slash", data: new SlashCommandBuilder() - .setName('devel') - .setDescription('Admin command.') + .setName("devel") + .setDescription("Admin command.") .addSubcommand(subcommand => subcommand - .setName('reload') - .setDescription('Reload the bot.')) + .setName("reload") + .setDescription("Reload the bot.")) .addSubcommand(subcommand => subcommand - .setName('listallverified') - .setDescription('List all verified users.')) + .setName("listallverified") + .setDescription("List all verified users.")) .addSubcommand(subcommand => subcommand - .setName('purgereactions') - .setDescription('Purge all reactions from a messages.') + .setName("purgereactions") + .setDescription("Purge all reactions from a messages.") .addIntegerOption(option => option - .setName('count') - .setDescription('Count of messages to purge reactions from.'))) + .setName("count") + .setDescription("Count of messages to purge reactions from."))) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .setDMPermission(false), @@ -31,19 +31,19 @@ module.exports = { async execute(interaction) { - const subcommand = interaction.options.getSubcommand(); + const subcommand = interaction.options.getSubcommand() - if (subcommand === 'reload') { + if (subcommand === "reload") { - const { exec } = require('child_process'); - await interaction.reply({ content: 'Reloading...', ephemeral: true }) + const { exec } = require("child_process") + await interaction.reply({ content: "Reloading...", ephemeral: true }) - exec('pm2 restart 0', async (err, stdout, stderr) => { + exec("pm2 restart 0", async (err, stdout, stderr) => { if (err) { - await interaction.reply({ content: 'Error while reloading: ' + err, ephemeral: true }) + await interaction.reply({ content: "Error while reloading: " + err, ephemeral: true }) } }) } } -}; +} diff --git a/commands/forceunverify.js b/commands/forceunverify.js index 8f65dd3..63cfa0d 100644 --- a/commands/forceunverify.js +++ b/commands/forceunverify.js @@ -1,21 +1,21 @@ -const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require('discord.js'); -const { color } = require("../config/options.json"); -const verify = require("../schemas/verifySchema.js"); -const { gm, manager, moderator, beast, member, trialmember, guildRole, guildStaff, defaultMember } = require("../config/roles.json"); +const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require("discord.js") +const { color } = require("../config/options.json") +const verify = require("../schemas/verifySchema.js") +const { gm, manager, moderator, beast, member, trialmember, guildRole, guildStaff, defaultMember } = require("../config/roles.json") const removeThese = [gm, manager, moderator, beast, member, trialmember, guildRole, guildStaff, defaultMember] module.exports = { name: "forceunverify", description: "Force unverify a user", - type: 'slash', + type: "slash", data: new SlashCommandBuilder() - .setName('forceunverify') - .setDescription('Force unverify a user') + .setName("forceunverify") + .setDescription("Force unverify a user") .addUserOption(option => option - .setName('user') - .setDescription('The user to force unverify') + .setName("user") + .setDescription("The user to force unverify") .setRequired(true)) .setDMPermission(false) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator), @@ -23,9 +23,9 @@ module.exports = { /** @param { import('discord.js').ChatInputCommandInteraction } interaction */ async execute(interaction) { - const member1 = interaction.options.getUser('user'); + const member1 = interaction.options.getUser("user") const member = interaction.guild.members.cache.get(member1.id) - const embedColor = Number(color.replace('#', '0x')) + const embedColor = Number(color.replace("#", "0x")) const verifiedUser = await verify.findOne({ userID: member1.id }) if (!verifiedUser) { diff --git a/commands/forceupdate.js b/commands/forceupdate.js index 0332912..512f9f9 100644 --- a/commands/forceupdate.js +++ b/commands/forceupdate.js @@ -1,22 +1,22 @@ -const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require('discord.js'); -const { getGuild, getHeadURL, getIGN } = require('../utils/utils.js') -const { hypixelGuildID, color } = require('../config/options.json'); -const { gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff, defaultMember } = require('../config/roles.json'); -const verify = require('../schemas/verifySchema.js') +const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require("discord.js") +const { getGuild, getHeadURL, getIGN } = require("../utils/utils.js") +const { hypixelGuildID, color } = require("../config/options.json") +const { gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff, defaultMember } = require("../config/roles.json") +const verify = require("../schemas/verifySchema.js") const removeThese = [gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff] module.exports = { - name: 'forceupdate', - description: 'Force update the user', - type: 'slash', + name: "forceupdate", + description: "Force update the user", + type: "slash", data: new SlashCommandBuilder() - .setName('forceupdate') - .setDescription('Force update the user') + .setName("forceupdate") + .setDescription("Force update the user") .addUserOption(option => option - .setName('user') - .setDescription('The user to force update') + .setName("user") + .setDescription("The user to force update") .setRequired(true)) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .setDMPermission(false), @@ -25,15 +25,15 @@ module.exports = { async execute(interaction) { - await interaction.deferReply(); + await interaction.deferReply() - const user = interaction.options.getUser('user'); - const usermentioned = userMention(user.id); + const user = interaction.options.getUser("user") + const usermentioned = userMention(user.id) const verifyData = await verify.findOne({ userID: user.id }) - const embedColor = Number(color.replace("#", "0x")); + const embedColor = Number(color.replace("#", "0x")) - const user1 = interaction.guild.members.cache.get(user.id); - const roleManage = user1.roles; + const user1 = interaction.guild.members.cache.get(user.id) + const roleManage = user1.roles if (!verifyData) { await interaction.editReply({ @@ -49,9 +49,9 @@ module.exports = { return } - const ign = await getIGN(verifyData.uuid); + const ign = await getIGN(verifyData.uuid) const head = await getHeadURL(ign) - const guild = await getGuild(verifyData.uuid); + const guild = await getGuild(verifyData.uuid) let responseGuildID = "" if (!guild) { @@ -85,10 +85,10 @@ module.exports = { if (responseGuildID === hypixelGuildID) { - const GuildMembers = guild.members; - const guildRank = GuildMembers.find(member => member.uuid === verifyData.uuid).rank; + const GuildMembers = guild.members + const guildRank = GuildMembers.find(member => member.uuid === verifyData.uuid).rank - if (guildRank === 'Guild Master') { + if (guildRank === "Guild Master") { for (let i = 0; i < removeThese.length; i++) { await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)") @@ -115,7 +115,7 @@ module.exports = { }) } - if (guildRank === 'Manager') { + if (guildRank === "Manager") { for (let i = 0; i < removeThese.length; i++) { await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)") @@ -142,7 +142,7 @@ module.exports = { }) } - if (guildRank === 'Moderator') { + if (guildRank === "Moderator") { for (let i = 0; i < removeThese.length; i++) { await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)") @@ -170,7 +170,7 @@ module.exports = { } - if (guildRank === 'Beast') { + if (guildRank === "Beast") { for (let i = 0; i < removeThese.length; i++) { await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)") @@ -197,7 +197,7 @@ module.exports = { return } - if (guildRank === 'Elite') { + if (guildRank === "Elite") { for (let i = 0; i < removeThese.length; i++) { await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)") @@ -224,7 +224,7 @@ module.exports = { return } - if (guildRank === 'Member') { + if (guildRank === "Member") { for (let i = 0; i < removeThese.length; i++) { await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)") @@ -251,7 +251,7 @@ module.exports = { return } - if (guildRank === 'Trial Member') { + if (guildRank === "Trial Member") { for (let i = 0; i < removeThese.length; i++) { await roleManage.remove(removeThese[i], "Auto role removal. (Force Update)") diff --git a/commands/forceverify.js b/commands/forceverify.js index baa5aea..7ee4c84 100644 --- a/commands/forceverify.js +++ b/commands/forceverify.js @@ -1,27 +1,27 @@ -const { SlashCommandBuilder, PermissionFlagsBits } = require('discord.js'); -const { getUUID, getPlayer, getGuild, getHeadURL } = require('../utils/utils.js'); -const { color, hypixelGuildID } = require('../config/options.json'); -const verify = require('../schemas/verifySchema.js') -const { mongoose } = require('mongoose'); -const { gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff, defaultMember } = require('../config/roles.json'); +const { SlashCommandBuilder, PermissionFlagsBits } = require("discord.js") +const { getUUID, getPlayer, getGuild, getHeadURL } = require("../utils/utils.js") +const { color, hypixelGuildID } = require("../config/options.json") +const verify = require("../schemas/verifySchema.js") +const { mongoose } = require("mongoose") +const { gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff, defaultMember } = require("../config/roles.json") module.exports = { - name: 'forceverify', - description: 'Force verify a user.', - type: 'slash', + name: "forceverify", + description: "Force verify a user.", + type: "slash", data: new SlashCommandBuilder() - .setName('forceverify') - .setDescription('Force verify a user.') + .setName("forceverify") + .setDescription("Force verify a user.") .addUserOption(option => option - .setName('user') - .setDescription('The user to force verify.')) + .setName("user") + .setDescription("The user to force verify.")) .addStringOption(option => option - .setName('ign') - .setDescription('The user\'s in-game name.')) + .setName("ign") + .setDescription("The user's in-game name.")) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .setDMPermission(false), @@ -29,27 +29,27 @@ module.exports = { async execute(interaction) { - await interaction.deferReply(); + await interaction.deferReply() - const user1 = interaction.options.getUser('user'); - const user = interaction.guild.members.cache.get(user1.id); - const ign = interaction.options.getString('ign'); + const user1 = interaction.options.getUser("user") + const user = interaction.guild.members.cache.get(user1.id) + const ign = interaction.options.getString("ign") const mod = interaction.user - const embedColor = Number(color.replace("#", "0x")); + const embedColor = Number(color.replace("#", "0x")) const verifyData = await verify.findOne({ userID: user.id }) if (verifyData) { - interaction.editReply('That user is already verified.') + interaction.editReply("That user is already verified.") return } if (!user) { - interaction.editReply('Please provide a user to force verify.\nThis can also mean the user is not in the server.') + interaction.editReply("Please provide a user to force verify.\nThis can also mean the user is not in the server.") return } if (!ign) { - interaction.editReply('Please provide a player\'s IGN.') + interaction.editReply("Please provide a player's IGN.") return } @@ -67,7 +67,7 @@ module.exports = { modName = mod.username + "#" + mod.discriminator } - const uuid = await getUUID(ign); + const uuid = await getUUID(ign) if (!uuid) { interaction.editReply({ embeds: [{ @@ -78,18 +78,18 @@ module.exports = { return } - const player = await getPlayer(uuid); + const player = await getPlayer(uuid) if (!player) { interaction.editReply({ embeds: [{ description: " That player hasn't played Hypixel before.", color: embedColor }] - }); - return; + }) + return } - const guild = await getGuild(uuid); + const guild = await getGuild(uuid) let responseGuildID = "" if (!guild) { responseGuildID = null @@ -97,51 +97,51 @@ module.exports = { responseGuildID = guild._id } - const head = await getHeadURL(ign); + const head = await getHeadURL(ign) if (responseGuildID === hypixelGuildID) { - const GuildMembers = guild.members; - const guildRank = GuildMembers.find(member => member.uuid === player.uuid).rank; + const GuildMembers = guild.members + const guildRank = GuildMembers.find(member => member.uuid === player.uuid).rank if (guildRank === "Guild Master") { - await user.roles.add(gm, "User was force verified by " + modName); + await user.roles.add(gm, "User was force verified by " + modName) await user.roles.add(guildRole, "User was force verified by " + modName) await user.roles.add(guildStaff, "User was force verified by " + modName) } if (guildRank === "Manager") { - await user.roles.add(manager, "User was force verified by " + modName); + await user.roles.add(manager, "User was force verified by " + modName) await user.roles.add(guildRole, "User was force verified by " + modName) await user.roles.add(guildStaff, "User was force verified by " + modName) } if (guildRank === "Moderator") { - await user.roles.add(moderator, "User was force verified by " + modName); + await user.roles.add(moderator, "User was force verified by " + modName) await user.roles.add(guildRole, "User was force verified by " + modName) await user.roles.add(guildStaff, "User was force verified by " + modName) } if (guildRank === "Beast") { - await user.roles.add(beast, "User was force verified by " + modName); + await user.roles.add(beast, "User was force verified by " + modName) await user.roles.add(guildRole, "User was force verified by " + modName) } if (guildRank === "Elite") { - await user.roles.add(elite, "User was force verified by " + modName); + await user.roles.add(elite, "User was force verified by " + modName) await user.roles.add(guildRole, "User was force verified by " + modName) } if (guildRank === "Member") { - await user.roles.add(member, "User was force verified by " + modName); + await user.roles.add(member, "User was force verified by " + modName) await user.roles.add(guildRole, "User was force verified by " + modName) } if (guildRank === "Trial Member") { - await user.roles.add(trialmember, "User was force verified by " + modName); + await user.roles.add(trialmember, "User was force verified by " + modName) await user.roles.add(guildRole, "User was force verified by " + modName) } } - await user.roles.add(defaultMember, "User was force verified by " + modName); + await user.roles.add(defaultMember, "User was force verified by " + modName) const newVerify = new verify({ _id: new mongoose.Types.ObjectId(), @@ -149,7 +149,7 @@ module.exports = { uuid: uuid }) - await newVerify.save(); + await newVerify.save() await interaction.editReply({ embeds: [{ @@ -164,7 +164,7 @@ module.exports = { text: interaction.guild.name + " | Developed by Taken#0002" } }] - }); + }) } -}; +} diff --git a/commands/guild.js b/commands/guild.js index 020a6ab..2b38132 100644 --- a/commands/guild.js +++ b/commands/guild.js @@ -1,35 +1,35 @@ -const { SlashCommandBuilder } = require('discord.js') -const { color } = require('../config/options.json') -const { guildMember } = require('./guild/member.js') -const { guildInfo } = require('./guild/info.js') +const { SlashCommandBuilder } = require("discord.js") +const { color } = require("../config/options.json") +const { guildMember } = require("./guild/member.js") +const { guildInfo } = require("./guild/info.js") module.exports = { - name: 'guild', - description: 'Subcommands for guilds', - type: 'slash', + name: "guild", + description: "Subcommands for guilds", + type: "slash", data: new SlashCommandBuilder() - .setName('guild') - .setDescription('Subcommands for guilds') + .setName("guild") + .setDescription("Subcommands for guilds") .addSubcommand(subcommand => subcommand - .setName('member') - .setDescription('Get info about a guild memeber') + .setName("member") + .setDescription("Get info about a guild memeber") .addStringOption(option => option - .setName('ign') - .setDescription('The IGN of the player.') + .setName("ign") + .setDescription("The IGN of the player.") .setRequired(true) ) ) .addSubcommand(subcommand => subcommand - .setName('info') - .setDescription('Get info about a guild.') + .setName("info") + .setDescription("Get info about a guild.") .addStringOption(option => option - .setName('ign') - .setDescription('The IGN of a member.') + .setName("ign") + .setDescription("The IGN of a member.") .setRequired(true) ) ) @@ -42,14 +42,14 @@ module.exports = { await interaction.deferReply() const subcommand = interaction.options.getSubcommand() - const embedColor = Number(color.replace('#', '0x')) + const embedColor = Number(color.replace("#", "0x")) - if (subcommand === 'member') { + if (subcommand === "member") { await guildMember(interaction) return } - if (subcommand === 'info') { + if (subcommand === "info") { await guildInfo(interaction) return } diff --git a/commands/guild/info.js b/commands/guild/info.js index d82bcce..f594a0c 100644 --- a/commands/guild/info.js +++ b/commands/guild/info.js @@ -1,12 +1,12 @@ const { getUUID, getIGN, getPlayer, getGuild, guildLevel } = require("../../utils/utils.js") -const { color } = require("../../config/options.json"); +const { color } = require("../../config/options.json") /** @param { import('discord.js').ChatInputCommandInteraction } interaction */ async function guildInfo(interaction) { - const ign = interaction.options.getString("ign"); - const embedColor = Number(color.replace("#", "0x")); + const ign = interaction.options.getString("ign") + const embedColor = Number(color.replace("#", "0x")) const uuid = await getUUID(ign) if (!uuid) { @@ -41,12 +41,12 @@ async function guildInfo(interaction) { return } - const guildName = guild.name; - const guildCreatedMS = guild.created; - const guildCreated = new Date(guildCreatedMS); - const guildTag = guild.tag; - const guildExp = guild.exp; - const guildLvl = guildLevel(guildExp); + const guildName = guild.name + const guildCreatedMS = guild.created + const guildCreated = new Date(guildCreatedMS) + const guildTag = guild.tag + const guildExp = guild.exp + const guildLvl = guildLevel(guildExp) const guildMembers = guild.members const guildCreatedDate = guildCreated.getDate() diff --git a/commands/guild/member.js b/commands/guild/member.js index 0a1de97..72777fa 100644 --- a/commands/guild/member.js +++ b/commands/guild/member.js @@ -1,13 +1,13 @@ -const { getUUID, getPlayer, getGuild, getHeadURL } = require("../../utils/utils.js"); -const { color } = require("../../config/options.json"); +const { getUUID, getPlayer, getGuild, getHeadURL } = require("../../utils/utils.js") +const { color } = require("../../config/options.json") /** @param { import('discord.js').ChatInputCommandInteraction } interaction */ async function guildMember(interaction) { - const ign = interaction.options.getString("ign"); - const embedColor = Number(color.replace("#", "0x")); + const ign = interaction.options.getString("ign") + const embedColor = Number(color.replace("#", "0x")) - const uuid = await getUUID(ign); + const uuid = await getUUID(ign) if (!uuid) { interaction.editReply({ embeds: [ @@ -20,11 +20,11 @@ async function guildMember(interaction) { }, }, ], - }); + }) } - const head = await getHeadURL(ign); - const player = await getPlayer(uuid); + const head = await getHeadURL(ign) + const player = await getPlayer(uuid) if (!player) { await interaction.editReply({ embeds: [ @@ -40,27 +40,27 @@ async function guildMember(interaction) { }, }, ], - }); + }) } - const serverRank = player.newPackageRank; - const monthlyRank = player.monthlyPackageRank; - const displayName = player.displayname; + const serverRank = player.newPackageRank + const monthlyRank = player.monthlyPackageRank + const displayName = player.displayname - let rank = ""; + let rank = "" if (serverRank === "VIP") { - rank = "[VIP] "; + rank = "[VIP] " } else if (serverRank === "VIP_PLUS") { - rank = "[VIP+] "; + rank = "[VIP+] " } else if (serverRank === "MVP") { - rank = "[MVP] "; + rank = "[MVP] " } else if (serverRank === "MVP_PLUS" && monthlyRank === "NONE") { - rank = "[MVP+] "; + rank = "[MVP+] " } else if (serverRank === "MVP_PLUS" && monthlyRank === "SUPERSTAR") { - rank = "[MVP++] "; + rank = "[MVP++] " } - const guild = await getGuild(uuid); + const guild = await getGuild(uuid) if (!guild) { await interaction.editReply({ embeds: [ @@ -76,31 +76,31 @@ async function guildMember(interaction) { }, }, ], - }); + }) } - const guildName = guild.name; - const guildTag = " [" + guild.tag + "]" ?? ""; + const guildName = guild.name + const guildTag = " [" + guild.tag + "]" ?? "" - const guildMembers = guild.members; - const guildMember = guildMembers.find((member) => member.uuid === uuid); - const guildRank = guildMember.rank; - const memberGexp = guildMember.expHistory; + const guildMembers = guild.members + const guildMember = guildMembers.find((member) => member.uuid === uuid) + const guildRank = guildMember.rank + const memberGexp = guildMember.expHistory const allDaysGexp = Object.keys(memberGexp).map((key) => { - return "**➺ " + key + ":** " + "`" + memberGexp[key] + "`" + "\n"; - }); - const expValue = allDaysGexp.join(""); - const totalWeeklyGexp = Object.values(memberGexp).reduce((a, b) => a + b, 0); - const averageWeeklyGexp = Math.round(totalWeeklyGexp / 7); + return "**➺ " + key + ":** " + "`" + memberGexp[key] + "`" + "\n" + }) + const expValue = allDaysGexp.join("") + const totalWeeklyGexp = Object.values(memberGexp).reduce((a, b) => a + b, 0) + const averageWeeklyGexp = Math.round(totalWeeklyGexp / 7) - const guildMemberJoinMS = guildMember.joined; - const guildMemberJoinTime = new Date(guildMemberJoinMS); - const guildMemberJoinDate = guildMemberJoinTime.getDate(); - const guildMemberJoinMonth = guildMemberJoinTime.getMonth() + 1; - const guildMemberJoinYear = guildMemberJoinTime.getFullYear(); - const guildMemberJoinHours = guildMemberJoinTime.getHours(); - const guildMemberJoinMinutes = guildMemberJoinTime.getMinutes(); - const guildMemberJoinSeconds = guildMemberJoinTime.getSeconds(); + const guildMemberJoinMS = guildMember.joined + const guildMemberJoinTime = new Date(guildMemberJoinMS) + const guildMemberJoinDate = guildMemberJoinTime.getDate() + const guildMemberJoinMonth = guildMemberJoinTime.getMonth() + 1 + const guildMemberJoinYear = guildMemberJoinTime.getFullYear() + const guildMemberJoinHours = guildMemberJoinTime.getHours() + const guildMemberJoinMinutes = guildMemberJoinTime.getMinutes() + const guildMemberJoinSeconds = guildMemberJoinTime.getSeconds() const guildMemberJoin = guildMemberJoinDate + "." + @@ -108,7 +108,7 @@ async function guildMember(interaction) { guildMemberJoinYear + " " + guildMemberJoinHours + ":" + guildMemberJoinMinutes + ":" + - guildMemberJoinSeconds; + guildMemberJoinSeconds await interaction.editReply({ embeds: [ @@ -141,8 +141,8 @@ async function guildMember(interaction) { }, }, ], - }); - return; + }) + return } module.exports = { guildMember } diff --git a/commands/help.js b/commands/help.js index 189974c..ee5918c 100644 --- a/commands/help.js +++ b/commands/help.js @@ -1,44 +1,44 @@ -const { SlashCommandBuilder, ChannelType } = require('discord.js'); -const { color } = require('../config/options.json'); +const { SlashCommandBuilder, ChannelType } = require("discord.js") +const { color } = require("../config/options.json") module.exports = { - name: 'help', - description: 'Help command', - type: 'slash', + name: "help", + description: "Help command", + type: "slash", data: new SlashCommandBuilder() - .setName('help') - .setDescription('Help command') + .setName("help") + .setDescription("Help command") .setDMPermission(true), /** @param { import('discord.js').ChatInputCommandInteraction } interaction */ async execute(interaction) { - await interaction.deferReply({ ephemeral: true }); + await interaction.deferReply({ ephemeral: true }) - const embedColor = Number(color.replace('#', '0x')); + const embedColor = Number(color.replace("#", "0x")) await interaction.editReply({ embeds: [{ - title: 'Commands', + title: "Commands", description: "List of commands", fields: [ { - name: '/check', - value: 'Check the stats of a player' + name: "/check", + value: "Check the stats of a player" }, { - name: '/reqs', - value: 'Check the requirements of the guild' + name: "/reqs", + value: "Check the requirements of the guild" }, { - name: '/update', - value: 'Update\'s your roles' + name: "/update", + value: "Update's your roles" }, { - name: '/help', - value: 'Shows this message' + name: "/help", + value: "Shows this message" } ], color: embedColor, @@ -47,10 +47,10 @@ module.exports = { }, footer: { icon_url: interaction.guild.iconURL({ dynamic: true }), - text: interaction.guild.name + ' | Developed by: @Taken#0001' + text: interaction.guild.name + " | Developed by: @Taken#0001" } }] - }); + }) } -}; +} diff --git a/commands/kick.js b/commands/kick.js index 72d5dd5..4c3aa1f 100644 --- a/commands/kick.js +++ b/commands/kick.js @@ -1,24 +1,24 @@ -const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require('discord.js') -const { admin, helper } = require('../config/roles.json') -const { color } = require('../config/options.json') +const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require("discord.js") +const { admin, helper } = require("../config/roles.json") +const { color } = require("../config/options.json") module.exports = { - name: 'kick', - description: 'Kick a member from the server.', - type: 'slash', + name: "kick", + description: "Kick a member from the server.", + type: "slash", data: new SlashCommandBuilder() - .setName('kick') - .setDescription('Kick a member from the server.') + .setName("kick") + .setDescription("Kick a member from the server.") .addUserOption(option => option - .setName('member') - .setDescription('Member to kick.') + .setName("member") + .setDescription("Member to kick.") .setRequired(true)) .addStringOption(option => option - .setName('reason') - .setDescription('Reason for kicking the member.')) + .setName("reason") + .setDescription("Reason for kicking the member.")) .setDefaultMemberPermissions(PermissionFlagsBits.KickMembers) .setDMPermission(false), @@ -28,12 +28,12 @@ module.exports = { await interaction.deferReply() - const member = interaction.options.getMember('member') - const reason = interaction.options.getString('reason') ?? "No reason provided." + const member = interaction.options.getMember("member") + const reason = interaction.options.getString("reason") ?? "No reason provided." const mod = await interaction.guild.members.fetch(interaction.user.id) const memberRoles = member.roles.cache.map(role => role.id) const modRoles = mod.roles.cache.map(role => role.id) - const embedColor = Number(color.replace('#', '0x')) + const embedColor = Number(color.replace("#", "0x")) if (!modRoles.includes(helper) && !modRoles.includes(admin)) { await interaction.editReply("You do not have permission to use this command.") diff --git a/commands/remove.js b/commands/remove.js index 6e72ac6..33749b0 100644 --- a/commands/remove.js +++ b/commands/remove.js @@ -1,25 +1,25 @@ -const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require('discord.js'); -const { color } = require('../config/options.json'); +const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require("discord.js") +const { color } = require("../config/options.json") const { waitinglistSchema } = require("../schemas/waitinglistSchema.js") module.exports = { - name: 'remove', - description: 'Remove a person on the waiting list.', - type: 'slash', + name: "remove", + description: "Remove a person on the waiting list.", + type: "slash", data: new SlashCommandBuilder() - .setName('remove') - .setDescription('Remove a person on the waiting list.') + .setName("remove") + .setDescription("Remove a person on the waiting list.") .addUserOption(option => option - .setName('user') - .setDescription('The user to remove.') + .setName("user") + .setDescription("The user to remove.") .setRequired(true) ) .addStringOption(option => option - .setName('reason') - .setDescription('The reason for removing the user.') + .setName("reason") + .setDescription("The reason for removing the user.") .setRequired(false) ) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) @@ -31,10 +31,10 @@ module.exports = { interaction.deferReply() - const user = interaction.options.getUser('user'); - const reason = interaction.options.getString('reason') ?? "No reason provided." + const user = interaction.options.getUser("user") + const reason = interaction.options.getString("reason") ?? "No reason provided." const mod = interaction.user - const embedColor = Number(color.replace('#', '0x')) + const embedColor = Number(color.replace("#", "0x")) const waitinglist = await waitinglistSchema.findOne({ UserID: user.id }) diff --git a/commands/reqs.js b/commands/reqs.js index 0e3bfb1..35cf2e7 100644 --- a/commands/reqs.js +++ b/commands/reqs.js @@ -1,50 +1,50 @@ -const { SlashCommandBuilder } = require('discord.js'); -const { color } = require('../config/options.json'); -const { bwfkdr, bwstars, bwwins, swstars, duelswins, duelswlr } = require('../config/reqs.json'); +const { SlashCommandBuilder } = require("discord.js") +const { color } = require("../config/options.json") +const { bwfkdr, bwstars, bwwins, swstars, duelswins, duelswlr } = require("../config/reqs.json") module.exports = { - name: 'reqs', - description: 'Displays the requirements for the guild.', - type: 'slash', + name: "reqs", + description: "Displays the requirements for the guild.", + type: "slash", data: new SlashCommandBuilder() - .setName('reqs') - .setDescription('Displays the requirements for the guild.'), + .setName("reqs") + .setDescription("Displays the requirements for the guild."), /** @param { import('discord.js').ChatInputCommandInteraction } interaction */ async execute(interaction) { - await interaction.deferReply({ ephemeral: true }); + await interaction.deferReply({ ephemeral: true }) - const embedColor = Number(color.replace("#", "0x")); + const embedColor = Number(color.replace("#", "0x")) await interaction.editReply({ embeds: [{ - title: 'Requirements', - description: '**You must make 100k-150k weekly GEXP.\nAs well as onne of the game stats below**', + title: "Requirements", + description: "**You must make 100k-150k weekly GEXP.\nAs well as onne of the game stats below**", color: embedColor, thumbnail: { url: interaction.guild.iconURL() }, fields: [ { - name: '**Bedwars**', - value: '**Stars:** `' + bwstars.toString() + - '`\n**Wins:** `' + bwwins.toString() + - '`\n**FKDR:** `' + bwfkdr.toString() + '`' + name: "**Bedwars**", + value: "**Stars:** `" + bwstars.toString() + + "`\n**Wins:** `" + bwwins.toString() + + "`\n**FKDR:** `" + bwfkdr.toString() + "`" }, { - name: '**Skywars**', - value: '**Stars:** `' + swstars.toString() + '`' + name: "**Skywars**", + value: "**Stars:** `" + swstars.toString() + "`" }, { - name: '**Duels**', - value: '**Wins:** `' + duelswins.toString() + - '`\n**WLR:** `' + duelswlr.toString() + '`' + name: "**Duels**", + value: "**Wins:** `" + duelswins.toString() + + "`\n**WLR:** `" + duelswlr.toString() + "`" } ], footer: { - text: interaction.guild.name + ' | Developed by: @Taken#0002', + text: interaction.guild.name + " | Developed by: @Taken#0002", icon_url: interaction.guild.iconURL() } }] diff --git a/commands/send.js b/commands/send.js index de6b345..32abc57 100644 --- a/commands/send.js +++ b/commands/send.js @@ -1,22 +1,22 @@ -const { SlashCommandBuilder, PermissionFlagsBits } = require('discord.js'); -const { color } = require('../config/options.json'); +const { SlashCommandBuilder, PermissionFlagsBits } = require("discord.js") +const { color } = require("../config/options.json") module.exports = { - name: 'send', - description: 'Send a message to a channel.', - type: 'slash', + name: "send", + description: "Send a message to a channel.", + type: "slash", data: new SlashCommandBuilder() - .setName('send') - .setDescription('Send a message to a channel.') + .setName("send") + .setDescription("Send a message to a channel.") .addStringOption(option => option - .setName('message') - .setDescription('The message to send.')) + .setName("message") + .setDescription("The message to send.")) .addChannelOption(option => option - .setName('channel') - .setDescription('The channel to send the message to.')) + .setName("channel") + .setDescription("The channel to send the message to.")) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .setDMPermission(false), @@ -24,19 +24,19 @@ module.exports = { async execute(interaction) { - await interaction.deferReply({ ephemeral: true }); + await interaction.deferReply({ ephemeral: true }) - const message = interaction.options.getString('message'); - const channel = interaction.options.getChannel('channel'); - const embedColor = Number(color.replace("#", "0x")); + const message = interaction.options.getString("message") + const channel = interaction.options.getChannel("channel") + const embedColor = Number(color.replace("#", "0x")) if (!message) { - interaction.editReply({ content: 'Please provide a message to send.', ephemeral: true }) + interaction.editReply({ content: "Please provide a message to send.", ephemeral: true }) return } if (!channel) { - interaction.editReply({ content: 'Please provide a channel to send the message to.', ephemeral: true }) + interaction.editReply({ content: "Please provide a channel to send the message to.", ephemeral: true }) return } @@ -54,6 +54,6 @@ module.exports = { } } ] - }); + }) } -}; +} diff --git a/commands/setnick.js b/commands/setnick.js index e6c65fe..37ce70a 100644 --- a/commands/setnick.js +++ b/commands/setnick.js @@ -1,22 +1,22 @@ -const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require('discord.js') +const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require("discord.js") module.exports = { - name: 'setnick', - description: 'Set your nickname', - type: 'slash', + name: "setnick", + description: "Set your nickname", + type: "slash", data: new SlashCommandBuilder() - .setName('setnick') - .setDescription('Set your nickname') + .setName("setnick") + .setDescription("Set your nickname") .addUserOption(option => option - .setName('user') - .setDescription('The user to set the nickname for') + .setName("user") + .setDescription("The user to set the nickname for") .setRequired(true)) .addStringOption(option => option - .setName('nickname') - .setDescription('The nickname to set') + .setName("nickname") + .setDescription("The nickname to set") .setRequired(true)) .setDefaultMemberPermissions(PermissionFlagsBits.ManageNicknames) .setDMPermission(false), @@ -25,17 +25,17 @@ module.exports = { async execute(interaction) { - const user = interaction.options.getUser('user'); - const nickname = interaction.options.getString('nickname'); - const member = await interaction.guild.members.fetch(user.id); + const user = interaction.options.getUser("user") + const nickname = interaction.options.getString("nickname") + const member = await interaction.guild.members.fetch(user.id) if (!member.manageable) { - return interaction.reply({ content: 'I cannot set the nickname for this user!', ephemeral: true }); + return interaction.reply({ content: "I cannot set the nickname for this user!", ephemeral: true }) } - await member.setNickname(nickname, `Set by ${interaction.user.tag}`); + await member.setNickname(nickname, `Set by ${interaction.user.tag}`) - await interaction.reply({ content: "Set the nickname of " + userMention(member.id) + " to " + nickname, ephemeral: true }); + await interaction.reply({ content: "Set the nickname of " + userMention(member.id) + " to " + nickname, ephemeral: true }) } } diff --git a/commands/setup.js b/commands/setup.js index 95bfc06..1b46433 100644 --- a/commands/setup.js +++ b/commands/setup.js @@ -1,5 +1,5 @@ -const { SlashCommandBuilder, PermissionFlagsBits, ButtonBuilder, ActionRowBuilder, ButtonStyle, } = require("discord.js"); -const { color } = require("../config/options.json"); +const { SlashCommandBuilder, PermissionFlagsBits, ButtonBuilder, ActionRowBuilder, ButtonStyle, } = require("discord.js") +const { color } = require("../config/options.json") module.exports = { name: "setup", @@ -62,14 +62,14 @@ module.exports = { /** @param { import('discord.js').ChatInputCommandInteraction } interaction */ async execute(interaction) { - const user = interaction.user; - const guild = interaction.guild; - const subcommand = interaction.options.getSubcommand(); - const embedColor = Number(color.replace("#", "0x")); + const user = interaction.user + const guild = interaction.guild + const subcommand = interaction.options.getSubcommand() + const embedColor = Number(color.replace("#", "0x")) if (subcommand === "sendguildapplication") { - const channel = interaction.options.getChannel("channel"); + const channel = interaction.options.getChannel("channel") await channel.send({ embeds: [ @@ -94,12 +94,12 @@ module.exports = { .setStyle(ButtonStyle.Primary) .setEmoji({ name: "✅" })) ] - }); - await interaction.reply({ content: "Message sent", ephemeral: true }); + }) + await interaction.reply({ content: "Message sent", ephemeral: true }) } if (subcommand === "sendstaffapplication") { - const channel = interaction.options.getChannel("channel"); + const channel = interaction.options.getChannel("channel") await channel.send({ embeds: [ @@ -124,13 +124,13 @@ module.exports = { .setStyle(ButtonStyle.Primary) .setEmoji({ name: "✅" })) ] - }); + }) - await interaction.reply({ content: "Message sent", ephemeral: true }); + await interaction.reply({ content: "Message sent", ephemeral: true }) } if (subcommand === "sendinactivityapplication") { - const channel = interaction.options.getChannel("channel"); + const channel = interaction.options.getChannel("channel") await channel.send({ embeds: [ @@ -155,13 +155,13 @@ module.exports = { .setStyle(ButtonStyle.Primary) .setEmoji({ name: "✅" })) ] - }); + }) - await interaction.reply({ content: "Message sent", ephemeral: true }); + await interaction.reply({ content: "Message sent", ephemeral: true }) } if (subcommand === "sendverfiymessage") { - const channel = interaction.options.getChannel("channel"); + const channel = interaction.options.getChannel("channel") await channel.send({ embeds: [{ @@ -184,13 +184,13 @@ module.exports = { .setStyle(ButtonStyle.Primary) .setEmoji({ name: "✅" })) ] - }); - await interaction.reply({ content: "Message sent", ephemeral: true }); + }) + await interaction.reply({ content: "Message sent", ephemeral: true }) } if (subcommand === "sendwaitinglistmessage") { - const channel = interaction.options.getChannel("channel"); + const channel = interaction.options.getChannel("channel") await channel.send({ embeds: [{ @@ -214,9 +214,9 @@ module.exports = { .setStyle(ButtonStyle.Primary) .setEmoji({ name: "🔄" })) ] - }); - await interaction.reply({ content: "Message sent", ephemeral: true }); + }) + await interaction.reply({ content: "Message sent", ephemeral: true }) } } -}; +} diff --git a/commands/slowmode.js b/commands/slowmode.js index 2580864..0d6776a 100644 --- a/commands/slowmode.js +++ b/commands/slowmode.js @@ -1,22 +1,22 @@ -const { SlashCommandBuilder, PermissionFlagsBits } = require('discord.js'); -const { color } = require('../config/options.json'); +const { SlashCommandBuilder, PermissionFlagsBits } = require("discord.js") +const { color } = require("../config/options.json") module.exports = { - name: 'slowmode', - description: 'Set the slowmode of a channel.', - type: 'slash', + name: "slowmode", + description: "Set the slowmode of a channel.", + type: "slash", data: new SlashCommandBuilder() - .setName('slowmode') - .setDescription('Set the slowmode of a channel.') + .setName("slowmode") + .setDescription("Set the slowmode of a channel.") .addIntegerOption(option => option - .setName('seconds') - .setDescription('The amount of seconds to set the slowmode to.')) + .setName("seconds") + .setDescription("The amount of seconds to set the slowmode to.")) .addChannelOption(option => option - .setName('channel') - .setDescription('The channel to set the slowmode of.')) + .setName("channel") + .setDescription("The channel to set the slowmode of.")) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .setDMPermission(false), @@ -24,11 +24,11 @@ module.exports = { async execute(interaction) { - await interaction.deferReply({ ephermeral: true }); + await interaction.deferReply({ ephermeral: true }) - const seconds = interaction.options.getInteger('seconds') ?? 5 - const channel = interaction.options.getChannel('channel') ?? interaction.channel - const embedColor = Number(color.replace("#", "0x")); + const seconds = interaction.options.getInteger("seconds") ?? 5 + const channel = interaction.options.getChannel("channel") ?? interaction.channel + const embedColor = Number(color.replace("#", "0x")) if (seconds > 21600) { await channel.setRateLimitPerUser(21600) diff --git a/commands/update.js b/commands/update.js index da82247..dd0e92e 100644 --- a/commands/update.js +++ b/commands/update.js @@ -1,31 +1,31 @@ -const { SlashCommandBuilder } = require('discord.js'); -const { getGuild, getIGN, getHeadURL } = require('../utils/utils.js'); -const verify = require('../schemas/verifySchema.js') -const { color, hypixelGuildID } = require('../config/options.json'); -const { gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff, defaultMember } = require('../config/roles.json'); -const removeThese = [gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff]; +const { SlashCommandBuilder } = require("discord.js") +const { getGuild, getIGN, getHeadURL } = require("../utils/utils.js") +const verify = require("../schemas/verifySchema.js") +const { color, hypixelGuildID } = require("../config/options.json") +const { gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff, defaultMember } = require("../config/roles.json") +const removeThese = [gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff] module.exports = { - name: 'update', - description: 'Update your guild rank.', - type: 'slash', + name: "update", + description: "Update your guild rank.", + type: "slash", data: new SlashCommandBuilder() - .setName('update') - .setDescription('Update your guild rank.') + .setName("update") + .setDescription("Update your guild rank.") .setDMPermission(false), /** @param { import('discord.js').ChatInputCommandInteraction } interaction */ async execute(interaction) { - await interaction.deferReply(); + await interaction.deferReply() - const user1 = interaction.user; - const user = interaction.guild.members.cache.get(user1.id); + const user1 = interaction.user + const user = interaction.guild.members.cache.get(user1.id) const verifyData = await verify.findOne({ userID: user.id }) - const roleManage = user.roles; - const embedColor = Number(color.replace("#", "0x")); + const roleManage = user.roles + const embedColor = Number(color.replace("#", "0x")) if (!verifyData) { await interaction.editReply({ @@ -41,7 +41,7 @@ module.exports = { return } - const guild = await getGuild(verifyData.uuid); + const guild = await getGuild(verifyData.uuid) let guildID = "" if (!guild) { guildID = null @@ -49,8 +49,8 @@ module.exports = { guildID = guild._id } - const ign = await getIGN(verifyData.uuid); - const head = await getHeadURL(ign); + const ign = await getIGN(verifyData.uuid) + const head = await getHeadURL(ign) if (guildID !== hypixelGuildID) { for (let i = 0; i < removeThese.length; i++) { @@ -77,10 +77,10 @@ module.exports = { if (guildID === hypixelGuildID) { - const GuildMembers = guild.members; - const guildRank = GuildMembers.find(member => member.uuid === verifyData.uuid).rank; + const GuildMembers = guild.members + const guildRank = GuildMembers.find(member => member.uuid === verifyData.uuid).rank - if (guildRank === 'Guild Master') { + if (guildRank === "Guild Master") { for (let i = 0; i < removeThese.length; i++) { await roleManage.remove(removeThese[i], "Auto role removal. (Update)") @@ -107,7 +107,7 @@ module.exports = { }) } - if (guildRank === 'Manager') { + if (guildRank === "Manager") { for (let i = 0; i < removeThese.length; i++) { await roleManage.remove(removeThese[i], "Auto role removal. (Update)") @@ -134,7 +134,7 @@ module.exports = { }) } - if (guildRank === 'Moderator') { + if (guildRank === "Moderator") { for (let i = 0; i < removeThese.length; i++) { await roleManage.remove(removeThese[i], "Auto role removal. (Update)") @@ -162,7 +162,7 @@ module.exports = { } - if (guildRank === 'Beast') { + if (guildRank === "Beast") { for (let i = 0; i < removeThese.length; i++) { await roleManage.remove(removeThese[i], "Auto role removal. (Update)") @@ -189,7 +189,7 @@ module.exports = { return } - if (guildRank === 'Elite') { + if (guildRank === "Elite") { for (let i = 0; i < removeThese.length; i++) { await roleManage.remove(removeThese[i], "Auto role removal. (Update)") @@ -216,7 +216,7 @@ module.exports = { return } - if (guildRank === 'Member') { + if (guildRank === "Member") { for (let i = 0; i < removeThese.length; i++) { await roleManage.remove(removeThese[i], "Auto role removal. (Update)") @@ -243,7 +243,7 @@ module.exports = { return } - if (guildRank === 'Trial Member') { + if (guildRank === "Trial Member") { for (let i = 0; i < removeThese.length; i++) { await roleManage.remove(removeThese[i], "Auto role removal. (Update)") @@ -271,4 +271,4 @@ module.exports = { } } } -}; +} diff --git a/commands/uuid.js b/commands/uuid.js index cbae28b..986d776 100644 --- a/commands/uuid.js +++ b/commands/uuid.js @@ -1,18 +1,18 @@ -const { SlashCommandBuilder } = require('discord.js') -const { color } = require('../config/options.json') -const { getUUID, getIGN, getHeadURL, formatUuid } = require('../utils/utils.js') +const { SlashCommandBuilder } = require("discord.js") +const { color } = require("../config/options.json") +const { getUUID, getIGN, getHeadURL, formatUuid } = require("../utils/utils.js") module.exports = { - name: 'uuid', - description: 'Get a player\'s UUID', - type: 'slash', + name: "uuid", + description: "Get a player's UUID", + type: "slash", data: new SlashCommandBuilder() - .setName('uuid') - .setDescription('Get a player\'s UUID') + .setName("uuid") + .setDescription("Get a player's UUID") .addStringOption(option => option - .setName('ign') - .setDescription('Player\'s name') + .setName("ign") + .setDescription("Player's name") .setRequired(true) ), @@ -22,16 +22,16 @@ module.exports = { await interaction.deferReply() - const ign = interaction.options.getString('ign') + const ign = interaction.options.getString("ign") const uuid = await getUUID(ign) const formattedUuid = formatUuid(uuid) const newIgn = await getIGN(uuid) const head = await getHeadURL(ign) - const embedColor = Number(color.replace('#', '0x')) + const embedColor = Number(color.replace("#", "0x")) if (!uuid) { interaction.editReply({ - description: 'That player doesn\'t exist!', + description: "That player doesn't exist!", color: embedColor }) return diff --git a/commands/verify.js b/commands/verify.js index e8e61ff..099c915 100644 --- a/commands/verify.js +++ b/commands/verify.js @@ -1,9 +1,9 @@ -const { SlashCommandBuilder } = require("discord.js"); -const { getUUID, getPlayer, getGuild, getHeadURL } = require("../utils/utils.js"); -const { color, hypixelGuildID } = require("../config/options.json"); -const verify = require("../schemas/verifySchema.js"); -const mongoose = require("mongoose"); -const { gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff, defaultMember } = require("../config/roles.json"); +const { SlashCommandBuilder } = require("discord.js") +const { getUUID, getPlayer, getGuild, getHeadURL } = require("../utils/utils.js") +const { color, hypixelGuildID } = require("../config/options.json") +const verify = require("../schemas/verifySchema.js") +const mongoose = require("mongoose") +const { gm, manager, moderator, beast, elite, member, trialmember, guildRole, guildStaff, defaultMember } = require("../config/roles.json") module.exports = { name: "verify", @@ -22,17 +22,17 @@ module.exports = { /** @param { import('discord.js').ChatInputCommandInteraction } interaction */ async execute(interaction) { - await interaction.deferReply(); + await interaction.deferReply() const user1 = interaction.user - const user = interaction.guild.members.cache.get(user1.id); - const ign = interaction.options.getString("ign"); - const embedColor = Number(color.replace("#", "0x")); + const user = interaction.guild.members.cache.get(user1.id) + const ign = interaction.options.getString("ign") + const embedColor = Number(color.replace("#", "0x")) - const verifyData = await verify.findOne({ userID: user.id }); + const verifyData = await verify.findOne({ userID: user.id }) if (verifyData) { interaction.editReply("You are already verified.\n" + "Try running /update to update your roles.") - return; + return } if (!ign) { @@ -42,30 +42,30 @@ module.exports = { color: embedColor }] }) - return; + return } - const uuid = await getUUID(ign); + const uuid = await getUUID(ign) if (!uuid) { interaction.editReply({ embeds: [{ description: " That player does not exist.", color: embedColor }] - }); - return; + }) + return } - const head = await getHeadURL(ign); - const player = await getPlayer(uuid); + const head = await getHeadURL(ign) + const player = await getPlayer(uuid) if (!player) { interaction.editReply({ embeds: [{ description: " That player hasn't played Hypixel before.", color: embedColor }] - }); - return; + }) + return } let username = "" @@ -84,8 +84,8 @@ module.exports = { color: embedColor } ] - }); - return; + }) + return } if (!player.socialMedia.links.DISCORD) { @@ -97,8 +97,8 @@ module.exports = { color: embedColor } ] - }); - return; + }) + return } const linkedDiscord = player.socialMedia.links.DISCORD @@ -112,11 +112,11 @@ module.exports = { color: embedColor } ] - }); - return; + }) + return } - const guild = await getGuild(uuid); + const guild = await getGuild(uuid) let guildID = "" if (!guild) { guildID = null @@ -126,56 +126,56 @@ module.exports = { if (guildID === hypixelGuildID) { const GuildMembers = guild.members - const guildRank = GuildMembers.find((member) => member.uuid === player.uuid).rank; + const guildRank = GuildMembers.find((member) => member.uuid === player.uuid).rank if (guildRank === "Guild Master" && guildID === hypixelGuildID) { - await user.roles.add(gm, "Verification"); - await user.roles.add(guildRole, "Verification"); - await user.roles.add(guildStaff, "Verification"); + await user.roles.add(gm, "Verification") + await user.roles.add(guildRole, "Verification") + await user.roles.add(guildStaff, "Verification") } if (guildRank === "Manager" && guildID === hypixelGuildID) { - await user.roles.add(manager, "Verification"); - await user.roles.add(guildRole, "Verification"); - await user.roles.add(guildStaff, "Verification"); + await user.roles.add(manager, "Verification") + await user.roles.add(guildRole, "Verification") + await user.roles.add(guildStaff, "Verification") } if (guildRank === "Moderator" && guildID === hypixelGuildID) { - await user.roles.add(moderator, "Verification"); - await user.roles.add(guildRole, "Verification"); - await user.roles.add(guildStaff, "Verification"); + await user.roles.add(moderator, "Verification") + await user.roles.add(guildRole, "Verification") + await user.roles.add(guildStaff, "Verification") } if (guildRank === "Beast" && guildID === hypixelGuildID) { - await user.roles.add(beast, "Verification"); - await user.roles.add(guildRole, "Verification"); + await user.roles.add(beast, "Verification") + await user.roles.add(guildRole, "Verification") } if (guildRank === "Elite" && guildID === hypixelGuildID) { - await user.roles.add(elite, "Verification"); - await user.roles.add(guildRole, "Verification"); + await user.roles.add(elite, "Verification") + await user.roles.add(guildRole, "Verification") } if (guildRank === "Member" && guildID === hypixelGuildID) { - await user.roles.add(member, "Verification"); - await user.roles.add(guildRole, "Verification"); + await user.roles.add(member, "Verification") + await user.roles.add(guildRole, "Verification") } if (guildRank === "Trial Member" && guildID === hypixelGuildID) { - await user.roles.add(trialmember, "Verification"); - await user.roles.add(guildRole, "Verification"); + await user.roles.add(trialmember, "Verification") + await user.roles.add(guildRole, "Verification") } } - await user.roles.add(defaultMember, "Verification"); + await user.roles.add(defaultMember, "Verification") const newVerify = new verify({ _id: new mongoose.Types.ObjectId(), userID: user.id, uuid: uuid - }); + }) - await newVerify.save(); + await newVerify.save() await interaction.editReply({ embeds: [ @@ -192,6 +192,6 @@ module.exports = { } } ] - }); + }) } -}; +} diff --git a/commands/whois.js b/commands/whois.js index c8dde8a..5adfd34 100644 --- a/commands/whois.js +++ b/commands/whois.js @@ -1,20 +1,20 @@ -const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require('discord.js'); -const { getIGN, getHeadURL } = require('../utils/utils.js') -const { color } = require('../config/options.json'); -const verify = require('../schemas/verifySchema.js'); +const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require("discord.js") +const { getIGN, getHeadURL } = require("../utils/utils.js") +const { color } = require("../config/options.json") +const verify = require("../schemas/verifySchema.js") module.exports = { - name: 'whois', - description: 'Get\'s the ign of a user.', - type: 'slash', + name: "whois", + description: "Get's the ign of a user.", + type: "slash", data: new SlashCommandBuilder() - .setName('whois') - .setDescription('Get\'s the ign of a user.') + .setName("whois") + .setDescription("Get's the ign of a user.") .addUserOption(option => option - .setName('user') - .setDescription('The user to get the ign of.') + .setName("user") + .setDescription("The user to get the ign of.") .setRequired(true)) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .setDMPermission(false), @@ -23,18 +23,18 @@ module.exports = { async execute(interaction) { - await interaction.deferReply(); + await interaction.deferReply() - const user = interaction.options.getUser('user'); - const embedColor = Number(color.replace("#", "0x")); + const user = interaction.options.getUser("user") + const embedColor = Number(color.replace("#", "0x")) - const verifiedUser = await verify.findOne({ userID: user.id }); + const verifiedUser = await verify.findOne({ userID: user.id }) if (!verifiedUser) { - interaction.editReply({ content: 'This user has not verified their account.' }); + interaction.editReply({ content: "This user has not verified their account." }) return } - const ign = await getIGN(verifiedUser.uuid); + const ign = await getIGN(verifiedUser.uuid) const head = await getHeadURL(ign) await interaction.editReply({ @@ -53,4 +53,4 @@ module.exports = { }) } -}; +} diff --git a/events/buttons/checkstats.js b/events/buttons/checkstats.js index 9e80b2e..7357970 100644 --- a/events/buttons/checkstats.js +++ b/events/buttons/checkstats.js @@ -1,25 +1,25 @@ -const { color } = require('../../config/options.json'); -const guildapp = require('../../schemas/guildAppSchema.js'); -const { bwfkdr, bwstars, bwwins, swstars, duelswins, duelswlr } = require('../../config/reqs.json'); -const { hypixelLevel, bedwarsLevel, skywarsLevel, getPlayer, getGuild, getHeadURL } = require("../../utils/utils.js"); +const { color } = require("../../config/options.json") +const guildapp = require("../../schemas/guildAppSchema.js") +const { bwfkdr, bwstars, bwwins, swstars, duelswins, duelswlr } = require("../../config/reqs.json") +const { hypixelLevel, bedwarsLevel, skywarsLevel, getPlayer, getGuild, getHeadURL } = require("../../utils/utils.js") module.exports = { - name: 'checkstats', - description: 'Check your stats.', - type: 'button', + name: "checkstats", + description: "Check your stats.", + type: "button", /** @param {import('discord.js').ButtonInteraction} interaction */ async execute(interaction) { - await interaction.deferReply(); + await interaction.deferReply() - const message = interaction.message; - const embed = message.embeds[0]; + const message = interaction.message + const embed = message.embeds[0] const applicantId = embed.footer.text.split(" ")[1] const guildappdata = await guildapp.findOne({ userID: applicantId }) - const uuid = guildappdata.uuid; - const embedColor = Number(color.replace("#", "0x")); + const uuid = guildappdata.uuid + const embedColor = Number(color.replace("#", "0x")) const player = await getPlayer(uuid) if (!player) { @@ -28,34 +28,34 @@ module.exports = { description: "That player hasn't played Hypixel before.", color: embedColor }] - }); - return; + }) + return } const ign = player.playername const head = await getHeadURL(ign) - const rank2 = player.newPackageRank; - const monthlyRank = player.monthlyPackageRank; + const rank2 = player.newPackageRank + const monthlyRank = player.monthlyPackageRank let rank = "" - if (rank2 === 'VIP') { + if (rank2 === "VIP") { rank = "[VIP] " - } else if (rank2 === 'VIP_PLUS') { + } else if (rank2 === "VIP_PLUS") { rank = "[VIP+] " - } else if (rank2 === 'MVP') { + } else if (rank2 === "MVP") { rank = "[MVP] " - } else if (rank2 === 'MVP_PLUS' && monthlyRank === 'NONE') { + } else if (rank2 === "MVP_PLUS" && monthlyRank === "NONE") { rank = "[MVP+] " - } else if (rank2 === 'MVP_PLUS' && monthlyRank === 'SUPERSTAR') { + } else if (rank2 === "MVP_PLUS" && monthlyRank === "SUPERSTAR") { rank = "[MVP++] " } const guild = await getGuild(uuid) let guildName = "" if (!guild) { - guildName = "None"; + guildName = "None" } else { - guildName = guild.name; + guildName = guild.name } let guildTag = "" @@ -68,35 +68,35 @@ module.exports = { } //bedwars level - const hsbwexp = player.stats.Bedwars.Experience; - const hsbwstars = bedwarsLevel(hsbwexp); + const hsbwexp = player.stats.Bedwars.Experience + const hsbwstars = bedwarsLevel(hsbwexp) // bedwars fkdr - const hsbwfk = player.stats.Bedwars.final_kills_bedwars; - const hsbwfd = player.stats.Bedwars.final_deaths_bedwars; - const hsbwfkdr = hsbwfk / hsbwfd; + const hsbwfk = player.stats.Bedwars.final_kills_bedwars + const hsbwfd = player.stats.Bedwars.final_deaths_bedwars + const hsbwfkdr = hsbwfk / hsbwfd // bedwars wins - const hsbwwins = player.stats.Bedwars.wins_bedwars; + const hsbwwins = player.stats.Bedwars.wins_bedwars // skywars level - const hsswexp = player.stats.SkyWars.skywars_experience; - const hsswstars = skywarsLevel(hsswexp); + const hsswexp = player.stats.SkyWars.skywars_experience + const hsswstars = skywarsLevel(hsswexp) // skywars kdr - const hsswkills = player.stats.SkyWars.kills; - const hsswdeaths = player.stats.SkyWars.deaths; - const hsswkd = hsswkills / hsswdeaths; + const hsswkills = player.stats.SkyWars.kills + const hsswdeaths = player.stats.SkyWars.deaths + const hsswkd = hsswkills / hsswdeaths //skywars wins - const hsswwins = player.stats.SkyWars.wins; + const hsswwins = player.stats.SkyWars.wins // dueks kdr const hsduelskills = player.stats.Duels.kills const hsduelsdeaths = player.stats.Duels.deaths const hsduelskd = hsduelskills / hsduelsdeaths // duels wins - const hsduelswins = player.stats.Duels.wins; + const hsduelswins = player.stats.Duels.wins // duels wlr - const hsduelslosses = player.stats.Duels.losses; - const hsduelswlr = hsduelswins / hsduelslosses; + const hsduelslosses = player.stats.Duels.losses + const hsduelswlr = hsduelswins / hsduelslosses // network level - const hypixelExp = player.networkExp; - const level = hypixelLevel(hypixelExp); + const hypixelExp = player.networkExp + const level = hypixelLevel(hypixelExp) let bwtitle = "" let swtitle = "" @@ -168,6 +168,6 @@ module.exports = { } ] }] - }); + }) } -}; +} diff --git a/events/buttons/guildapplicationaccept.js b/events/buttons/guildapplicationaccept.js index 4be7a03..e2cea86 100644 --- a/events/buttons/guildapplicationaccept.js +++ b/events/buttons/guildapplicationaccept.js @@ -1,34 +1,34 @@ -const { ActionRowBuilder, ButtonStyle, ButtonBuilder } = require('discord.js'); -const { color } = require('../../config/options.json'); -const mongoose = require("mongoose"); -const guildapp = require('../../schemas/guildAppSchema.js'); -const waitingList = require('../../schemas/waitinglistSchema.js'); -const { waitingListRole } = require('../../config/roles.json'); +const { ActionRowBuilder, ButtonStyle, ButtonBuilder } = require("discord.js") +const { color } = require("../../config/options.json") +const mongoose = require("mongoose") +const guildapp = require("../../schemas/guildAppSchema.js") +const waitingList = require("../../schemas/waitinglistSchema.js") +const { waitingListRole } = require("../../config/roles.json") module.exports = { - name: 'guildapplicationaccept', - description: 'Accept a guild application.', - type: 'button', + name: "guildapplicationaccept", + description: "Accept a guild application.", + type: "button", /** @param {import('discord.js').ButtonInteraction} interaction */ async execute(interaction) { - await interaction.deferReply(); + await interaction.deferReply() - const user = interaction.user; - const guild = interaction.guild; - const embedColor = Number(color.replace("#", "0x")); + const user = interaction.user + const guild = interaction.guild + const embedColor = Number(color.replace("#", "0x")) - const message = interaction.message; - const embed = message.embeds[0]; + const message = interaction.message + const embed = message.embeds[0] const applicantId = embed.footer.text.split(" ")[1] - const applicantIGN1 = embed.fields[0].value; - const applicantIGN = applicantIGN1.replaceAll("`", ""); + const applicantIGN1 = embed.fields[0].value + const applicantIGN = applicantIGN1.replaceAll("`", "") const applicant = await guild.members.fetch(applicantId) - const applicantUsername = applicant.user.username + "#" + applicant.user.discriminator; + const applicantUsername = applicant.user.username + "#" + applicant.user.discriminator await message.edit({ components: [ @@ -50,18 +50,18 @@ module.exports = { .setDisabled(true) ) ] - }); + }) await applicant.send({ embeds: [{ - description: `Your application for the Illegitimate guild has been accepted.`, + description: "Your application for the Illegitimate guild has been accepted.", color: embedColor }] - }); + }) const applicantEntry = await guildapp.findOne({ userID: applicantId }) - const applicantUUID = applicantEntry.uuid; - const time = Date.now(); + const applicantUUID = applicantEntry.uuid + const time = Date.now() const waitingListAdd = new waitingList({ _id: new mongoose.Types.ObjectId(), @@ -69,12 +69,12 @@ module.exports = { uuid: applicantUUID, IGN: applicantIGN, timestamp: time - }); + }) - await waitingListAdd.save(); + await waitingListAdd.save() - await applicant.roles.add(waitingListRole); - await guildapp.findOneAndDelete({ userID: applicantId }); + await applicant.roles.add(waitingListRole) + await guildapp.findOneAndDelete({ userID: applicantId }) await interaction.editReply({ @@ -90,6 +90,6 @@ module.exports = { text: "ID: " + applicant.id } }] - }); + }) } -}; +} diff --git a/events/buttons/guildapplicationdeny.js b/events/buttons/guildapplicationdeny.js index 99ad2b1..d249590 100644 --- a/events/buttons/guildapplicationdeny.js +++ b/events/buttons/guildapplicationdeny.js @@ -1,27 +1,27 @@ -const { ModalBuilder, ActionRowBuilder, TextInputBuilder, TextInputStyle } = require('discord.js'); +const { ModalBuilder, ActionRowBuilder, TextInputBuilder, TextInputStyle } = require("discord.js") module.exports = { - name: 'guildapplicationdeny', - description: 'Deny a guild application.', - type: 'button', + name: "guildapplicationdeny", + description: "Deny a guild application.", + type: "button", /** @param {import('discord.js').ButtonInteraction} interaction */ async execute(interaction) { const modal = new ModalBuilder() - .setTitle('Deny Reason') - .setCustomId('denyreasonbox') + .setTitle("Deny Reason") + .setCustomId("denyreasonbox") .setComponents( new ActionRowBuilder().setComponents( new TextInputBuilder() - .setLabel('Deny Reason') - .setCustomId('denyreason') + .setLabel("Deny Reason") + .setCustomId("denyreason") .setStyle(TextInputStyle.Paragraph) - .setPlaceholder('Enter a reason for denying the application') + .setPlaceholder("Enter a reason for denying the application") .setRequired(false) ) ) - await interaction.showModal(modal); + await interaction.showModal(modal) } -}; +} diff --git a/events/buttons/guildapply.js b/events/buttons/guildapply.js index ce256ed..1ef0443 100644 --- a/events/buttons/guildapply.js +++ b/events/buttons/guildapply.js @@ -1,26 +1,26 @@ -const { ButtonBuilder, ButtonStyle, ActionRowBuilder, EmbedBuilder } = require('discord.js'); -const { color } = require('../../config/options.json'); -const { largeM, smallM, ignM } = require('../../config/limitmessages.json') -const { applicationsChannel } = require('../../config/options.json'); -const questions = require('../../config/questions.json'); -const { guildRole } = require('../../config/roles.json') -const { getUUID } = require('../../utils/utils.js') -const mongoose = require('mongoose'); -const guildapp = require('../../schemas/guildAppSchema.js'); +const { ButtonBuilder, ButtonStyle, ActionRowBuilder, EmbedBuilder } = require("discord.js") +const { color } = require("../../config/options.json") +const { largeM, smallM, ignM } = require("../../config/limitmessages.json") +const { applicationsChannel } = require("../../config/options.json") +const questions = require("../../config/questions.json") +const { guildRole } = require("../../config/roles.json") +const { getUUID } = require("../../utils/utils.js") +const mongoose = require("mongoose") +const guildapp = require("../../schemas/guildAppSchema.js") module.exports = { - name: 'guildapply', - description: 'Guild application button.', - type: 'button', + name: "guildapply", + description: "Guild application button.", + type: "button", /** @param {import('discord.js').ButtonInteraction} interaction */ async execute(interaction) { - const user = interaction.user; - const guild = interaction.guild; - const embedColor = Number(color.replace("#", "0x")); - const userRoles = guild.members.cache.get(user.id).roles.cache.map(role => role.id); + const user = interaction.user + const guild = interaction.guild + const embedColor = Number(color.replace("#", "0x")) + const userRoles = guild.members.cache.get(user.id).roles.cache.map(role => role.id) const guildQuestions = questions.guild function qu(n) { @@ -31,19 +31,19 @@ module.exports = { return guildQuestions[n - 1].r } - if (interaction.customId === 'guildapply') { + if (interaction.customId === "guildapply") { - await interaction.deferReply({ ephemeral: true }); + await interaction.deferReply({ ephemeral: true }) if (userRoles.includes(guildRole)) { - await interaction.editReply({ content: "You are already a member of the guild.", ephemeral: true }); + await interaction.editReply({ content: "You are already a member of the guild.", ephemeral: true }) return } - const application = await guildapp.findOne({ userID: user.id }); + const application = await guildapp.findOne({ userID: user.id }) if (application) { - await interaction.editReply({ content: "You already have an application in progress.", ephemeral: true }); + await interaction.editReply({ content: "You already have an application in progress.", ephemeral: true }) return } @@ -60,7 +60,7 @@ module.exports = { try { await user.send({ embeds: [{ - title: 'Guild Application', + title: "Guild Application", description: "Please answer the following questions to apply for the guild.\n" + "If you wish to cancel your application, please type `cancel` at any time.\n" + "If you wish to proceed with your application, please type `yes`.\n\n" + @@ -70,7 +70,7 @@ module.exports = { }] }) } catch (error) { - await interaction.editReply({ content: "Please enable your DMs.", ephemeral: true }); + await interaction.editReply({ content: "Please enable your DMs.", ephemeral: true }) return } @@ -81,17 +81,17 @@ module.exports = { filter: m => m.author.id === user.id, max: 1, time: 1000 * 60 - }); + }) if (input.size === 0) { - await user.send({ embeds: [tooLong] }); + await user.send({ embeds: [tooLong] }) return } - if (input.first().content.toLowerCase() !== 'yes') { - await user.send({ embeds: [cancelled] }); + if (input.first().content.toLowerCase() !== "yes") { + await user.send({ embeds: [cancelled] }) return } if (input.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); + await user.send({ embeds: [attachments] }) return } @@ -110,17 +110,17 @@ module.exports = { filter: m => m.author.id === user.id, max: 1, time: 1000 * 60 * 5, - }); + }) if (answer1.size === 0) { await user.send({ embeds: [tooLong] }) return } - if (answer1.first().content.toLowerCase() === 'cancel') { + if (answer1.first().content.toLowerCase() === "cancel") { await user.send({ embeds: [cancelled] }) return } if (answer1.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); + await user.send({ embeds: [attachments] }) return } if (answer1.first().content > 16) { @@ -160,17 +160,17 @@ module.exports = { filter: m => m.author.id === user.id, max: 1, time: 1000 * 60 * 15 - }); + }) if (answer2.size === 0) { await user.send({ embeds: [tooLong] }) return } - if (answer2.first().content.toLowerCase() === 'cancel') { + if (answer2.first().content.toLowerCase() === "cancel") { await user.send({ embeds: [cancelled] }) return } if (answer2.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); + await user.send({ embeds: [attachments] }) return } if (answer2.first().content.size > 8) { @@ -199,17 +199,17 @@ module.exports = { filter: m => m.author.id === user.id, max: 1, time: 1000 * 60 * 15 - }); + }) if (answer3.size === 0) { await user.send({ embeds: [tooLong] }) return } - if (answer3.first().content.toLowerCase() === 'cancel') { + if (answer3.first().content.toLowerCase() === "cancel") { await user.send({ embeds: [cancelled] }) return } if (answer3.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); + await user.send({ embeds: [attachments] }) return } if (answer3.first().content > 128) { @@ -238,17 +238,17 @@ module.exports = { filter: m => m.author.id === user.id, max: 1, time: 1000 * 60 * 15 - }); + }) if (answer4.size === 0) { await user.send({ embeds: [tooLong] }) return } - if (answer4.first().content.toLowerCase() === 'cancel') { + if (answer4.first().content.toLowerCase() === "cancel") { await user.send({ embeds: [cancelled] }) return } if (answer4.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); + await user.send({ embeds: [attachments] }) return } if (answer4.first().content > 256) { @@ -276,17 +276,17 @@ module.exports = { filter: m => m.author.id === user.id, max: 1, time: 1000 * 60 * 15 - }); + }) if (answer5.size === 0) { await user.send({ embeds: [tooLong] }) return } - if (answer5.first().content.toLowerCase() === 'cancel') { + if (answer5.first().content.toLowerCase() === "cancel") { await user.send({ embeds: [cancelled] }) return } if (answer5.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); + await user.send({ embeds: [attachments] }) return } if (answer5.first().content > 128) { @@ -314,17 +314,17 @@ module.exports = { filter: m => m.author.id === user.id, max: 1, time: 1000 * 60 * 15 - }); + }) if (answer6.size === 0) { await user.send({ embeds: [tooLong] }) return } - if (answer6.first().content.toLowerCase() === 'cancel') { + if (answer6.first().content.toLowerCase() === "cancel") { await user.send({ embeds: [cancelled] }) return } if (answer6.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); + await user.send({ embeds: [attachments] }) return } if (answer6.first().content > 256) { @@ -352,17 +352,17 @@ module.exports = { filter: m => m.author.id === user.id, max: 1, time: 1000 * 60 * 15 - }); + }) if (answer7.size === 0) { await user.send({ embeds: [tooLong] }) return } - if (answer7.first().content.toLowerCase() === 'cancel') { + if (answer7.first().content.toLowerCase() === "cancel") { await user.send({ embeds: [cancelled] }) return } if (answer7.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); + await user.send({ embeds: [attachments] }) return } if (answer7.first().content > 128) { @@ -390,17 +390,17 @@ module.exports = { filter: m => m.author.id === user.id, max: 1, time: 1000 * 60 * 15 - }); + }) if (answer8.size === 0) { await user.send({ embeds: [tooLong] }) return } - if (answer8.first().content.toLowerCase() === 'cancel') { + if (answer8.first().content.toLowerCase() === "cancel") { await user.send({ embeds: [cancelled] }) return } if (answer8.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); + await user.send({ embeds: [attachments] }) return } if (answer8.first().content > 64) { @@ -424,17 +424,17 @@ module.exports = { filter: m => m.author.id === user.id, max: 1, time: 1000 * 60 * 5 - }); + }) if (final.size === 0) { - await user.send({ embeds: [tooLong] }); + await user.send({ embeds: [tooLong] }) return } - if (final.first().content.toLowerCase() !== 'yes') { - await user.send({ embeds: [cancelled] }); + if (final.first().content.toLowerCase() !== "yes") { + await user.send({ embeds: [cancelled] }) return } if (final.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); + await user.send({ embeds: [attachments] }) return } @@ -453,7 +453,7 @@ module.exports = { await newGuildApp.save() - const channel = guild.channels.cache.get(applicationsChannel); + const channel = guild.channels.cache.get(applicationsChannel) await channel.send({ embeds: [{ title: user.username + "#" + user.discriminator + " - Guild Application", @@ -516,7 +516,7 @@ module.exports = { .setStyle(ButtonStyle.Secondary) ) ] - }); + }) } } diff --git a/events/buttons/guildinactivitylog.js b/events/buttons/guildinactivitylog.js index 0d5abaa..0c61989 100644 --- a/events/buttons/guildinactivitylog.js +++ b/events/buttons/guildinactivitylog.js @@ -1,9 +1,9 @@ -const { ButtonBuilder, ActionRowBuilder, ButtonStyle, EmbedBuilder } = require("discord.js"); -const { gm, manager, moderator, beast, member, trialmember, guildStaff, guildRole } = require("../../config/roles.json"); -const { ignM, smallM, largeM } = require("../../config/limitmessages.json"); -const { ia1, ia2, ia3, ria1, ria2, ria3 } = require("../../config/questions.json"); -const { color, inactivityLogChannel } = require("../../config/options.json"); -const guildRoles = [gm, manager, moderator, beast, member, trialmember, guildStaff, guildRole]; +const { ButtonBuilder, ActionRowBuilder, ButtonStyle, EmbedBuilder } = require("discord.js") +const { gm, manager, moderator, beast, member, trialmember, guildStaff, guildRole } = require("../../config/roles.json") +const { ignM, smallM, largeM } = require("../../config/limitmessages.json") +const { ia1, ia2, ia3, ria1, ria2, ria3 } = require("../../config/questions.json") +const { color, inactivityLogChannel } = require("../../config/options.json") +const guildRoles = [gm, manager, moderator, beast, member, trialmember, guildStaff, guildRole] module.exports = { name: "guildinactivitylog", @@ -13,28 +13,28 @@ module.exports = { /** @param {import('discord.js').ButtonInteraction} interaction */ async execute(interaction) { - const guild = interaction.guild; - const user = interaction.user; - const embedColor = Number(color.replace("#", "0x")); - const userRoles = guild.members.cache.get(user.id).roles.cache; - const mojangAPI = "https://api.mojang.com/users/profiles/minecraft/"; + const guild = interaction.guild + const user = interaction.user + const embedColor = Number(color.replace("#", "0x")) + const userRoles = guild.members.cache.get(user.id).roles.cache + const mojangAPI = "https://api.mojang.com/users/profiles/minecraft/" if (!userRoles.some((role) => guildRoles.includes(role.id))) { return await interaction.reply({ content: "Only guild members can use this button.", ephemeral: true - }); + }) } const tooLong = new EmbedBuilder() .setDescription("You took too long to respond.") - .setColor(embedColor); + .setColor(embedColor) const cancelled = new EmbedBuilder() .setDescription("You have cancelled your application.") - .setColor(embedColor); + .setColor(embedColor) const attachments = new EmbedBuilder() .setDescription("You have uploaded an attachment. Please do not upload images, videos, or GIFS.") - .setColor(embedColor); + .setColor(embedColor) try { await user.send({ @@ -46,29 +46,29 @@ module.exports = { "You have a minute to respond to this message.", color: embedColor }] - }); + }) } catch (error) { - return await interaction.reply({ content: "Please enable your DMs.", ephemeral: true }); + return await interaction.reply({ content: "Please enable your DMs.", ephemeral: true }) } - await interaction.reply({ content: "Please check your DMs.", ephemeral: true }); + await interaction.reply({ content: "Please check your DMs.", ephemeral: true }) const input = await user.dmChannel.awaitMessages({ filter: (m) => m.author.id === user.id, max: 1, time: 1000 * 60 - }); + }) if (input.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); - return; + await user.send({ embeds: [attachments] }) + return } if (input.size === 0) { - await user.send({ embeds: [tooLong] }); - return; + await user.send({ embeds: [tooLong] }) + return } if (input.first().content.toLowerCase() !== "yes") { - await user.send({ embeds: [cancelled] }); - return; + await user.send({ embeds: [cancelled] }) + return } await user.send({ @@ -80,16 +80,16 @@ module.exports = { text: "You have 5 minutes to respond to this message." } }] - }); + }) const answer1 = await user.dmChannel.awaitMessages({ filter: (m) => m.author.id === user.id, max: 1, time: 1000 * 60 * 5 - }); + }) if (answer1.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); - return; + await user.send({ embeds: [attachments] }) + return } if (answer1.first().content > 16) { await user.send({ @@ -97,29 +97,29 @@ module.exports = { description: "Max character limit is 16.", color: embedColor }] - }); - return; + }) + return } try { - await fetch(mojangAPI + answer1.first().content); + await fetch(mojangAPI + answer1.first().content) } catch (error) { await user.send({ embeds: [{ description: "That is not a valid Minecraft username.\n" + "Application cancelled.", color: embedColor }] - }); - return; + }) + return } if (answer1.size === 0) { - await user.send({ embeds: [tooLong] }); - return; + await user.send({ embeds: [tooLong] }) + return } if (answer1.first().content.toLowerCase() === "cancel") { - await user.send({ embeds: [cancelled] }); - return; + await user.send({ embeds: [cancelled] }) + return } - const answer1_1 = answer1.first().content; + const answer1_1 = answer1.first().content await user.send({ embeds: [{ @@ -130,15 +130,15 @@ module.exports = { text: "You have 5 minutes to respond to this message." } }] - }); + }) const answer2 = await user.dmChannel.awaitMessages({ filter: (m) => m.author.id === user.id, max: 1, time: 1000 * 60 * 5 - }); + }) if (answer2.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); - return; + await user.send({ embeds: [attachments] }) + return } if (answer2.first().content > 128) { await user.send({ @@ -146,18 +146,18 @@ module.exports = { description: "Max character limit is 128.", color: embedColor }] - }); - return; + }) + return } if (answer1.size === 0) { - await user.send({ embeds: [tooLong] }); - return; + await user.send({ embeds: [tooLong] }) + return } if (answer1.first().content.toLowerCase() === "cancel") { - await user.send({ embeds: [cancelled] }); - return; + await user.send({ embeds: [cancelled] }) + return } - const answer2_1 = answer1.first().content; + const answer2_1 = answer1.first().content await user.send({ embeds: [{ @@ -168,15 +168,15 @@ module.exports = { text: "You have 15 minutes to respond to this message." } }] - }); + }) const answer3 = await user.dmChannel.awaitMessages({ filter: (m) => m.author.id === user.id, max: 1, time: 1000 * 60 * 15 - }); + }) if (answer3.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); - return; + await user.send({ embeds: [attachments] }) + return } if (answer3.first().content > 256) { await user.send({ @@ -184,18 +184,18 @@ module.exports = { description: "Max character limit is 256", color: embedColor }] - }); - return; + }) + return } if (answer1.size === 0) { - await user.send({ embeds: [tooLong] }); - return; + await user.send({ embeds: [tooLong] }) + return } if (answer1.first().content.toLowerCase() === "cancel") { - await user.send({ embeds: [cancelled] }); - return; + await user.send({ embeds: [cancelled] }) + return } - const answer3_1 = answer1.first().content; + const answer3_1 = answer1.first().content await user.send({ embeds: [{ @@ -207,17 +207,17 @@ module.exports = { filter: m => m.author.id === user.id, max: 1, time: 1000 * 60 * 5 - }); + }) if (final.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); + await user.send({ embeds: [attachments] }) return } if (final.size === 0) { - await user.send({ embeds: [tooLong] }); + await user.send({ embeds: [tooLong] }) return } - if (final.first().content.toLowerCase() !== 'yes') { - await user.send({ embeds: [cancelled] }); + if (final.first().content.toLowerCase() !== "yes") { + await user.send({ embeds: [cancelled] }) return } @@ -228,7 +228,7 @@ module.exports = { }] }) - const appChannel = await guild.channels.cache.get(inactivityLogChannel); + const appChannel = await guild.channels.cache.get(inactivityLogChannel) await appChannel.send({ embeds: [{ @@ -268,6 +268,6 @@ module.exports = { .setStyle(ButtonStyle.Danger), ) ] - }); + }) } -}; +} diff --git a/events/buttons/inactiveapplicationaccept.js b/events/buttons/inactiveapplicationaccept.js index 009e53b..716d98f 100644 --- a/events/buttons/inactiveapplicationaccept.js +++ b/events/buttons/inactiveapplicationaccept.js @@ -7,7 +7,7 @@ module.exports = { async execute(interaction) { - await interaction.reply({ content: "This button is currently disabled.", ephemeral: true }); + await interaction.reply({ content: "This button is currently disabled.", ephemeral: true }) } } diff --git a/events/buttons/inactiveapplicationdeny.js b/events/buttons/inactiveapplicationdeny.js index 4878755..e553a82 100644 --- a/events/buttons/inactiveapplicationdeny.js +++ b/events/buttons/inactiveapplicationdeny.js @@ -7,7 +7,7 @@ module.exports = { async execute(interaction) { - await interaction.reply({ content: "This button is currently disabled.", ephemeral: true }); + await interaction.reply({ content: "This button is currently disabled.", ephemeral: true }) } } diff --git a/events/buttons/staffapplicationaccept.js b/events/buttons/staffapplicationaccept.js index 8e582dc..a0666a5 100644 --- a/events/buttons/staffapplicationaccept.js +++ b/events/buttons/staffapplicationaccept.js @@ -1,33 +1,33 @@ -const { ActionRowBuilder, ButtonBuilder, ButtonStyle } = require('discord.js'); -const { color } = require('../../config/options.json'); -const staffapp = require('../../schemas/staffAppSchema.js'); +const { ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js") +const { color } = require("../../config/options.json") +const staffapp = require("../../schemas/staffAppSchema.js") module.exports = { - name: 'staffapplicationaccept', - description: 'Accept a staff application.', - type: 'button', + name: "staffapplicationaccept", + description: "Accept a staff application.", + type: "button", /** @param {import('discord.js').ButtonInteraction} interaction */ async execute(interaction) { - const user = interaction.user; - const guild = interaction.guild; - const embedColor = Number(color.replace("#", "0x")); + const user = interaction.user + const guild = interaction.guild + const embedColor = Number(color.replace("#", "0x")) - const message = interaction.message; - const embed = message.embeds[0]; + const message = interaction.message + const embed = message.embeds[0] const applicantId = embed.footer.text.split(" ")[1] const applicant = await guild.members.fetch(applicantId) - const applicantUsername = applicant.user.username + "#" + applicant.user.discriminator; + const applicantUsername = applicant.user.username + "#" + applicant.user.discriminator await applicant.send({ embeds: [{ - description: `Your application for the Illegitimate staff team has been accepted.`, + description: "Your application for the Illegitimate staff team has been accepted.", color: embedColor }] - }); + }) await message.edit({ components: [ @@ -44,9 +44,9 @@ module.exports = { .setDisabled(true) ) ] - }); + }) - await staffapp.findOneAndDelete({ userId: applicantId }); + await staffapp.findOneAndDelete({ userId: applicantId }) await interaction.reply({ embeds: [{ @@ -61,7 +61,7 @@ module.exports = { text: "ID: " + applicantId } }] - }); + }) } } diff --git a/events/buttons/staffapplicationdeny.js b/events/buttons/staffapplicationdeny.js index 2215456..e8c8995 100644 --- a/events/buttons/staffapplicationdeny.js +++ b/events/buttons/staffapplicationdeny.js @@ -1,27 +1,27 @@ -const { ModalBuilder, ActionRowBuilder, TextInputBuilder, TextInputStyle } = require('discord.js'); +const { ModalBuilder, ActionRowBuilder, TextInputBuilder, TextInputStyle } = require("discord.js") module.exports = { - name: 'staffapplicationdeny', - description: 'Deny a guild application.', - type: 'button', + name: "staffapplicationdeny", + description: "Deny a guild application.", + type: "button", /** @param {import('discord.js').ButtonInteraction} interaction */ async execute(interaction) { const modal = new ModalBuilder() - .setTitle('Deny Reason') - .setCustomId('staffdenyreasonbox') + .setTitle("Deny Reason") + .setCustomId("staffdenyreasonbox") .setComponents( new ActionRowBuilder().setComponents( new TextInputBuilder() - .setLabel('Deny Reason') - .setCustomId('staffdenyreason') + .setLabel("Deny Reason") + .setCustomId("staffdenyreason") .setStyle(TextInputStyle.Paragraph) - .setPlaceholder('Enter a reason for denying the application') + .setPlaceholder("Enter a reason for denying the application") .setRequired(false) ) ) - await interaction.showModal(modal); + await interaction.showModal(modal) } -}; +} diff --git a/events/buttons/staffapply.js b/events/buttons/staffapply.js index 9a8db18..ad6b8cc 100644 --- a/events/buttons/staffapply.js +++ b/events/buttons/staffapply.js @@ -1,30 +1,30 @@ -const { ButtonBuilder, ButtonStyle, ActionRowBuilder, EmbedBuilder } = require('discord.js'); -const { color } = require('../../config/options.json'); -const { largeM, ignM } = require('../../config/limitmessages.json') -const { staffApplicationsChannel } = require('../../config/options.json'); -const questions = require('../../config/questions.json'); -const { guildRole, guildStaff } = require('../../config/roles.json') -const mongoose = require('mongoose'); -const staffapp = require('../../schemas/staffAppSchema.js'); -const settings = require("../../schemas/settingsSchema.js"); -const { getUUID } = require('../../utils/utils.js') +const { ButtonBuilder, ButtonStyle, ActionRowBuilder, EmbedBuilder } = require("discord.js") +const { color } = require("../../config/options.json") +const { largeM, ignM } = require("../../config/limitmessages.json") +const { staffApplicationsChannel } = require("../../config/options.json") +const questions = require("../../config/questions.json") +const { guildRole, guildStaff } = require("../../config/roles.json") +const mongoose = require("mongoose") +const staffapp = require("../../schemas/staffAppSchema.js") +const settings = require("../../schemas/settingsSchema.js") +const { getUUID } = require("../../utils/utils.js") const dev = process.env.DEV module.exports = { - name: 'staffapply', - description: 'Apply for the staff team.', - type: 'button', + name: "staffapply", + description: "Apply for the staff team.", + type: "button", /** @param {import('discord.js').ButtonInteraction} interaction */ async execute(interaction) { - const user = interaction.user; - const guild = interaction.guild; - const embedColor = Number(color.replace("#", "0x")); - const userRoles = interaction.member.roles.cache; + const user = interaction.user + const guild = interaction.guild + const embedColor = Number(color.replace("#", "0x")) + const userRoles = interaction.member.roles.cache const setting = await settings.findOne({ name: "staffAppStatus" }) - const status = setting.value; + const status = setting.value const staffQuestions = questions.staff function sq(n) { @@ -37,29 +37,29 @@ module.exports = { if (interaction.customId === "staffapply") { - await interaction.deferReply({ ephemeral: true }); + await interaction.deferReply({ ephemeral: true }) if (user.id !== dev) { if (status === "0") { - await interaction.editReply({ content: "Staff applications are currently closed.", ephemeral: true }); + await interaction.editReply({ content: "Staff applications are currently closed.", ephemeral: true }) return } } if (!userRoles.has(guildRole)) { - await interaction.editReply({ content: "You must be a member of the guild to apply for staff.", ephemeral: true }); + await interaction.editReply({ content: "You must be a member of the guild to apply for staff.", ephemeral: true }) return } if (userRoles.has(guildStaff)) { - await interaction.editReply({ content: "You are already a staff member.", ephemeral: true }); + await interaction.editReply({ content: "You are already a staff member.", ephemeral: true }) return } - const application = await staffapp.findOne({ userID: user.id }); + const application = await staffapp.findOne({ userID: user.id }) if (application) { - await interaction.editReply({ content: "You already have an application in progress.", ephemeral: true }); + await interaction.editReply({ content: "You already have an application in progress.", ephemeral: true }) return } @@ -76,7 +76,7 @@ module.exports = { try { await user.send({ embeds: [{ - title: 'Staff Application', + title: "Staff Application", description: "Please answer the following questions to apply for staff.\n" + "If you wish to cancel your application, please press type `cancel` at any time.\n" + "If you wish to proceed with your application, please type `yes`.\n\n" + @@ -86,7 +86,7 @@ module.exports = { }] }) } catch (error) { - await interaction.editReply({ content: "Please enable your DMs.", ephemeral: true }); + await interaction.editReply({ content: "Please enable your DMs.", ephemeral: true }) return } @@ -96,17 +96,17 @@ module.exports = { filter: m => m.author.id === user.id, max: 1, time: 1000 * 60 - }); + }) if (input.size === 0) { - await user.send({ embeds: [tooLong] }); + await user.send({ embeds: [tooLong] }) return } - if (input.first().content.toLowerCase() !== 'yes') { - await user.send({ embeds: [cancelled] }); + if (input.first().content.toLowerCase() !== "yes") { + await user.send({ embeds: [cancelled] }) return } if (input.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); + await user.send({ embeds: [attachments] }) return } @@ -125,17 +125,17 @@ module.exports = { filter: m => m.author.id === user.id, max: 1, time: 1000 * 60 * 5, - }); + }) if (answer1.size === 0) { await user.send({ embeds: [tooLong] }) return } - if (answer1.first().content.toLowerCase() === 'cancel') { + if (answer1.first().content.toLowerCase() === "cancel") { await user.send({ embeds: [cancelled] }) return } if (answer1.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); + await user.send({ embeds: [attachments] }) return } if (answer1.first().content > 16) { @@ -175,17 +175,17 @@ module.exports = { filter: m => m.author.id === user.id, max: 1, time: 1000 * 60 * 15 - }); + }) if (answer2.size === 0) { await user.send({ embeds: [tooLong] }) return } - if (answer2.first().content.toLowerCase() === 'cancel') { + if (answer2.first().content.toLowerCase() === "cancel") { await user.send({ embeds: [cancelled] }) return } if (answer2.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); + await user.send({ embeds: [attachments] }) return } if (answer2.first().content > 64) { @@ -214,17 +214,17 @@ module.exports = { filter: m => m.author.id === user.id, max: 1, time: 1000 * 60 * 15 - }); + }) if (answer3.size === 0) { await user.send({ embeds: [tooLong] }) return } - if (answer3.first().content.toLowerCase() === 'cancel') { + if (answer3.first().content.toLowerCase() === "cancel") { await user.send({ embeds: [cancelled] }) return } if (answer3.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); + await user.send({ embeds: [attachments] }) return } if (answer3.first().content > 256) { @@ -252,17 +252,17 @@ module.exports = { filter: m => m.author.id === user.id, max: 1, time: 1000 * 60 * 15 - }); + }) if (answer4.size === 0) { await user.send({ embeds: [tooLong] }) return } - if (answer4.first().content.toLowerCase() === 'cancel') { + if (answer4.first().content.toLowerCase() === "cancel") { await user.send({ embeds: [cancelled] }) return } if (answer4.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); + await user.send({ embeds: [attachments] }) return } if (answer4.first().content > 256) { @@ -290,17 +290,17 @@ module.exports = { filter: m => m.author.id === user.id, max: 1, time: 1000 * 60 * 15 - }); + }) if (answer5.size === 0) { await user.send({ embeds: [tooLong] }) return } - if (answer5.first().content.toLowerCase() === 'cancel') { + if (answer5.first().content.toLowerCase() === "cancel") { await user.send({ embeds: [cancelled] }) return } if (answer5.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); + await user.send({ embeds: [attachments] }) return } if (answer5.first().content > 256) { @@ -329,17 +329,17 @@ module.exports = { filter: m => m.author.id === user.id, max: 1, time: 1000 * 60 * 15 - }); + }) if (answer6.size === 0) { await user.send({ embeds: [tooLong] }) return } - if (answer6.first().content.toLowerCase() === 'cancel') { + if (answer6.first().content.toLowerCase() === "cancel") { await user.send({ embeds: [cancelled] }) return } if (answer6.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); + await user.send({ embeds: [attachments] }) return } if (answer6.first().content > 256) { @@ -363,17 +363,17 @@ module.exports = { filter: m => m.author.id === user.id, max: 1, time: 1000 * 60 * 5 - }); + }) if (final.size === 0) { - await user.send({ embeds: [tooLong] }); + await user.send({ embeds: [tooLong] }) return } - if (final.first().content.toLowerCase() !== 'yes') { - await user.send({ embeds: [cancelled] }); + if (final.first().content.toLowerCase() !== "yes") { + await user.send({ embeds: [cancelled] }) return } if (final.first().attachments.size > 0) { - await user.send({ embeds: [attachments] }); + await user.send({ embeds: [attachments] }) return } @@ -391,9 +391,9 @@ module.exports = { }) await newStaffApp.save() - await user.deleteDM(); + await user.deleteDM() - const channel = guild.channels.cache.get(staffApplicationsChannel); + const channel = guild.channels.cache.get(staffApplicationsChannel) await channel.send({ embeds: [{ @@ -446,7 +446,7 @@ module.exports = { .setStyle(ButtonStyle.Danger) ) ] - }); + }) } } } diff --git a/events/buttons/verify.js b/events/buttons/verify.js index bc99bdd..3095bcc 100644 --- a/events/buttons/verify.js +++ b/events/buttons/verify.js @@ -1,9 +1,9 @@ -const { ModalBuilder, ActionRowBuilder, TextInputBuilder, TextInputStyle } = require('discord.js') +const { ModalBuilder, ActionRowBuilder, TextInputBuilder, TextInputStyle } = require("discord.js") module.exports = { - name: 'verify', - description: 'Configure the bot.', - type: 'button', + name: "verify", + description: "Configure the bot.", + type: "button", /** @param {import('discord.js').ButtonInteraction} interaction */ diff --git a/events/buttons/waitingListUpdate.js b/events/buttons/waitingListUpdate.js index 516097e..8f3a53b 100644 --- a/events/buttons/waitingListUpdate.js +++ b/events/buttons/waitingListUpdate.js @@ -1,21 +1,21 @@ -const waitinglist = require('../../schemas/waitinglistSchema.js'); -const { getGuild } = require('../../utils/utils.js'); +const waitinglist = require("../../schemas/waitinglistSchema.js") +const { getGuild } = require("../../utils/utils.js") const { hypixelGuildID } = require("../../config/options.json") module.exports = { - name: 'waitinglistupdate', - description: 'Update the waiting list.', - type: 'button', + name: "waitinglistupdate", + description: "Update the waiting list.", + type: "button", /** @param {import('discord.js').ButtonInteraction} interaction */ async execute(interaction) { - await interaction.deferReply({ ephemeral: true }); + await interaction.deferReply({ ephemeral: true }) - const user = interaction.user; - const message = interaction.message; - const embed = message.embeds[0]; + const user = interaction.user + const message = interaction.message + const embed = message.embeds[0] const accepted = await waitinglist.find() for (let i = 0; i < accepted.length; i++) { @@ -30,7 +30,7 @@ module.exports = { } - let fields = []; + let fields = [] for (let i = 0; i < accepted.length; i++) { @@ -40,7 +40,7 @@ module.exports = { fields.push({ name: `${i + 1}. ${accepted[i].IGN}`, value: `TS: ` - }); + }) } await message.edit({ @@ -56,8 +56,8 @@ module.exports = { fields: fields, timestamp: new Date(), }], - }); + }) - await interaction.editReply({ content: 'Updated the waiting list', ephemeral: true }); + await interaction.editReply({ content: "Updated the waiting list", ephemeral: true }) } } diff --git a/events/modals/denyreasonbox.js b/events/modals/denyreasonbox.js index fd0843b..42e6758 100644 --- a/events/modals/denyreasonbox.js +++ b/events/modals/denyreasonbox.js @@ -1,35 +1,35 @@ -const { InteractionType, EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require('discord.js'); -const { color } = require('../../config/options.json'); -const guildapp = require('../../schemas/guildAppSchema.js'); +const { InteractionType, EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js") +const { color } = require("../../config/options.json") +const guildapp = require("../../schemas/guildAppSchema.js") module.exports = { - name: 'denyreasonbox', - description: 'Deny reason box.', - type: 'modal', + name: "denyreasonbox", + description: "Deny reason box.", + type: "modal", /** @param {import('discord.js').ModalSubmitInteraction} interaction */ async execute(interaction) { - if (interaction.type !== InteractionType.ModalSubmit) return; - if (interaction.customId !== "denyreasonbox") return; + if (interaction.type !== InteractionType.ModalSubmit) return + if (interaction.customId !== "denyreasonbox") return - interaction.deferReply(); + interaction.deferReply() - const guild = interaction.guild; + const guild = interaction.guild - const message = interaction.message; - const embed = message.embeds[0]; - const applicantId = embed.footer.text.split(" ")[1]; + const message = interaction.message + const embed = message.embeds[0] + const applicantId = embed.footer.text.split(" ")[1] let applicant = "" try { - applicant = await guild.members.fetch(applicantId); + applicant = await guild.members.fetch(applicantId) } catch (error) { - applicant = null; + applicant = null } - const reason = interaction.fields.fields.get('denyreason').value || "No reason provided"; - const embedColor = Number(color.replace("#", "0x")); + const reason = interaction.fields.fields.get("denyreason").value || "No reason provided" + const embedColor = Number(color.replace("#", "0x")) await message.edit({ components: [ @@ -51,12 +51,12 @@ module.exports = { .setDisabled(true) ) ] - }); + }) const dmMessage = new EmbedBuilder() .setDescription("Your application for the Illegitimate guild has been denied\n" + "**Reason:** `" + reason + "`") - .setColor(embedColor); + .setColor(embedColor) const missingUser = new EmbedBuilder() .setDescription("[WARN] User has left the server and cannot be notified.") @@ -74,20 +74,20 @@ module.exports = { }) if (applicant !== null) { - await applicant.send({ embeds: [dmMessage] }); + await applicant.send({ embeds: [dmMessage] }) } let responseEmbeds = "" if (applicant === null) { - responseEmbeds = [responseEmbed, missingUser]; + responseEmbeds = [responseEmbed, missingUser] } else { - responseEmbeds = [responseEmbed]; + responseEmbeds = [responseEmbed] } - await guildapp.findOneAndDelete({ userID: applicantId }); + await guildapp.findOneAndDelete({ userID: applicantId }) await interaction.editReply({ embeds: responseEmbeds - }); + }) } } diff --git a/events/modals/staffdenyreasonbox.js b/events/modals/staffdenyreasonbox.js index 19e0d21..e47c764 100644 --- a/events/modals/staffdenyreasonbox.js +++ b/events/modals/staffdenyreasonbox.js @@ -1,27 +1,27 @@ -const { InteractionType, EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require('discord.js'); -const { color } = require('../../config/options.json'); -const staffapp = require('../../schemas/staffAppSchema.js'); +const { InteractionType, EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js") +const { color } = require("../../config/options.json") +const staffapp = require("../../schemas/staffAppSchema.js") module.exports = { - name: 'staffdenyreasonbox', - description: 'Deny reason box.', - type: 'modal', + name: "staffdenyreasonbox", + description: "Deny reason box.", + type: "modal", /** @param {import('discord.js').ModalSubmitInteraction} interaction */ async execute(interaction) { - if (interaction.type !== InteractionType.ModalSubmit) return; - if (interaction.customId !== "staffdenyreasonbox") return; + if (interaction.type !== InteractionType.ModalSubmit) return + if (interaction.customId !== "staffdenyreasonbox") return - interaction.deferReply(); + interaction.deferReply() - const guild = interaction.guild; - const reason = interaction.fields.fields.get('staffdenyreason').value || "No reason provided"; - const embedColor = Number(color.replace("#", "0x")); + const guild = interaction.guild + const reason = interaction.fields.fields.get("staffdenyreason").value || "No reason provided" + const embedColor = Number(color.replace("#", "0x")) - const message = interaction.message; - const embed = message.embeds[0]; + const message = interaction.message + const embed = message.embeds[0] const applicantId = embed.footer.text.split(" ")[1] const applicant = await guild.members.fetch(applicantId) @@ -40,16 +40,16 @@ module.exports = { .setDisabled(true), ) ] - }); + }) const dmMessage = new EmbedBuilder() .setDescription("Your application for the Illegitimate guild staff has been denied\n" + "**Reason:** `" + reason + "`") - .setColor(embedColor); + .setColor(embedColor) - await applicant.send({ embeds: [dmMessage] }); + await applicant.send({ embeds: [dmMessage] }) - await staffapp.findOneAndDelete({ userID: applicantId }); + await staffapp.findOneAndDelete({ userID: applicantId }) await interaction.editReply({ embeds: [{ @@ -65,6 +65,6 @@ module.exports = { text: "ID: " + applicant.id } }], - });; + }) } } diff --git a/events/server/guildMemberAdd/logNewJoins.js b/events/server/guildMemberAdd/logNewJoins.js index d9a5930..a3a5594 100644 --- a/events/server/guildMemberAdd/logNewJoins.js +++ b/events/server/guildMemberAdd/logNewJoins.js @@ -1,21 +1,21 @@ -const { userMention } = require('discord.js'); -const { color, botLogChannel } = require('../../../config/options.json'); +const { userMention } = require("discord.js") +const { color, botLogChannel } = require("../../../config/options.json") module.exports = { - name: 'logNewJoins', - description: 'Logs new joins', - type: 'event', - event: 'guildMemberAdd', + name: "logNewJoins", + description: "Logs new joins", + type: "event", + event: "guildMemberAdd", /** @param { import('discord.js').GuildMember } member */ execute(member) { - const channel = member.guild.channels.cache.get(botLogChannel); - const embedColor = Number(color.replace('#', '0x')); + const channel = member.guild.channels.cache.get(botLogChannel) + const embedColor = Number(color.replace("#", "0x")) if (!channel) { - console.log(`[ERROR] Could not find channel used for new join logging.`); - return; + console.log("[ERROR] Could not find channel used for new join logging.") + return } channel.send({ diff --git a/events/server/interactions/logBtnsCmds.js b/events/server/interactions/logBtnsCmds.js index d0c871a..b317c06 100644 --- a/events/server/interactions/logBtnsCmds.js +++ b/events/server/interactions/logBtnsCmds.js @@ -11,12 +11,12 @@ module.exports = { console.log(interaction.user.username + "#" + interaction.user.discriminator + " ran " + interaction.commandName - ); + ) } else if (interaction.isButton()) { console.log(interaction.user.username + "#" + interaction.user.discriminator + " clicked " + interaction.customId - ); + ) } } } diff --git a/events/server/messages/clown.js b/events/server/messages/clown.js index 36af753..15219ff 100644 --- a/events/server/messages/clown.js +++ b/events/server/messages/clown.js @@ -1,14 +1,14 @@ module.exports = { - name: 'ur mom', - description: 'ur moms someone', - type: 'event', - event: 'messageCreate', + name: "ur mom", + description: "ur moms someone", + type: "event", + event: "messageCreate", /** @param { import('discord.js').Message } message */ async execute(message) { - if (message.content.toLowerCase().includes('ur mom') && message.author.username === "taken.lua") { - message.react("Woot:734345936347725885"); + if (message.content.toLowerCase().includes("ur mom") && message.author.username === "taken.lua") { + message.react("Woot:734345936347725885") } } } diff --git a/events/server/ready/consolelog.js b/events/server/ready/consolelog.js index ded7a2a..37e2c64 100644 --- a/events/server/ready/consolelog.js +++ b/events/server/ready/consolelog.js @@ -1,11 +1,11 @@ module.exports = { - name: 'conolelog', + name: "conolelog", description: "console log", - type: 'event', - event: 'ready', + type: "event", + event: "ready", /** @param { import('discord.js').Client } client */ execute(client) { - console.log("Logged in as " + client.user.tag + "!"); + console.log("Logged in as " + client.user.tag + "!") } } diff --git a/events/server/ready/sendOnlineMessage.js b/events/server/ready/sendOnlineMessage.js index 5ca990d..7bff9ab 100644 --- a/events/server/ready/sendOnlineMessage.js +++ b/events/server/ready/sendOnlineMessage.js @@ -1,27 +1,27 @@ -const { onlineLogChannel, color } = require('../../../config/options.json'); +const { onlineLogChannel, color } = require("../../../config/options.json") module.exports = { - name: 'sendonlinemessage', + name: "sendonlinemessage", description: "send an online message", - type: 'event', - event: 'ready', + type: "event", + event: "ready", execute(client) { - if (process.env.NODE_ENV === 'dev') return + if (process.env.NODE_ENV === "dev") return - const channel = client.channels.cache.get(onlineLogChannel); - const embedColor = Number(color.replace('#', '0x')) + const channel = client.channels.cache.get(onlineLogChannel) + const embedColor = Number(color.replace("#", "0x")) if (!channel) { - console.log(`[ERROR] Could not find channel used for online message.`); - return; + console.log("[ERROR] Could not find channel used for online message.") + return } channel.send({ embeds: [{ - description: `Bot is online!`, + description: "Bot is online!", color: embedColor }] - }); + }) } } diff --git a/events/server/ready/status.js b/events/server/ready/status.js index 0593df5..71ebe3a 100644 --- a/events/server/ready/status.js +++ b/events/server/ready/status.js @@ -1,10 +1,10 @@ -const statuses = require('../../../config/statuses.json') +const statuses = require("../../../config/statuses.json") module.exports = { - name: 'status', - description: 'Sets the status of the bot', - type: 'event', - event: 'ready', + name: "status", + description: "Sets the status of the bot", + type: "event", + event: "ready", /** @param { import('discord.js').Client } client */ @@ -19,16 +19,16 @@ module.exports = { client.user.setActivity( { name: statuses[0].name, type: 3} - ); + ) - let i = 0; + let i = 0 setInterval(() => client.user.setActivity( statuses[i = 1, i++ % statuses.length] ), - 1000 * 60 * 10 + 1000 * 60 * 10 ) - client.user.setStatus('dnd'); + client.user.setStatus("dnd") } } diff --git a/events/server/voiceStateUpdate/vcJoinLeave.js b/events/server/voiceStateUpdate/vcJoinLeave.js index 07e6177..9c2d9a5 100644 --- a/events/server/voiceStateUpdate/vcJoinLeave.js +++ b/events/server/voiceStateUpdate/vcJoinLeave.js @@ -1,11 +1,11 @@ -const { userMention, channelMention } = require('discord.js') -const { botLogChannel, color } = require('../../../config/options.json') +const { userMention, channelMention } = require("discord.js") +const { botLogChannel, color } = require("../../../config/options.json") module.exports = { - name: 'vcJoinLeave', - description: 'Logs when a user joins or leaves a voice channel.', - type: 'event', - event: 'voiceStateUpdate', + name: "vcJoinLeave", + description: "Logs when a user joins or leaves a voice channel.", + type: "event", + event: "voiceStateUpdate", /** * @param { import('discord.js').VoiceState } oldState @@ -18,10 +18,10 @@ module.exports = { const guild = oldState.guild const channel = guild.channels.cache.get(botLogChannel) - const embedColor = Number(color.replace('#', '0x')) + const embedColor = Number(color.replace("#", "0x")) if (!channel) { - console.log(`[ERROR] Could not find channel used for voice channel join/leave logging.`) + console.log("[ERROR] Could not find channel used for voice channel join/leave logging.") return } diff --git a/index.js b/index.js index 8e90c27..11763d5 100644 --- a/index.js +++ b/index.js @@ -1,9 +1,9 @@ -const { Client, GatewayIntentBits, Partials, Collection } = require('discord.js'); -const { loadSlashCommandsEvents, loadContextMenuEvents, loadModalEvents, loadButtonEvents, loadEvents } = require('./utils/eventHandler.js') -const { autoDeployCommands } = require('./utils/autodeploy.js'); -require('dotenv').config(); -const mongoURI = process.env.MONGOURI; -const { connect } = require('mongoose'); +const { Client, GatewayIntentBits, Partials, Collection } = require("discord.js") +const { loadSlashCommandsEvents, loadContextMenuEvents, loadModalEvents, loadButtonEvents, loadEvents } = require("./utils/eventHandler.js") +const { autoDeployCommands } = require("./utils/autodeploy.js") +require("dotenv").config() +const mongoURI = process.env.MONGOURI +const { connect } = require("mongoose") const client = new Client({ intents: [ @@ -20,30 +20,30 @@ const client = new Client({ Partials.Message, Partials.Channel ] -}); +}) -client.commands = new Collection(); -client.events = new Collection(); -client.modals = new Collection(); +client.commands = new Collection() +client.events = new Collection() +client.modals = new Collection() -loadSlashCommandsEvents(client); -loadContextMenuEvents(client); -loadButtonEvents(client); -loadModalEvents(client); -loadEvents(client); +loadSlashCommandsEvents(client) +loadContextMenuEvents(client) +loadButtonEvents(client) +loadModalEvents(client) +loadEvents(client) let token = "" -if (process.env.NODE_ENV === 'dev') { - console.log("Running in development mode."); - token = process.env.DEVTOKEN; +if (process.env.NODE_ENV === "dev") { + console.log("Running in development mode.") + token = process.env.DEVTOKEN autoDeployCommands() } else { - console.log("Running in production mode."); - token = process.env.PRODTOKEN; + console.log("Running in production mode.") + token = process.env.PRODTOKEN } -client.login(token); +client.login(token) connect(mongoURI, {}).then(() => { - console.log('Connected to MongoDB'); + console.log("Connected to MongoDB") }) diff --git a/schemas/guildAppSchema.js b/schemas/guildAppSchema.js index 42a3aef..ead4f60 100644 --- a/schemas/guildAppSchema.js +++ b/schemas/guildAppSchema.js @@ -1,9 +1,9 @@ -const { Schema, model } = require('mongoose'); +const { Schema, model } = require("mongoose") const guildAppSchema = new Schema({ _id: Schema.Types.ObjectId, userID: { type: String, required: true }, uuid: { type: String, required: true }, -}); +}) -module.exports = model('guildapp', guildAppSchema, 'guildapp'); +module.exports = model("guildapp", guildAppSchema, "guildapp") diff --git a/schemas/settingsSchema.js b/schemas/settingsSchema.js index d7d4952..4298e45 100644 --- a/schemas/settingsSchema.js +++ b/schemas/settingsSchema.js @@ -1,9 +1,9 @@ -const { Schema, model } = require('mongoose'); +const { Schema, model } = require("mongoose") const settingsSchema = new Schema({ _id: Schema.Types.ObjectId, name: { type: String, required: true }, value: { type: String, required: true }, -}); +}) -module.exports = model('settings', settingsSchema, 'settings'); +module.exports = model("settings", settingsSchema, "settings") diff --git a/schemas/staffAppSchema.js b/schemas/staffAppSchema.js index ef0acaa..188a2c7 100644 --- a/schemas/staffAppSchema.js +++ b/schemas/staffAppSchema.js @@ -1,9 +1,9 @@ -const { Schema, model } = require('mongoose'); +const { Schema, model } = require("mongoose") const staffAppSchema = new Schema({ _id: Schema.Types.ObjectId, userID: { type: String, required: true }, uuid: { type: String, required: true }, -}); +}) -module.exports = model('staffapp', staffAppSchema, 'staffapp'); +module.exports = model("staffapp", staffAppSchema, "staffapp") diff --git a/schemas/verifySchema.js b/schemas/verifySchema.js index 4c82847..8d198cd 100644 --- a/schemas/verifySchema.js +++ b/schemas/verifySchema.js @@ -1,9 +1,9 @@ -const { Schema, model } = require('mongoose'); +const { Schema, model } = require("mongoose") const verifySchema = new Schema({ _id: Schema.Types.ObjectId, userID: { type: String, required: true }, uuid: { type: String, required: true }, -}); +}) -module.exports = model('verify', verifySchema, 'verify'); +module.exports = model("verify", verifySchema, "verify") diff --git a/schemas/waitinglistSchema.js b/schemas/waitinglistSchema.js index 5d80662..9da9ec0 100644 --- a/schemas/waitinglistSchema.js +++ b/schemas/waitinglistSchema.js @@ -1,4 +1,4 @@ -const { Schema, model } = require('mongoose'); +const { Schema, model } = require("mongoose") const waitinglistSchema = new Schema({ _id: Schema.Types.ObjectId, @@ -6,6 +6,6 @@ const waitinglistSchema = new Schema({ uuid: { type: String, required: true }, IGN: { type: String, required: true }, timestamp: { type: String, required: true } -}); +}) -module.exports = model('waitinglist', waitinglistSchema, 'waitinglist'); +module.exports = model("waitinglist", waitinglistSchema, "waitinglist") diff --git a/scripts/deploy-commands.js b/scripts/deploy-commands.js index d904860..4d79b06 100644 --- a/scripts/deploy-commands.js +++ b/scripts/deploy-commands.js @@ -1,87 +1,87 @@ -const { REST, Routes } = require('discord.js'); -const env = require('dotenv').config(); -const token = process.env.PRODTOKEN; -const clientId = process.env.CLIENTID; -const guildId = process.env.GUILDID; -const fs = require('node:fs'); -const args = process.argv.slice(2); -const arg = args[0]; +const { REST, Routes } = require("discord.js") +require("dotenv").config() +const token = process.env.PRODTOKEN +const clientId = process.env.CLIENTID +const guildId = process.env.GUILDID +const fs = require("node:fs") +const args = process.argv.slice(2) +const arg = args[0] if (!arg) { - console.log('Please specify a command to run!'); + console.log("Please specify a command to run!") } -else if (arg === '--prod') { - const commands = []; +else if (arg === "--prod") { + const commands = [] // Grab all the command files from the commands directory you created earlier - const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js')); - const contentMenuCommands = fs.readdirSync('./commands-contextmenu').filter(file => file.endsWith('.js')); + const commandFiles = fs.readdirSync("./commands").filter(file => file.endsWith(".js")) + const contentMenuCommands = fs.readdirSync("./commands-contextmenu").filter(file => file.endsWith(".js")) // Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment for (const file of commandFiles) { - const command = require(`../commands/${file}`); - commands.push(command.data.toJSON()); + const command = require(`../commands/${file}`) + commands.push(command.data.toJSON()) } for (const file of contentMenuCommands) { - const command = require(`../commands-contextmenu/${file}`); - commands.push(command.data.toJSON()); + const command = require(`../commands-contextmenu/${file}`) + commands.push(command.data.toJSON()) } // Construct and prepare an instance of the REST module - const rest = new REST({ version: '10' }).setToken(token); + const rest = new REST({ version: "10" }).setToken(token); // and deploy your commands! (async () => { try { - console.log(`Started refreshing ${commands.length} application (/) commands.`); + console.log(`Started refreshing ${commands.length} application (/) commands.`) // The put method is used to fully refresh all commands in the guild with the current set const data = await rest.put( Routes.applicationCommands(clientId), { body: commands }, - ); + ) - console.log(`Successfully reloaded ${data.length} application (/) commands.`); + console.log(`Successfully reloaded ${data.length} application (/) commands.`) } catch (error) { // And of course, make sure you catch and log any errors! - console.error(error); + console.error(error) } - })(); + })() } -else if (arg === '--dev') { - const commands = []; +else if (arg === "--dev") { + const commands = [] // Grab all the command files from the commands directory you created earlier - const commandFiles = fs.readdirSync('./commands-testing').filter(file => file.endsWith('.js')); + const commandFiles = fs.readdirSync("./commands-testing").filter(file => file.endsWith(".js")) // Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment for (const file of commandFiles) { - const command = require(`../commands-testing/${file}`); - commands.push(command.data.toJSON()); + const command = require(`../commands-testing/${file}`) + commands.push(command.data.toJSON()) } // Construct and prepare an instance of the REST module - const rest = new REST({ version: '10' }).setToken(token); + const rest = new REST({ version: "10" }).setToken(token); // and deploy your commands! (async () => { try { - console.log(`Started refreshing ${commands.length} application (/) commands.`); + console.log(`Started refreshing ${commands.length} application (/) commands.`) // The put method is used to fully refresh all commands in the guild with the current set const data = await rest.put( Routes.applicationGuildCommands(clientId, guildId), { body: commands }, - ); + ) - console.log(`Successfully reloaded ${data.length} application (/) commands.`); + console.log(`Successfully reloaded ${data.length} application (/) commands.`) } catch (error) { // And of course, make sure you catch and log any errors! - console.error(error); + console.error(error) } - })(); + })() } -else if (arg && arg !== '--prod' && arg !== '--dev') { - console.log('Invalid argument!'); +else if (arg && arg !== "--prod" && arg !== "--dev") { + console.log("Invalid argument!") } diff --git a/scripts/dev-deploy.js b/scripts/dev-deploy.js index 5830e14..f274db2 100644 --- a/scripts/dev-deploy.js +++ b/scripts/dev-deploy.js @@ -1,10 +1,10 @@ -const { REST, Routes } = require('discord.js'); -require('dotenv').config(); -const token = process.env.DEVTOKEN; -const clientId = process.env.DEVID; -const guildId = process.env.GUILDID; +const { REST, Routes } = require("discord.js") +require("dotenv").config() +const token = process.env.DEVTOKEN +const clientId = process.env.DEVID +const guildId = process.env.GUILDID -const commands = []; +const commands = [] // Grab all the command files from the commands directory you created earlier // const commandFiles = fs.readdirSync('./commands-testing').filter(file => file.endsWith('.js')); @@ -15,28 +15,28 @@ const commandFiles = [ // Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment for (const file of commandFiles) { - const command = require(`${file}`); - commands.push(command.data.toJSON()); + const command = require(`${file}`) + commands.push(command.data.toJSON()) } // Construct and prepare an instance of the REST module -const rest = new REST({ version: '10' }).setToken(token); +const rest = new REST({ version: "10" }).setToken(token); // and deploy your commands! (async () => { try { - console.log(`Started refreshing ${commands.length} application (/) commands.`); + console.log(`Started refreshing ${commands.length} application (/) commands.`) // The put method is used to fully refresh all commands in the guild with the current set const data = await rest.put( Routes.applicationGuildCommands(clientId, guildId), { body: commands }, - ); + ) - console.log(`Successfully reloaded ${data.length} application (/) commands.`); + console.log(`Successfully reloaded ${data.length} application (/) commands.`) } catch (error) { // And of course, make sure you catch and log any errors! - console.error(error); + console.error(error) } -})(); +})() diff --git a/utils/autodeploy.js b/utils/autodeploy.js index 0a58730..c897dea 100644 --- a/utils/autodeploy.js +++ b/utils/autodeploy.js @@ -1,10 +1,10 @@ -const { REST, Routes } = require('discord.js'); -const log = require('log-beautify') -const fs = require('fs'); -require('dotenv').config(); -const token = process.env.DEVTOKEN; -const clientId = process.env.DEVID; -const guildId = process.env.GUILDID; +const { REST, Routes } = require("discord.js") +const log = require("log-beautify") +const fs = require("fs") +require("dotenv").config() +const token = process.env.DEVTOKEN +const clientId = process.env.DEVID +const guildId = process.env.GUILDID log.useSymbols = false log.setColors({ @@ -13,31 +13,31 @@ log.setColors({ }) async function autoDeployCommands() { - const commands = []; - const commandFiles = fs.readdirSync('./commands/').filter(file => file.endsWith('.js')); - const contentMenuCommands = fs.readdirSync('./commands-contextmenu/').filter(file => file.endsWith('.js')); - const commandsTesting = fs.readdirSync('./commands-testing/').filter(file => file.endsWith('.js')); + const commands = [] + const commandFiles = fs.readdirSync("./commands/").filter(file => file.endsWith(".js")) + const contentMenuCommands = fs.readdirSync("./commands-contextmenu/").filter(file => file.endsWith(".js")) + const commandsTesting = fs.readdirSync("./commands-testing/").filter(file => file.endsWith(".js")) for (const file of commandFiles) { - const command = require(`../commands/${file}`); + const command = require(`../commands/${file}`) if (command.dev) { - commands.push(command.data.toJSON()); + commands.push(command.data.toJSON()) } } for (const file of contentMenuCommands) { - const command = require(`../commands-contextmenu/${file}`); + const command = require(`../commands-contextmenu/${file}`) if (command.dev) { - commands.push(command.data.toJSON()); + commands.push(command.data.toJSON()) } } for (const file of commandsTesting) { - const command = require(`../commands-testing/${file}`); + const command = require(`../commands-testing/${file}`) if (command.dev) { - commands.push(command.data.toJSON()); + commands.push(command.data.toJSON()) } } - const rest = new REST({ version: '10' }).setToken(token); + const rest = new REST({ version: "10" }).setToken(token) const currentCommands = await rest.get( Routes.applicationGuildCommands(clientId, guildId), @@ -61,32 +61,32 @@ async function autoDeployCommands() { const newCmds = sortedNewCommandsInfo.map(cmd => { return " " + cmd.name + " was registered." - }).join('\n') + }).join("\n") const currentCmds = sortedCurrentCommandsInfo.map(cmd => { return " " + cmd.name + " was unregistered." - }).join('\n') + }).join("\n") if (JSON.stringify(sortedNewCommandsInfo) === JSON.stringify(sortedCurrentCommandsInfo)) { - log.success('Commands are the same, skipping deploy.') + log.success("Commands are the same, skipping deploy.") log.newCmds(newCmds) return } (async () => { try { - log.warning('Commands are different, starting deploy.') + log.warning("Commands are different, starting deploy.") log.currentCmds(currentCmds) - console.log(`Started refreshing ${commands.length} application (/) commands.`); + console.log(`Started refreshing ${commands.length} application (/) commands.`) const data = await rest.put( Routes.applicationGuildCommands(clientId, guildId), { body: commands }, - ); + ) log.newCmds(newCmds) - console.log(`Successfully reloaded ${data.length} application (/) commands.`); + console.log(`Successfully reloaded ${data.length} application (/) commands.`) } catch (error) { - console.error(error); + console.error(error) } })() } diff --git a/utils/eventHandler.js b/utils/eventHandler.js index 33b8473..aac65f3 100644 --- a/utils/eventHandler.js +++ b/utils/eventHandler.js @@ -1,8 +1,8 @@ -const { loadButtonEvents } = require('./eventHandlers/button.js') -const { loadSlashCommandsEvents } = require('./eventHandlers/command.js') -const { loadContextMenuEvents } = require('./eventHandlers/contextmenu.js') -const { loadModalEvents } = require('./eventHandlers/modal.js') -const { loadEvents } = require('./eventHandlers/events.js') +const { loadButtonEvents } = require("./eventHandlers/button.js") +const { loadSlashCommandsEvents } = require("./eventHandlers/command.js") +const { loadContextMenuEvents } = require("./eventHandlers/contextmenu.js") +const { loadModalEvents } = require("./eventHandlers/modal.js") +const { loadEvents } = require("./eventHandlers/events.js") module.exports = { loadSlashCommandsEvents, diff --git a/utils/eventHandlers/button.js b/utils/eventHandlers/button.js index 4b7b58c..3e7fbf3 100644 --- a/utils/eventHandlers/button.js +++ b/utils/eventHandlers/button.js @@ -1,42 +1,42 @@ -const { Events } = require('discord.js') -const path = require('path'); -const fs = require('fs'); +const { Events } = require("discord.js") +const path = require("path") +const fs = require("fs") /** @param { import('discord.js').Client } client */ function loadButtonEvents(client) { - const btnPath = path.join(__dirname, '..', '..', 'events', 'buttons'); - const btnFiles = fs.readdirSync(btnPath).filter(file => file.endsWith('.js')); + const btnPath = path.join(__dirname, "..", "..", "events", "buttons") + const btnFiles = fs.readdirSync(btnPath).filter(file => file.endsWith(".js")) for (const file of btnFiles) { - const filePath = path.join(btnPath, file); - const btn = require(filePath); + const filePath = path.join(btnPath, file) + const btn = require(filePath) - if ('name' in btn && 'execute' in btn && btn.type === 'button') { - client.events.set(btn.name, btn); + if ("name" in btn && "execute" in btn && btn.type === "button") { + client.events.set(btn.name, btn) } else { - console.log(`[WARNING] The button at ${filePath} is missing a required "name", "execute" or "type" property.`); + console.log(`[WARNING] The button at ${filePath} is missing a required "name", "execute" or "type" property.`) } } client.on(Events.InteractionCreate, async event => { if (!event.isButton()) - return; + return - const event2 = event.client.events.get(event.customId); + const event2 = event.client.events.get(event.customId) if (!event2) { - console.error(`No event matching ${event.customId} was found.`); - return; + console.error(`No event matching ${event.customId} was found.`) + return } try { - await event2.execute(event); + await event2.execute(event) } catch (error) { - console.error(error); + console.error(error) await event.reply({ - content: 'There was an error while executing this event!', + content: "There was an error while executing this event!", ephemeral: true }) } diff --git a/utils/eventHandlers/command.js b/utils/eventHandlers/command.js index cc1c401..eb75fa6 100644 --- a/utils/eventHandlers/command.js +++ b/utils/eventHandlers/command.js @@ -1,59 +1,59 @@ -const { Events } = require('discord.js') -const path = require('path'); -const fs = require('fs'); +const { Events } = require("discord.js") +const path = require("path") +const fs = require("fs") /** @param { import('discord.js').Client } client */ function loadSlashCommandsEvents(client) { - const cmdPath = path.join(__dirname, '..', '..', 'commands'); - const cmdFiles = fs.readdirSync(cmdPath).filter(file => file.endsWith('.js')); + const cmdPath = path.join(__dirname, "..", "..", "commands") + const cmdFiles = fs.readdirSync(cmdPath).filter(file => file.endsWith(".js")) for (const file of cmdFiles) { - const filePath = path.join(cmdPath, file); - const cmd = require(filePath); + const filePath = path.join(cmdPath, file) + const cmd = require(filePath) - if ('data' in cmd && 'execute' in cmd && cmd.type === 'slash') { - client.commands.set(cmd.data.name, cmd); + if ("data" in cmd && "execute" in cmd && cmd.type === "slash") { + client.commands.set(cmd.data.name, cmd) } else { - console.log(`[WARNING] The command at ${filePath} is missing a required "data", "execute" or "type" property.`); + console.log(`[WARNING] The command at ${filePath} is missing a required "data", "execute" or "type" property.`) } } //! commands testing - const cmdTestPath = path.join(__dirname, '..', '..', 'commands-testing'); - const cmdTestFiles = fs.readdirSync(cmdTestPath).filter(file => file.endsWith('.js')); + const cmdTestPath = path.join(__dirname, "..", "..", "commands-testing") + const cmdTestFiles = fs.readdirSync(cmdTestPath).filter(file => file.endsWith(".js")) for (const file of cmdTestFiles) { - const filePath = path.join(cmdTestPath, file); - const cmd = require(filePath); + const filePath = path.join(cmdTestPath, file) + const cmd = require(filePath) - if ('data' in cmd && 'execute' in cmd && cmd.type === 'slash') { - client.commands.set(cmd.data.name, cmd); + if ("data" in cmd && "execute" in cmd && cmd.type === "slash") { + client.commands.set(cmd.data.name, cmd) } else { - console.log(`[WARNING] The command at ${filePath} is missing a required "data", "execute" or "type" property.`); + console.log(`[WARNING] The command at ${filePath} is missing a required "data", "execute" or "type" property.`) } } //! command handler client.on(Events.InteractionCreate, async interaction => { if (!interaction.isChatInputCommand()) - return; + return - const command = interaction.client.commands.get(interaction.commandName); + const command = interaction.client.commands.get(interaction.commandName) if (!command) { - console.error(`No command matching ${interaction.commandName} was found.`); - return; + console.error(`No command matching ${interaction.commandName} was found.`) + return } try { - await command.execute(interaction); + await command.execute(interaction) } catch (error) { - console.error(error); + console.error(error) await interaction.reply({ - content: 'There was an error while executing this command!', + content: "There was an error while executing this command!", ephemeral: true }) } diff --git a/utils/eventHandlers/contextmenu.js b/utils/eventHandlers/contextmenu.js index 54773d9..ecea71e 100644 --- a/utils/eventHandlers/contextmenu.js +++ b/utils/eventHandlers/contextmenu.js @@ -1,43 +1,43 @@ -const { Events } = require('discord.js') -const path = require('path'); -const fs = require('fs'); +const { Events } = require("discord.js") +const path = require("path") +const fs = require("fs") /** @param { import('discord.js').Client } client */ function loadContextMenuEvents(client) { - const contextMenuPath = path.join(__dirname, '..', '..', 'commands-contextmenu'); - const contextMenuFiles = fs.readdirSync(contextMenuPath).filter(file => file.endsWith('.js')); + const contextMenuPath = path.join(__dirname, "..", "..", "commands-contextmenu") + const contextMenuFiles = fs.readdirSync(contextMenuPath).filter(file => file.endsWith(".js")) for (const file of contextMenuFiles) { - const filePath = path.join(contextMenuPath, file); - const cmd = require(filePath); + const filePath = path.join(contextMenuPath, file) + const cmd = require(filePath) - if ('data' in cmd && 'execute' in cmd && cmd.type === 'contextmenu') { - client.commands.set(cmd.data.name, cmd); + if ("data" in cmd && "execute" in cmd && cmd.type === "contextmenu") { + client.commands.set(cmd.data.name, cmd) } else { - console.log(`[WARNING] The command at ${filePath} is missing a required "data", "execute" or "type" property.`); + console.log(`[WARNING] The command at ${filePath} is missing a required "data", "execute" or "type" property.`) } } //! context menu command handler client.on(Events.InteractionCreate, async interaction => { if (!interaction.isContextMenuCommand()) - return; + return - const command = interaction.client.commands.get(interaction.commandName); + const command = interaction.client.commands.get(interaction.commandName) if (!command) { - console.error(`No command matching ${interaction.commandName} was found.`); - return; + console.error(`No command matching ${interaction.commandName} was found.`) + return } try { - await command.execute(interaction); + await command.execute(interaction) } catch (error) { - console.error(error); + console.error(error) await interaction.reply({ - content: 'There was an error while executing this command!', + content: "There was an error while executing this command!", ephemeral: true }) } diff --git a/utils/eventHandlers/events.js b/utils/eventHandlers/events.js index 7249074..0efb404 100644 --- a/utils/eventHandlers/events.js +++ b/utils/eventHandlers/events.js @@ -1,20 +1,20 @@ -const path = require('path'); -const fs = require('fs'); +const path = require("path") +const fs = require("fs") /** @param { import('discord.js').Client } client */ function loadEvents(client) { - const serverDir = path.join(__dirname, '..', '..', 'events', 'server') + const serverDir = path.join(__dirname, "..", "..", "events", "server") const eventDirs = fs.readdirSync(serverDir) for (const eventDir of eventDirs) { const eventFiles = fs.readdirSync(path.join(serverDir, eventDir)) for (const eventFile of eventFiles) { const eventPath = path.join(serverDir, eventDir, eventFile) const event = require(eventPath) - if ('name' in event && 'execute' in event && 'event' in event && event.type === 'event') { + if ("name" in event && "execute" in event && "event" in event && event.type === "event") { client.on(event.event, event.execute) } else { - console.log(`[WARNING] The event at ${eventPath} is missing a required "name", "execute", "type" or "event" property.`); + console.log(`[WARNING] The event at ${eventPath} is missing a required "name", "execute", "type" or "event" property.`) } } } diff --git a/utils/eventHandlers/modal.js b/utils/eventHandlers/modal.js index 5c2bd56..9575e2a 100644 --- a/utils/eventHandlers/modal.js +++ b/utils/eventHandlers/modal.js @@ -1,22 +1,22 @@ -const { Events } = require('discord.js') -const path = require('path'); -const fs = require('fs'); +const { Events } = require("discord.js") +const path = require("path") +const fs = require("fs") /** @param { import('discord.js').Client } client */ function loadModalEvents(client) { - const modalPath = path.join(__dirname, '..', '..', 'events', 'modals'); - const modalFiles = fs.readdirSync(modalPath).filter(file => file.endsWith('.js')); + const modalPath = path.join(__dirname, "..", "..", "events", "modals") + const modalFiles = fs.readdirSync(modalPath).filter(file => file.endsWith(".js")) for (const file of modalFiles) { - const filePath = path.join(modalPath, file); - const modal = require(filePath); + const filePath = path.join(modalPath, file) + const modal = require(filePath) - if ('name' in modal && 'execute' in modal && modal.type === 'modal') { - client.on(Events.InteractionCreate, modal.execute); + if ("name" in modal && "execute" in modal && modal.type === "modal") { + client.on(Events.InteractionCreate, modal.execute) } else { - console.log(`[WARNING] The modal at ${filePath} is missing a required "name", "execute" or "type" property.`); + console.log(`[WARNING] The modal at ${filePath} is missing a required "name", "execute" or "type" property.`) } } } diff --git a/utils/functions/account.js b/utils/functions/account.js index 69608ca..23e1032 100644 --- a/utils/functions/account.js +++ b/utils/functions/account.js @@ -1,10 +1,10 @@ -const fetch = require('axios') +const fetch = require("axios") const apikey = process.env.HYPIXELAPIKEY -const mojang = 'https://api.mojang.com/users/profiles/minecraft/' +const mojang = "https://api.mojang.com/users/profiles/minecraft/" const mojanguuid = "https://sessionserver.mojang.com/session/minecraft/profile/" -const hypixel = 'https://api.hypixel.net/player' -const guild = 'https://api.hypixel.net/guild' -const minotar = 'https://minotar.net/helm/' +const hypixel = "https://api.hypixel.net/player" +const guild = "https://api.hypixel.net/guild" +const minotar = "https://minotar.net/helm/" async function getUUID(ign) { try { diff --git a/utils/functions/bedwars.js b/utils/functions/bedwars.js index e3c6e16..4f744cc 100644 --- a/utils/functions/bedwars.js +++ b/utils/functions/bedwars.js @@ -2,52 +2,52 @@ Code used from the slothpixel project https://github.com/slothpixel/core */ function getExpForLevel(level) { - if (level == 0) return 0; + if (level == 0) return 0 - let respectedLevel = getLevelRespectingPrestige(level); + let respectedLevel = getLevelRespectingPrestige(level) if (respectedLevel > EASY_LEVELS) { - return 5000; + return 5000 } switch (respectedLevel) { - case 1: - return 500; - case 2: - return 1000; - case 3: - return 2000; - case 4: - return 3500; + case 1: + return 500 + case 2: + return 1000 + case 3: + return 2000 + case 4: + return 3500 } - return 5000; + return 5000 } function getLevelRespectingPrestige(level) { if (level > HIGHEST_PRESTIGE * LEVELS_PER_PRESTIGE) { - return level - HIGHEST_PRESTIGE * LEVELS_PER_PRESTIGE; + return level - HIGHEST_PRESTIGE * LEVELS_PER_PRESTIGE } else { - return level % LEVELS_PER_PRESTIGE; + return level % LEVELS_PER_PRESTIGE } } -const EASY_LEVELS = 4; -const EASY_LEVELS_XP = 7000; -const XP_PER_PRESTIGE = 96 * 5000 + EASY_LEVELS_XP; -const LEVELS_PER_PRESTIGE = 100; -const HIGHEST_PRESTIGE = 50; +const EASY_LEVELS = 4 +const EASY_LEVELS_XP = 7000 +const XP_PER_PRESTIGE = 96 * 5000 + EASY_LEVELS_XP +const LEVELS_PER_PRESTIGE = 100 +const HIGHEST_PRESTIGE = 50 function bedwarsLevel(exp) { - let prestiges = Math.floor(exp / XP_PER_PRESTIGE); - let level = prestiges * LEVELS_PER_PRESTIGE; - let expWithoutPrestiges = exp - (prestiges * XP_PER_PRESTIGE); + let prestiges = Math.floor(exp / XP_PER_PRESTIGE) + let level = prestiges * LEVELS_PER_PRESTIGE + let expWithoutPrestiges = exp - (prestiges * XP_PER_PRESTIGE) for (let i = 1; i <= EASY_LEVELS; ++i) { - let expForEasyLevel = getExpForLevel(i); + let expForEasyLevel = getExpForLevel(i) if (expWithoutPrestiges < expForEasyLevel) { - break; + break } - level++; - expWithoutPrestiges -= expForEasyLevel; + level++ + expWithoutPrestiges -= expForEasyLevel } return level + expWithoutPrestiges / 5000 } diff --git a/utils/functions/guild.js b/utils/functions/guild.js index 78f415d..0adc741 100644 --- a/utils/functions/guild.js +++ b/utils/functions/guild.js @@ -18,39 +18,39 @@ function guildLevel(exp) { 2500000, 2500000, 3000000, - ]; + ] - let level = 0; + let level = 0 // Increments by one from zero to the level cap for (let i = 0; i <= 1000; i += 1) { // need is the required exp to get to the next level - let need = 0; + let need = 0 if (i >= EXP_NEEDED.length) { - need = EXP_NEEDED[EXP_NEEDED.length - 1]; - } else { need = EXP_NEEDED[i]; } + need = EXP_NEEDED[EXP_NEEDED.length - 1] + } else { need = EXP_NEEDED[i] } // If the required exp to get to the next level isn't met returns // the current level plus progress towards the next (unused exp/need) // Otherwise increments the level and substracts the used exp from exp var if ((exp - need) < 0) { - return Math.round((level + (exp / need)) * 100) / 100; + return Math.round((level + (exp / need)) * 100) / 100 } - level += 1; - exp -= need; + level += 1 + exp -= need } // Returns the level cap - currently 1000 // If changed here, also change in for loop above - return 1000; + return 1000 } /* Code used from the hypixel-guild-bot project https://github.com/SimplyNo/hypixel-guild-bot */ function scaledGEXP(input) { - if (input <= 200000) return Number(input); - if (input <= 700000) return Number(Math.round(((input - 200000) / 10) + 200000)); - if (input > 700000) return Number(Math.round(((input - 700000) / 33) + 250000)); + if (input <= 200000) return Number(input) + if (input <= 700000) return Number(Math.round(((input - 200000) / 10) + 200000)) + if (input > 700000) return Number(Math.round(((input - 700000) / 33) + 250000)) } module.exports = { guildLevel, scaledGEXP } diff --git a/utils/functions/hypixel.js b/utils/functions/hypixel.js index ced5c87..e3c6d19 100644 --- a/utils/functions/hypixel.js +++ b/utils/functions/hypixel.js @@ -1,36 +1,36 @@ /* Code used from the slothpixel project https://github.com/slothpixel/core */ -const BASE = 10000; -const GROWTH = 2500; -const HALF_GROWTH = 0.5 * GROWTH; -const REVERSE_PQ_PREFIX = -(BASE - 0.5 * GROWTH) / GROWTH; -const REVERSE_CONST = REVERSE_PQ_PREFIX * REVERSE_PQ_PREFIX; -const GROWTH_DIVIDES_2 = 2 / GROWTH; +const BASE = 10000 +const GROWTH = 2500 +const HALF_GROWTH = 0.5 * GROWTH +const REVERSE_PQ_PREFIX = -(BASE - 0.5 * GROWTH) / GROWTH +const REVERSE_CONST = REVERSE_PQ_PREFIX * REVERSE_PQ_PREFIX +const GROWTH_DIVIDES_2 = 2 / GROWTH function getLevel(exp) { - return exp <= 1 ? 1 : Math.floor(1 + REVERSE_PQ_PREFIX + Math.sqrt(REVERSE_CONST + GROWTH_DIVIDES_2 * exp)); + return exp <= 1 ? 1 : Math.floor(1 + REVERSE_PQ_PREFIX + Math.sqrt(REVERSE_CONST + GROWTH_DIVIDES_2 * exp)) } function hypixelLevel(exp) { - return getLevel(exp) + getPercentageToNextLevel(exp); + return getLevel(exp) + getPercentageToNextLevel(exp) } function getTotalExpToLevel(level) { const lv = Math.floor(level); const - x0 = getTotalExpToFullLevel(lv); - if (level === lv) return x0; - return (getTotalExpToFullLevel(lv + 1) - x0) * (level % 1) + x0; + x0 = getTotalExpToFullLevel(lv) + if (level === lv) return x0 + return (getTotalExpToFullLevel(lv + 1) - x0) * (level % 1) + x0 } function getTotalExpToFullLevel(level) { - return (HALF_GROWTH * (level - 2) + BASE) * (level - 1); + return (HALF_GROWTH * (level - 2) + BASE) * (level - 1) } function getPercentageToNextLevel(exp) { - const lv = getLevel(exp); - const x0 = getTotalExpToLevel(lv); - return (exp - x0) / (getTotalExpToLevel(lv + 1) - x0); + const lv = getLevel(exp) + const x0 = getTotalExpToLevel(lv) + return (exp - x0) / (getTotalExpToLevel(lv + 1) - x0) } diff --git a/utils/functions/skywars.js b/utils/functions/skywars.js index fddfdf2..8e236ee 100644 --- a/utils/functions/skywars.js +++ b/utils/functions/skywars.js @@ -2,16 +2,16 @@ Code used from the slothpixel project https://github.com/slothpixel/core */ function skywarsLevel(xp) { - let xps = [0, 20, 70, 150, 250, 500, 1000, 2000, 3500, 6000, 10000, 15000]; + let xps = [0, 20, 70, 150, 250, 500, 1000, 2000, 3500, 6000, 10000, 15000] let exactLevel = 0 if (xp >= 15000) { - exactLevel = (xp - 15000) / 10000 + 12; - return exactLevel; + exactLevel = (xp - 15000) / 10000 + 12 + return exactLevel } else { for (i = 0; i < xps.length; i++) { if (xp < xps[i]) { - exactLevel = i + (xp - xps[i - 1]) / (xps[i] - xps[i - 1]); - return exactLevel; + exactLevel = i + (xp - xps[i - 1]) / (xps[i] - xps[i - 1]) + return exactLevel } } } diff --git a/utils/functions/uuid.js b/utils/functions/uuid.js index e7c1ea8..bc94980 100644 --- a/utils/functions/uuid.js +++ b/utils/functions/uuid.js @@ -1,5 +1,5 @@ function formatUuid(uuid) { - return uuid.replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/, '$1-$2-$3-$4-$5') + return uuid.replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/, "$1-$2-$3-$4-$5") } module.exports = { formatUuid } diff --git a/utils/utils.js b/utils/utils.js index 7e5d837..0898506 100644 --- a/utils/utils.js +++ b/utils/utils.js @@ -1,9 +1,9 @@ -const { skywarsLevel } = require('./functions/skywars.js') -const { bedwarsLevel } = require('./functions/bedwars.js') -const { hypixelLevel } = require('./functions/hypixel.js') -const { formatUuid } = require('./functions/uuid.js') -const { guildLevel, scaledGEXP } = require('./functions/guild.js') -const { getUUID, getIGN, getPlayer, getGuild, getHeadURL } = require('./functions/account.js') +const { skywarsLevel } = require("./functions/skywars.js") +const { bedwarsLevel } = require("./functions/bedwars.js") +const { hypixelLevel } = require("./functions/hypixel.js") +const { formatUuid } = require("./functions/uuid.js") +const { guildLevel, scaledGEXP } = require("./functions/guild.js") +const { getUUID, getIGN, getPlayer, getGuild, getHeadURL } = require("./functions/account.js") module.exports = { skywarsLevel,