Merge branch 'dev' into 'main'

Dev

See merge request illegitimate/illegitimate-bot!274
This commit is contained in:
2024-09-07 22:31:23 +00:00
110 changed files with 579 additions and 450 deletions

33
dprint.json Normal file
View File

@@ -0,0 +1,33 @@
{
"$schema": "https://plugins.dprint.dev/dprint/dprint-plugin-typescript/latest/schema.json",
"typescript": {
"lineWidth": 150,
"indentWidth": 4,
"useTabs": false,
"semiColons": "asi",
"quoteStyle": "alwaysDouble",
"newLineKind": "lf",
"bracePosition": "sameLine",
"trailingCommas": "never",
"operatorPosition": "maintain",
"typeLiteral.separatorKind.singleLine": "comma",
"typeLiteral.separatorKind.multiLine": "semiColon"
},
"json": {
"indentWidth": "4"
},
"markdown": {
},
"toml": {
},
"excludes": [
"**/node_modules",
"**/*-lock.json"
],
"plugins": [
"https://plugins.dprint.dev/typescript-0.91.8.wasm",
"https://plugins.dprint.dev/json-0.19.3.wasm",
"https://plugins.dprint.dev/markdown-0.17.8.wasm",
"https://plugins.dprint.dev/toml-0.6.2.wasm"
]
}

View File

@@ -19,6 +19,7 @@
"dev:conc": "conc --names \"SWC,BOT\" --prefix-colors \"blue, magenta\" \"yarn watch\" \"yarn dev:js\"", "dev:conc": "conc --names \"SWC,BOT\" --prefix-colors \"blue, magenta\" \"yarn watch\" \"yarn dev:js\"",
"dev:ts": "nodemon --config nodemon.json src/index.ts", "dev:ts": "nodemon --config nodemon.json src/index.ts",
"dev:js": "nodemon --config nodemon-js.json dist/index.js", "dev:js": "nodemon --config nodemon-js.json dist/index.js",
"format": "dprint fmt \"**/*.ts\"",
"check": "tsc --noEmit", "check": "tsc --noEmit",
"lint": "eslint", "lint": "eslint",
"lint:fix": "eslint --fix", "lint:fix": "eslint --fix",
@@ -61,6 +62,7 @@
"chokidar": "^3.6.0", "chokidar": "^3.6.0",
"concurrently": "^8.2.2", "concurrently": "^8.2.2",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"dprint": "^0.47.2",
"eslint": "^9.9.0", "eslint": "^9.9.0",
"globals": "^15.9.0", "globals": "^15.9.0",
"sqlite3": "^5.1.7", "sqlite3": "^5.1.7",

View File

@@ -8,7 +8,7 @@ async function deleteCommands() {
console.log("Started deleting application (/) commands.") console.log("Started deleting application (/) commands.")
await rest.put( await rest.put(
Routes.applicationGuildCommands(env.dev.devid, env.dev.guildid), Routes.applicationGuildCommands(env.dev.devid, env.dev.guildid),
{ body: [] }, { body: [] }
) )
console.log("Successfully deleted application (/) commands.") console.log("Successfully deleted application (/) commands.")
} catch (error) { } catch (error) {

View File

@@ -2,7 +2,7 @@ import { REST, RESTPutAPIApplicationCommandsJSONBody, Routes } from "discord.js"
import fs from "node:fs" import fs from "node:fs"
import { ICommand } from "../src/interfaces" import { ICommand } from "../src/interfaces"
import env from "../src/utils/Env" import env from "../src/utils/Env"
import color from "../src/utils/functions/colors" import { color } from "../src/utils/functions/colors"
const rest = new REST({ version: "10" }).setToken(env.prod.token) const rest = new REST({ version: "10" }).setToken(env.prod.token)
const commands: RESTPutAPIApplicationCommandsJSONBody = [] const commands: RESTPutAPIApplicationCommandsJSONBody = []
@@ -18,7 +18,7 @@ for (const file of contentMenuCommands) {
commands.push(command.data.toJSON()) commands.push(command.data.toJSON())
} }
(async () => { ;(async () => {
try { try {
console.log(color(`Started refreshing ${commands.length} application (/) commands.`, "green")) console.log(color(`Started refreshing ${commands.length} application (/) commands.`, "green"))
@@ -27,12 +27,11 @@ for (const file of contentMenuCommands) {
await rest.put( await rest.put(
Routes.applicationCommands(env.dev.clientid), Routes.applicationCommands(env.dev.clientid),
{ body: commands }, { body: commands }
).then(() => { ).then(() => {
console.log(color(`Successfully reloaded ${commands.length} application (/) commands.`, "green")) console.log(color(`Successfully reloaded ${commands.length} application (/) commands.`, "green"))
process.exit(0) process.exit(0)
}) })
} catch (error) { } catch (error) {
console.error(error) console.error(error)
} }

View File

@@ -1,7 +1,7 @@
import { REST, RESTPutAPIApplicationCommandsJSONBody, Routes } from "discord.js" import { REST, RESTPutAPIApplicationCommandsJSONBody, Routes } from "discord.js"
import fs from "fs" import fs from "fs"
import env from "../src/utils/Env"
import { ICommand } from "../src/interfaces" import { ICommand } from "../src/interfaces"
import env from "../src/utils/Env"
const rest = new REST({ version: "10" }).setToken(env.dev.devtoken) const rest = new REST({ version: "10" }).setToken(env.dev.devtoken)
const commands: RESTPutAPIApplicationCommandsJSONBody = [] const commands: RESTPutAPIApplicationCommandsJSONBody = []
@@ -21,13 +21,13 @@ for (const file of contentMenuCommands) {
} }
} }
(async () => { ;(async () => {
try { try {
console.log(`Started refreshing ${commands.length} application (/) commands.`) console.log(`Started refreshing ${commands.length} application (/) commands.`)
await rest.put( await rest.put(
Routes.applicationGuildCommands(env.dev.devid, env.dev.guildid), Routes.applicationGuildCommands(env.dev.devid, env.dev.guildid),
{ body: commands }, { body: commands }
).then(() => { ).then(() => {
console.log(`Successfully reloaded ${commands.length} application (/) commands.`) console.log(`Successfully reloaded ${commands.length} application (/) commands.`)
process.exit(0) process.exit(0)

View File

@@ -1,4 +1,4 @@
import { ContextMenuCommandBuilder, ApplicationCommandType, PermissionFlagsBits, userMention } from "discord.js" import { ApplicationCommandType, ContextMenuCommandBuilder, PermissionFlagsBits, userMention } from "discord.js"
import { IContextMenu } from "interfaces" import { IContextMenu } from "interfaces"
export default { export default {

View File

@@ -1,4 +1,4 @@
import { ContextMenuCommandBuilder, ApplicationCommandType, PermissionFlagsBits } from "discord.js" import { ApplicationCommandType, ContextMenuCommandBuilder, PermissionFlagsBits } from "discord.js"
import { IContextMenu } from "interfaces" import { IContextMenu } from "interfaces"
export default { export default {

View File

@@ -1,10 +1,10 @@
import { devMessage, embedColor, hypixelGuildID } from "config/options.js"
import { waitingListRole } from "config/roles.js"
import { ApplicationCommandType, ContextMenuCommandBuilder, PermissionFlagsBits, userMention } from "discord.js" import { ApplicationCommandType, ContextMenuCommandBuilder, PermissionFlagsBits, userMention } from "discord.js"
import { embedColor, devMessage, hypixelGuildID } from "config/options.js"
import { IContextMenu } from "interfaces" import { IContextMenu } from "interfaces"
import verify from "schemas/verifyTag.js" import verify from "schemas/verifyTag.js"
import { getGuild, getHeadURL, getIGN } from "utils/Hypixel.js"
import roleManage from "utils/functions/rolesmanage.js" import roleManage from "utils/functions/rolesmanage.js"
import { waitingListRole } from "config/roles.js" import { getGuild, getHeadURL, getIGN } from "utils/Hypixel.js"
export default { export default {
name: "Update User", name: "Update User",

View File

@@ -1,15 +1,13 @@
import { anilist } from "anilist"
import { devMessage, embedColor } from "config/options.js"
import { SlashCommandBuilder } from "discord.js" import { SlashCommandBuilder } from "discord.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import { devMessage, embedColor } from "config/options.js"
import { anilist } from "anilist"
import { capitalizeFirstLetter, removeIndents } from "utils/functions/funcs.js"
export default { export default {
name: "anime", name: "anime",
description: "Anime subcommands", description: "Anime subcommands",
public: true, public: true,
dev: false, dev: false,
subcommands: true,
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName("anime") .setName("anime")
@@ -59,14 +57,14 @@ export default {
const animeEpisodes = anime.episodes ? animeEpisodesRaw : "No episodes available" const animeEpisodes = anime.episodes ? animeEpisodesRaw : "No episodes available"
const animeStartDate = [anime.startDate?.day || "??", anime.startDate?.month || "??", anime.startDate?.year || "????"].join(".") const animeStartDate = [anime.startDate?.day || "??", anime.startDate?.month || "??", anime.startDate?.year || "????"].join(".")
const animeEndDate = [anime.endDate?.day || "??", anime.endDate?.month || "??", anime.endDate?.year || "????"].join(".") const animeEndDate = [anime.endDate?.day || "??", anime.endDate?.month || "??", anime.endDate?.year || "????"].join(".")
const animeSeasonRaw = capitalizeFirstLetter(anime.season ?? "null") + " " + anime.startDate?.year const animeSeasonRaw = anime.season?.capitalizeFirstLetter() + " " + anime.startDate?.year
const animeSeason = anime.season ? animeSeasonRaw : "No season available" const animeSeason = anime.season ? animeSeasonRaw : "No season available"
await interaction.editReply({ await interaction.editReply({
embeds: [{ embeds: [{
title: romaji + " | " + english, title: romaji + " | " + english,
url: anime.siteUrl || "", url: anime.siteUrl || "",
description: removeIndents(` description: `
**Description:** ${animeDescription} **Description:** ${animeDescription}
**Genres:** ${anime.genres.join(", ")} **Genres:** ${anime.genres.join(", ")}
@@ -76,7 +74,7 @@ export default {
**Season:** ${animeSeason} **Season:** ${animeSeason}
**Start Date:** ${animeStartDate} **Start Date:** ${animeStartDate}
**End Date:** ${animeEndDate} **End Date:** ${animeEndDate}
`), `.removeIndents(),
color: embedColor, color: embedColor,
thumbnail: { thumbnail: {
url: anime.coverImage?.medium || "" url: anime.coverImage?.medium || ""

View File

@@ -1,9 +1,8 @@
import { SlashCommandBuilder, PermissionFlagsBits, userMention, GuildMember, } from "discord.js" import { devMessage, embedColor } from "config/options.js"
import { admin, helper } from "config/roles.js" import { admin, helper } from "config/roles.js"
import { embedColor, devMessage } from "config/options.js" import { GuildMember, PermissionFlagsBits, SlashCommandBuilder, userMention } from "discord.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import logToChannel from "utils/functions/logtochannel.js" import logToChannel from "utils/functions/logtochannel.js"
import { removeIndents } from "utils/functions/funcs.js"
export default { export default {
name: "ban", name: "ban",
@@ -36,7 +35,7 @@ export default {
{ name: "4 days", value: 4 }, { name: "4 days", value: 4 },
{ name: "5 days", value: 5 }, { name: "5 days", value: 5 },
{ name: "6 days", value: 6 }, { name: "6 days", value: 6 },
{ name: "7 days", value: 7 }, { name: "7 days", value: 7 }
) )
) )
.setDefaultMemberPermissions(PermissionFlagsBits.BanMembers) .setDefaultMemberPermissions(PermissionFlagsBits.BanMembers)
@@ -102,12 +101,12 @@ export default {
icon_url: mod.user.avatarURL() || undefined icon_url: mod.user.avatarURL() || undefined
}, },
title: "Member Banned", title: "Member Banned",
description: removeIndents(` description: `
**User:** ${userMention(member.user.id)} **User:** ${userMention(member.user.id)}
**Mod:** ${userMention(mod.user.id)} **Mod:** ${userMention(mod.user.id)}
**Reason:** ${reason} **Reason:** ${reason}
**Messages Deleted:** ${messageDeletionDays} days **Messages Deleted:** ${messageDeletionDays} days
`), `.removeIndents(),
color: embedColor, color: embedColor,
thumbnail: { thumbnail: {
url: mod.user.avatarURL() || "" url: mod.user.avatarURL() || ""
@@ -136,5 +135,5 @@ export default {
} }
}] }]
}) })
}, }
} as ICommand } as ICommand

View File

@@ -1,11 +1,10 @@
import { execSync } from "child_process"
import { devMessage, embedColor } from "config/options.js"
import { SlashCommandBuilder } from "discord.js" import { SlashCommandBuilder } from "discord.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import { embedColor, devMessage } from "config/options.js" import { createRequire } from "node:module"
import os from "os" import os from "os"
import prettyMs from "pretty-ms" import prettyMs from "pretty-ms"
import { execSync } from "child_process"
import { removeIndents } from "utils/functions/funcs.js"
import { createRequire } from "node:module"
const require = createRequire(import.meta.url) const require = createRequire(import.meta.url)
const { dependencies, devDependencies } = require("../../package.json") const { dependencies, devDependencies } = require("../../package.json")
@@ -46,7 +45,7 @@ export default {
await interaction.reply({ await interaction.reply({
embeds: [{ embeds: [{
title: "Bot Info", title: "Bot Info",
description: removeIndents(` description: `
__**Bot**__ __**Bot**__
> **Name**: \`${client.user!.username}\` > **Name**: \`${client.user!.username}\`
> **ID**: \`${client.user!.id}\` > **ID**: \`${client.user!.id}\`
@@ -56,8 +55,8 @@ export default {
__**Project**__ __**Project**__
> **Node Version:** \`${process.version}\` > **Node Version:** \`${process.version}\`
> **Typescript Version:** \`${(castedDevDeps.typescript).replace("^", "")}\` > **Typescript Version:** \`${castedDevDeps.typescript.replace("^", "")}\`
> **Discord.js Version:** \`${(castedDeps["discord.js"]).replace("^", "")}\` > **Discord.js Version:** \`${castedDeps["discord.js"].replace("^", "")}\`
> **Dependencies (${Object.keys(castedDeps).length}):** \`${deps}\` > **Dependencies (${Object.keys(castedDeps).length}):** \`${deps}\`
> **Dev Dependencies (${Object.keys(castedDevDeps).length}):** \`${devDeps}\` > **Dev Dependencies (${Object.keys(castedDevDeps).length}):** \`${devDeps}\`
> **Uptime:** \`${prettyMs(client.uptime!, { verbose: true })}\` > **Uptime:** \`${prettyMs(client.uptime!, { verbose: true })}\`
@@ -67,15 +66,15 @@ export default {
> **Channels:** \`${client.channels.cache.size}\` > **Channels:** \`${client.channels.cache.size}\`
> **Users:** \`${client.users.cache.size}\` > **Users:** \`${client.users.cache.size}\`
> **Roles:** \`${client.guilds.cache.reduce((a, b) => a + b.roles.cache.size, 0)}\` > **Roles:** \`${client.guilds.cache.reduce((a, b) => a + b.roles.cache.size, 0)}\`
`), `.removeIndents(),
thumbnail: { thumbnail: {
url: client.user!.avatarURL() || "", url: client.user!.avatarURL() || ""
}, },
color: embedColor, color: embedColor,
footer: { footer: {
text: interaction.guild!.name + " | " + devMessage, text: interaction.guild!.name + " | " + devMessage,
icon_url: interaction.guild!.iconURL() || undefined, icon_url: interaction.guild!.iconURL() || undefined
}, }
}] }]
}) })
} }

View File

@@ -1,8 +1,8 @@
import { devMessage, embedColor } from "config/options.js"
import { bwfkdr, bwstars, bwwins, duelswins, duelswlr, swkdr, swstars } from "config/reqs.js"
import { SlashCommandBuilder } from "discord.js" import { SlashCommandBuilder } from "discord.js"
import { bwfkdr, bwstars, bwwins, swstars, swkdr, duelswins, duelswlr } from "config/reqs.js"
import { embedColor, devMessage } from "config/options.js"
import { hypixelLevel, bedwarsLevel, skywarsLevel, getUUID, getPlayer, getGuild, getHeadURL } from "utils/Hypixel.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import { bedwarsLevel, getGuild, getHeadURL, getPlayer, getUUID, hypixelLevel, skywarsLevel } from "utils/Hypixel.js"
export default { export default {
name: "check", name: "check",
@@ -202,7 +202,7 @@ export default {
" / " + duelswins.toString() + "`\n" + " / " + duelswins.toString() + "`\n" +
"**➺ WLR:** `" + hsduelswlr.toFixed(2).toString() + "**➺ WLR:** `" + hsduelswlr.toFixed(2).toString() +
" / " + duelswlr.toString() + "`\n" + " / " + duelswlr.toString() + "`\n" +
"**➺ KDR:** `" + hsduelskd.toFixed(2).toString() + "`", "**➺ KDR:** `" + hsduelskd.toFixed(2).toString() + "`"
}) })
} else { } else {
statsFields.push({ statsFields.push({

View File

@@ -1,8 +1,7 @@
import { SlashCommandBuilder, PermissionFlagsBits, TextChannel, channelMention, userMention } from "discord.js"
import { embedColor } from "config/options.js" import { embedColor } from "config/options.js"
import { channelMention, PermissionFlagsBits, SlashCommandBuilder, TextChannel, userMention } from "discord.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import logToChannel from "utils/functions/logtochannel.js" import logToChannel from "utils/functions/logtochannel.js"
import { removeIndents } from "utils/functions/funcs.js"
export default { export default {
name: "clear", name: "clear",
@@ -53,11 +52,11 @@ export default {
icon_url: interaction.user.avatarURL() || undefined icon_url: interaction.user.avatarURL() || undefined
}, },
title: "Messages Cleared", title: "Messages Cleared",
description: removeIndents(` description: `
**Channel:** ${channelMention(channel.id)} **Channel:** ${channelMention(channel.id)}
**Amount:** \`${messages.size}\` messages **Amount:** \`${messages.size}\` messages
**Mod:** ${userMention(interaction.user.id)} **Mod:** ${userMention(interaction.user.id)}
`), `.removeIndents(),
color: embedColor, color: embedColor,
thumbnail: { thumbnail: {
url: interaction.user.avatarURL() || "" url: interaction.user.avatarURL() || ""

View File

@@ -1,5 +1,5 @@
import { SlashCommandBuilder, PermissionFlagsBits } from "discord.js"
import { embedColor } from "config/options.js" import { embedColor } from "config/options.js"
import { PermissionFlagsBits, SlashCommandBuilder } from "discord.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import settings from "schemas/settingsTag.js" import settings from "schemas/settingsTag.js"

View File

@@ -1,5 +1,5 @@
import { devMessage, embedColor } from "config/options.js"
import { PermissionFlagsBits, SlashCommandBuilder } from "discord.js" import { PermissionFlagsBits, SlashCommandBuilder } from "discord.js"
import { embedColor, devMessage } from "config/options.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import ban from "./counting/ban.js" import ban from "./counting/ban.js"
import unban from "./counting/unban.js" import unban from "./counting/unban.js"

View File

@@ -1,6 +1,6 @@
import { ChatInputCommandInteraction, GuildMember, userMention } from "discord.js" import { devMessage, embedColor } from "config/options.js"
import { countingBanned } from "config/roles.js" import { countingBanned } from "config/roles.js"
import { embedColor, devMessage } from "config/options.js" import { ChatInputCommandInteraction, GuildMember, userMention } from "discord.js"
export default async function ban(interaction: ChatInputCommandInteraction): Promise<void> { export default async function ban(interaction: ChatInputCommandInteraction): Promise<void> {
const member = interaction.options.getMember("user")! as GuildMember const member = interaction.options.getMember("user")! as GuildMember

View File

@@ -1,6 +1,6 @@
import { ChatInputCommandInteraction, GuildMember, userMention } from "discord.js" import { devMessage, embedColor } from "config/options.js"
import { countingBanned } from "config/roles.js" import { countingBanned } from "config/roles.js"
import { embedColor, devMessage } from "config/options.js" import { ChatInputCommandInteraction, GuildMember, userMention } from "discord.js"
export default async function ban(interaction: ChatInputCommandInteraction): Promise<void> { export default async function ban(interaction: ChatInputCommandInteraction): Promise<void> {
const member = interaction.options.getMember("user")! as GuildMember const member = interaction.options.getMember("user")! as GuildMember

View File

@@ -1,11 +1,10 @@
import { SlashCommandBuilder, PermissionFlagsBits, userMention, GuildMember } from "discord.js" import { devMessage, embedColor } from "config/options.js"
import { embedColor, devMessage } from "config/options.js" import { GuildMember, PermissionFlagsBits, SlashCommandBuilder, userMention } from "discord.js"
import verify from "schemas/verifyTag.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import roleManage from "utils/functions/rolesmanage.js" import verify from "schemas/verifyTag.js"
import logToChannel from "utils/functions/logtochannel.js" import logToChannel from "utils/functions/logtochannel.js"
import roleManage from "utils/functions/rolesmanage.js"
import { getIGN } from "utils/Hypixel.js" import { getIGN } from "utils/Hypixel.js"
import { removeIndents } from "utils/functions/funcs.js"
export default { export default {
name: "forceunverify", name: "forceunverify",
@@ -58,12 +57,12 @@ export default {
name: mod.username, name: mod.username,
icon_url: mod.avatarURL() || undefined icon_url: mod.avatarURL() || undefined
}, },
description: removeIndents(` description: `
**User:** ${userMention(member.user.id)} **User:** ${userMention(member.user.id)}
**Mod:** ${userMention(mod.id)} **Mod:** ${userMention(mod.id)}
**IGN:** \`${ign}\` **IGN:** \`${ign}\`
**UUID:** \`${uuid}\` **UUID:** \`${uuid}\`
`), `.removeIndents(),
color: embedColor, color: embedColor,
thumbnail: { thumbnail: {
url: mod.avatarURL() || "" url: mod.avatarURL() || ""

View File

@@ -1,11 +1,10 @@
import { SlashCommandBuilder, PermissionFlagsBits, userMention, GuildMember } from "discord.js" import { devMessage, embedColor, hypixelGuildID } from "config/options.js"
import { getGuild, getHeadURL, getIGN } from "utils/Hypixel.js"
import { hypixelGuildID, embedColor, devMessage } from "config/options.js"
import verify from "schemas/verifyTag.js"
import { ICommand } from "interfaces"
import roleManage from "utils/functions/rolesmanage.js"
import { waitingListRole } from "config/roles.js" import { waitingListRole } from "config/roles.js"
import { removeIndents } from "utils/functions/funcs.js" import { GuildMember, PermissionFlagsBits, SlashCommandBuilder, userMention } from "discord.js"
import { ICommand } from "interfaces"
import verify from "schemas/verifyTag.js"
import roleManage from "utils/functions/rolesmanage.js"
import { getGuild, getHeadURL, getIGN } from "utils/Hypixel.js"
export default { export default {
name: "forceupdate", name: "forceupdate",
@@ -85,11 +84,11 @@ export default {
await interaction.editReply({ await interaction.editReply({
embeds: [{ embeds: [{
description: removeIndents(` description: `
${usermentioned} was given the \`Default Member\` role. ${usermentioned} was given the \`Default Member\` role.
IGN: \`${ign}\` IGN: \`${ign}\`
`), `.removeIndents(),
color: embedColor, color: embedColor,
thumbnail: { thumbnail: {
url: head! url: head!
@@ -159,11 +158,11 @@ export default {
await interaction.editReply({ await interaction.editReply({
embeds: [{ embeds: [{
description: removeIndents(` description: `
${usermentioned} was given the \`${replyRank}\` role. ${usermentioned} was given the \`${replyRank}\` role.
IGN: \`${ign}\` IGN: \`${ign}\`
`), `.removeIndents(),
color: embedColor, color: embedColor,
thumbnail: { thumbnail: {
url: head! url: head!

View File

@@ -1,11 +1,10 @@
import { SlashCommandBuilder, PermissionFlagsBits, GuildMember, userMention } from "discord.js" import { devMessage, embedColor, hypixelGuildID } from "config/options.js"
import { getUUID, getPlayer, getGuild, getHeadURL } from "utils/Hypixel.js" import { GuildMember, PermissionFlagsBits, SlashCommandBuilder, userMention } from "discord.js"
import { embedColor, hypixelGuildID, devMessage } from "config/options.js"
import verify from "schemas/verifyTag.js"
import roleManage from "utils/functions/rolesmanage.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import verify from "schemas/verifyTag.js"
import logToChannel from "utils/functions/logtochannel.js" import logToChannel from "utils/functions/logtochannel.js"
import { removeIndents } from "utils/functions/funcs.js" import roleManage from "utils/functions/rolesmanage.js"
import { getGuild, getHeadURL, getPlayer, getUUID } from "utils/Hypixel.js"
export default { export default {
name: "forceverify", name: "forceverify",
@@ -43,8 +42,10 @@ export default {
} }
if (!user) { if (!user) {
interaction.editReply("Please provide a user to force verify.\n" + interaction.editReply(
"This can also mean the user is not in the server.") "Please provide a user to force verify.\n" +
"This can also mean the user is not in the server."
)
return return
} }
@@ -161,7 +162,7 @@ export default {
await verify.create({ await verify.create({
userID: user.user.id, userID: user.user.id,
uuid: uuid, uuid: uuid
}) })
await logToChannel("mod", { await logToChannel("mod", {
@@ -171,12 +172,12 @@ export default {
icon_url: mod.avatarURL() || undefined icon_url: mod.avatarURL() || undefined
}, },
title: "Force Verified", title: "Force Verified",
description: removeIndents(` description: `
**User:** ${userMention(user.id)} **User:** ${userMention(user.id)}
**Mod:** ${userMention(mod.id)} **Mod:** ${userMention(mod.id)}
**IGN:** \`${player.displayname}\` **IGN:** \`${player.displayname}\`
**UUID:** \`${uuid}\` **UUID:** \`${uuid}\`
`), `.removeIndents(),
color: embedColor, color: embedColor,
thumbnail: { thumbnail: {
url: mod.avatarURL() || "" url: mod.avatarURL() || ""

View File

@@ -1,8 +1,8 @@
import { devMessage, embedColor } from "config/options.js"
import { SlashCommandBuilder } from "discord.js" import { SlashCommandBuilder } from "discord.js"
import { embedColor, devMessage } from "config/options.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import guildMember from "./guild/member.js"
import guildInfo from "./guild/info.js" import guildInfo from "./guild/info.js"
import guildMember from "./guild/member.js"
import guildTop from "./guild/top.js" import guildTop from "./guild/top.js"
export default { export default {

View File

@@ -1,7 +1,7 @@
import { getUUID, getIGN, getPlayer, getGuild, guildLevel } from "utils/Hypixel.js" import { devMessage, embedColor } from "config/options.js"
import { embedColor, devMessage } from "config/options.js"
import { ChatInputCommandInteraction } from "discord.js" import { ChatInputCommandInteraction } from "discord.js"
import { IGuildData } from "interfaces" import { IGuildData } from "interfaces"
import { getGuild, getIGN, getPlayer, getUUID, guildLevel } from "utils/Hypixel.js"
export default async function guildInfo(interaction: ChatInputCommandInteraction): Promise<void> { export default async function guildInfo(interaction: ChatInputCommandInteraction): Promise<void> {
await interaction.deferReply() await interaction.deferReply()
@@ -118,8 +118,7 @@ export default async function guildInfo(interaction: ChatInputCommandInteraction
const guildCreatedMinute = guildCreated.getMinutes() const guildCreatedMinute = guildCreated.getMinutes()
const guildCreatedSecond = guildCreated.getSeconds() const guildCreatedSecond = guildCreated.getSeconds()
const guildCreatedTime = const guildCreatedTime = guildCreatedDate + "." +
guildCreatedDate + "." +
guildCreatedMonth + "." + guildCreatedMonth + "." +
guildCreatedYear + " " + guildCreatedYear + " " +
guildCreatedHour + ":" + guildCreatedHour + ":" +
@@ -132,7 +131,9 @@ export default async function guildInfo(interaction: ChatInputCommandInteraction
const guildRanks = guildRanksUnsorted.map(r => "**➺ " + r.name + "** `[" + r.tag + "]`").join("\n") const guildRanks = guildRanksUnsorted.map(r => "**➺ " + r.name + "** `[" + r.tag + "]`").join("\n")
const allGuildMembersWeeklyXP = guildMembers.map(member => member.expHistory) const allGuildMembersWeeklyXP = guildMembers.map(member => member.expHistory)
const guildMembersWeeklyXP = allGuildMembersWeeklyXP.map(member => { return Object.values(member).reduce((a, b) => a + b, 0) }) const guildMembersWeeklyXP = allGuildMembersWeeklyXP.map(member => {
return Object.values(member).reduce((a, b) => a + b, 0)
})
const totalGuildMembersWeeklyXPUnformatted = guildMembersWeeklyXP.reduce((a, b) => a + b, 0) const totalGuildMembersWeeklyXPUnformatted = guildMembersWeeklyXP.reduce((a, b) => a + b, 0)
const totalGuildMembersWeeklyXP = new Intl.NumberFormat("en-US").format(totalGuildMembersWeeklyXPUnformatted) const totalGuildMembersWeeklyXP = new Intl.NumberFormat("en-US").format(totalGuildMembersWeeklyXPUnformatted)

View File

@@ -1,6 +1,6 @@
import { getUUID, getPlayer, getGuild, getHeadURL } from "utils/Hypixel.js" import { devMessage, embedColor } from "config/options.js"
import { embedColor, devMessage } from "config/options.js"
import { ChatInputCommandInteraction } from "discord.js" import { ChatInputCommandInteraction } from "discord.js"
import { getGuild, getHeadURL, getPlayer, getUUID } from "utils/Hypixel.js"
export default async function guildMember(interaction: ChatInputCommandInteraction): Promise<void> { export default async function guildMember(interaction: ChatInputCommandInteraction): Promise<void> {
await interaction.deferReply() await interaction.deferReply()
@@ -118,8 +118,7 @@ export default async function guildMember(interaction: ChatInputCommandInteracti
const guildMemberJoinMinutes = guildMemberJoinTime.getMinutes() const guildMemberJoinMinutes = guildMemberJoinTime.getMinutes()
const guildMemberJoinSeconds = guildMemberJoinTime.getSeconds() const guildMemberJoinSeconds = guildMemberJoinTime.getSeconds()
const guildMemberJoin = const guildMemberJoin = guildMemberJoinDate + "." +
guildMemberJoinDate + "." +
guildMemberJoinMonth + "." + guildMemberJoinMonth + "." +
guildMemberJoinYear + " " + guildMemberJoinYear + " " +
guildMemberJoinHours + ":" + guildMemberJoinHours + ":" +

View File

@@ -1,7 +1,7 @@
import { getUUID, getPlayer, getGuild, getIGN } from "utils/Hypixel.js" import { devMessage, embedColor } from "config/options.js"
import { embedColor, devMessage } from "config/options.js"
import { ChannelType, ChatInputCommandInteraction } from "discord.js" import { ChannelType, ChatInputCommandInteraction } from "discord.js"
import { IGuildData } from "interfaces" import { IGuildData } from "interfaces"
import { getGuild, getIGN, getPlayer, getUUID } from "utils/Hypixel.js"
import { redis } from "utils/Illegitimate.js" import { redis } from "utils/Illegitimate.js"
export default async function guildTop(interaction: ChatInputCommandInteraction): Promise<void> { export default async function guildTop(interaction: ChatInputCommandInteraction): Promise<void> {
@@ -143,8 +143,8 @@ export default async function guildTop(interaction: ChatInputCommandInteraction)
amount = 1 amount = 1
} }
type GuildTopData = { ign: string; uuid: string }[] type GuildTopData = { ign: string, uuid: string }[]
type NewList = { name: string; value: string; inline: boolean }[] type NewList = { name: string, value: string, inline: boolean }[]
let cacheStatus: boolean let cacheStatus: boolean
let guildData: GuildTopData = [] let guildData: GuildTopData = []

View File

@@ -1,5 +1,5 @@
import { devMessage, embedColor } from "config/options.js"
import { SlashCommandBuilder } from "discord.js" import { SlashCommandBuilder } from "discord.js"
import { embedColor, devMessage } from "config/options.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
export default { export default {

View File

@@ -1,7 +1,6 @@
import { SlashCommandBuilder, PermissionFlagsBits } from "discord.js" import { devMessage, embedColor, instructionsgif } from "config/options.js"
import { embedColor, devMessage, instructionsgif } from "config/options.js" import { PermissionFlagsBits, SlashCommandBuilder } from "discord.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import { removeIndents } from "utils/functions/funcs.js"
export default { export default {
name: "instructions", name: "instructions",
@@ -19,14 +18,14 @@ export default {
await interaction.reply({ await interaction.reply({
embeds: [{ embeds: [{
title: "Verification", title: "Verification",
description: removeIndents(` description: `
- Log onto hypixel. - Log onto hypixel.
- Right click with the head in your hotbar. - Right click with the head in your hotbar.
- Click on the social media icon. - Click on the social media icon.
- Click on the discord icon. - Click on the discord icon.
- Type your username in the chat and press enter. - Type your username in the chat and press enter.
- Run the \`/verify\` command in this channel. - Run the \`/verify\` command in this channel.
`), `.removeIndents(),
thumbnail: { thumbnail: {
url: interaction.guild?.iconURL() || "" url: interaction.guild?.iconURL() || ""
}, },
@@ -36,7 +35,7 @@ export default {
icon_url: interaction.guild!.iconURL() || undefined icon_url: interaction.guild!.iconURL() || undefined
}, },
image: { image: {
url: instructionsgif, url: instructionsgif
} }
}] }]
}) })

View File

@@ -1,9 +1,8 @@
import { SlashCommandBuilder, PermissionFlagsBits, userMention, GuildMember } from "discord.js" import { devMessage, embedColor } from "config/options.js"
import { admin, helper } from "config/roles.js" import { admin, helper } from "config/roles.js"
import { embedColor, devMessage } from "config/options.js" import { GuildMember, PermissionFlagsBits, SlashCommandBuilder, userMention } from "discord.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import logToChannel from "utils/functions/logtochannel.js" import logToChannel from "utils/functions/logtochannel.js"
import { removeIndents } from "utils/functions/funcs.js"
export default { export default {
name: "kick", name: "kick",
@@ -76,11 +75,11 @@ export default {
icon_url: mod.user.avatarURL() || undefined icon_url: mod.user.avatarURL() || undefined
}, },
title: "Member Kicked", title: "Member Kicked",
description: removeIndents(` description: `
**User:** ${userMention(member.user.id)} **User:** ${userMention(member.user.id)}
**Mod:** ${userMention(mod.user.id)} **Mod:** ${userMention(mod.user.id)}
**Reason:** ${reason} **Reason:** ${reason}
`), `.removeIndents(),
color: embedColor, color: embedColor,
thumbnail: { thumbnail: {
url: mod.user.avatarURL() || "" url: mod.user.avatarURL() || ""

View File

@@ -1,13 +1,13 @@
import { PermissionFlagsBits, SlashCommandBuilder } from "discord.js" import { PermissionFlagsBits, SlashCommandBuilder } from "discord.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import play from "./music/play.js"
import leave from "./music/leave.js" import leave from "./music/leave.js"
import queue from "./music/queue.js"
import volume from "./music/volume.js"
import skip from "./music/skip.js"
import nowplaying from "./music/nowplaying.js" import nowplaying from "./music/nowplaying.js"
import pause from "./music/pause.js" import pause from "./music/pause.js"
import play from "./music/play.js"
import queue from "./music/queue.js"
import skip from "./music/skip.js"
import unpause from "./music/unpause.js" import unpause from "./music/unpause.js"
import volume from "./music/volume.js"
export default { export default {
name: "music", name: "music",
@@ -28,7 +28,9 @@ export default {
.setName("query") .setName("query")
.setDescription("The song to play") .setDescription("The song to play")
.setAutocomplete(true) .setAutocomplete(true)
.setRequired(true))) .setRequired(true)
)
)
.addSubcommand(subcommand => .addSubcommand(subcommand =>
subcommand subcommand
.setName("volume") .setName("volume")
@@ -39,7 +41,9 @@ export default {
.setDescription("The volume to set") .setDescription("The volume to set")
.setMinValue(1) .setMinValue(1)
.setMaxValue(100) .setMaxValue(100)
.setRequired(true))) .setRequired(true)
)
)
.addSubcommand(subcommand => .addSubcommand(subcommand =>
subcommand subcommand
.setName("skip") .setName("skip")
@@ -47,27 +51,34 @@ export default {
.addNumberOption(option => .addNumberOption(option =>
option option
.setName("amount") .setName("amount")
.setDescription("The amount of songs to skip"))) .setDescription("The amount of songs to skip")
)
)
.addSubcommand(subcommand => .addSubcommand(subcommand =>
subcommand subcommand
.setName("queue") .setName("queue")
.setDescription("Show the queue")) .setDescription("Show the queue")
)
.addSubcommand(subcommand => .addSubcommand(subcommand =>
subcommand subcommand
.setName("nowplaying") .setName("nowplaying")
.setDescription("Show the currently playing song")) .setDescription("Show the currently playing song")
)
.addSubcommand(subcommand => .addSubcommand(subcommand =>
subcommand subcommand
.setName("pause") .setName("pause")
.setDescription("Pause the music")) .setDescription("Pause the music")
)
.addSubcommand(subcommand => .addSubcommand(subcommand =>
subcommand subcommand
.setName("unpause") .setName("unpause")
.setDescription("Unpause the music")) .setDescription("Unpause the music")
)
.addSubcommand(subcommand => .addSubcommand(subcommand =>
subcommand subcommand
.setName("leave") .setName("leave")
.setDescription("Leave the voice channel")) .setDescription("Leave the voice channel")
)
.setDMPermission(false) .setDMPermission(false)
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator), .setDefaultMemberPermissions(PermissionFlagsBits.Administrator),

View File

@@ -1,7 +1,6 @@
import { embedColor } from "config/options.js" import { embedColor } from "config/options.js"
import { useMainPlayer } from "discord-player" import { useMainPlayer } from "discord-player"
import { ChatInputCommandInteraction } from "discord.js" import { ChatInputCommandInteraction } from "discord.js"
import { removeIndents } from "utils/functions/funcs.js"
export default async function nowplaying(interaction: ChatInputCommandInteraction) { export default async function nowplaying(interaction: ChatInputCommandInteraction) {
await interaction.deferReply() await interaction.deferReply()
@@ -42,11 +41,11 @@ export default async function nowplaying(interaction: ChatInputCommandInteractio
await interaction.editReply({ await interaction.editReply({
embeds: [{ embeds: [{
title: "Now Playing", title: "Now Playing",
description: removeIndents(` description: `
[${current.title}](${current.url}) [${current.title}](${current.url})
${progressBar} ${progressBar}
`), `.removeIndents(),
color: embedColor, color: embedColor,
thumbnail: { thumbnail: {
url: current.thumbnail url: current.thumbnail

View File

@@ -23,7 +23,7 @@ export default async function play(interaction: ChatInputCommandInteraction) {
const { track } = await player.play(channel, query, { const { track } = await player.play(channel, query, {
requestedBy: interaction.user, requestedBy: interaction.user,
nodeOptions: { nodeOptions: {
volume: 25, volume: 25
} }
}) })

View File

@@ -1,5 +1,5 @@
import { devMessage, embedColor } from "config/options.js"
import { SlashCommandBuilder } from "discord.js" import { SlashCommandBuilder } from "discord.js"
import { embedColor, devMessage } from "config/options.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
export default { export default {

View File

@@ -1,5 +1,5 @@
import { SlashCommandBuilder, User } from "discord.js"
import { embedColor } from "config/options.js" import { embedColor } from "config/options.js"
import { SlashCommandBuilder, User } from "discord.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import env from "utils/Env.js" import env from "utils/Env.js"

View File

@@ -1,10 +1,9 @@
import { SlashCommandBuilder, PermissionFlagsBits, userMention, GuildMember } from "discord.js" import { devMessage, embedColor } from "config/options.js"
import { embedColor, devMessage } from "config/options.js"
import waitinglist from "schemas/waitinglistTag.js"
import { ICommand } from "interfaces"
import logToChannel from "utils/functions/logtochannel.js"
import { waitingListRole } from "config/roles.js" import { waitingListRole } from "config/roles.js"
import { removeIndents } from "utils/functions/funcs.js" import { GuildMember, PermissionFlagsBits, SlashCommandBuilder, userMention } from "discord.js"
import { ICommand } from "interfaces"
import waitinglist from "schemas/waitinglistTag.js"
import logToChannel from "utils/functions/logtochannel.js"
export default { export default {
name: "remove", name: "remove",
@@ -58,11 +57,11 @@ export default {
icon_url: mod.avatarURL() || undefined icon_url: mod.avatarURL() || undefined
}, },
title: "Waiting List - Remove User", title: "Waiting List - Remove User",
description: removeIndents(` description: `
**User:** ${userMention(member.user.id)} **User:** ${userMention(member.user.id)}
**Reason:** ${reason} **Reason:** ${reason}
**Mod:** ${userMention(mod.id)} **Mod:** ${userMention(mod.id)}
`), `.removeIndents(),
color: embedColor, color: embedColor,
thumbnail: { thumbnail: {
url: mod.avatarURL() || "" url: mod.avatarURL() || ""

View File

@@ -1,6 +1,6 @@
import { devMessage, embedColor } from "config/options.js"
import { bwfkdr, bwstars, bwwins, duelswins, duelswlr, swkdr, swstars } from "config/reqs.js"
import { SlashCommandBuilder } from "discord.js" import { SlashCommandBuilder } from "discord.js"
import { embedColor, devMessage } from "config/options.js"
import { bwfkdr, bwstars, bwwins, swstars, swkdr, duelswins, duelswlr } from "config/reqs.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
export default { export default {

View File

@@ -1,5 +1,5 @@
import { SlashCommandBuilder, PermissionFlagsBits, ChannelType, TextChannel } from "discord.js" import { devMessage, embedColor } from "config/options.js"
import { embedColor, devMessage } from "config/options.js" import { ChannelType, PermissionFlagsBits, SlashCommandBuilder, TextChannel } from "discord.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
export default { export default {

View File

@@ -1,8 +1,7 @@
import { SlashCommandBuilder, PermissionFlagsBits, userMention, GuildMember } from "discord.js" import { devMessage, embedColor } from "config/options.js"
import { embedColor, devMessage } from "config/options.js" import { GuildMember, PermissionFlagsBits, SlashCommandBuilder, userMention } from "discord.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import logToChannel from "utils/functions/logtochannel.js" import logToChannel from "utils/functions/logtochannel.js"
import { removeIndents } from "utils/functions/funcs.js"
export default { export default {
name: "setnick", name: "setnick",
@@ -49,11 +48,11 @@ export default {
icon_url: interaction.user.avatarURL() || undefined icon_url: interaction.user.avatarURL() || undefined
}, },
title: "Nickname", title: "Nickname",
description: removeIndents(` description: `
**User:** ${userMention(member.id)} **User:** ${userMention(member.id)}
**Nickname:** ${nickname} **Nickname:** ${nickname}
**Moderator:** ${userMention(interaction.user.id)} **Moderator:** ${userMention(interaction.user.id)}
`), `.removeIndents(),
color: embedColor, color: embedColor,
thumbnail: { thumbnail: {
url: interaction.user.avatarURL() || "" url: interaction.user.avatarURL() || ""

View File

@@ -1,5 +1,5 @@
import { SlashCommandBuilder, PermissionFlagsBits, ButtonBuilder, ActionRowBuilder, ButtonStyle, ChannelType, TextChannel } from "discord.js" import { devMessage, embedColor } from "config/options.js"
import { embedColor, devMessage } from "config/options.js" import { ActionRowBuilder, ButtonBuilder, ButtonStyle, ChannelType, PermissionFlagsBits, SlashCommandBuilder, TextChannel } from "discord.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
export default { export default {

View File

@@ -1,8 +1,7 @@
import { SlashCommandBuilder, PermissionFlagsBits, ChannelType, TextChannel, channelMention, userMention } from "discord.js" import { devMessage, embedColor } from "config/options.js"
import { embedColor, devMessage } from "config/options.js" import { channelMention, ChannelType, PermissionFlagsBits, SlashCommandBuilder, TextChannel, userMention } from "discord.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import logToChannel from "utils/functions/logtochannel.js" import logToChannel from "utils/functions/logtochannel.js"
import { removeIndents } from "utils/functions/funcs.js"
export default { export default {
name: "slowmode", name: "slowmode",
@@ -55,11 +54,11 @@ export default {
icon_url: interaction.user.avatarURL() || undefined icon_url: interaction.user.avatarURL() || undefined
}, },
title: "Slowmode Update", title: "Slowmode Update",
description: removeIndents(` description: `
**Channel:** ${channelMention(channel.id)} **Channel:** ${channelMention(channel.id)}
**Slowmode:** ${seconds} seconds **Slowmode:** ${seconds} seconds
**Mod:** ${userMention(interaction.user.id)} **Mod:** ${userMention(interaction.user.id)}
`), `.removeIndents(),
color: embedColor, color: embedColor,
thumbnail: { thumbnail: {
url: interaction.user.avatarURL() || "" url: interaction.user.avatarURL() || ""

View File

@@ -1,11 +1,11 @@
import { SlashCommandBuilder, PermissionFlagsBits } from "discord.js" import { devMessage, embedColor } from "config/options.js"
import { embedColor, devMessage } from "config/options.js" import { PermissionFlagsBits, SlashCommandBuilder } from "discord.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import help from "./staff/help.js"
import beast from "./staff/beast.js" import beast from "./staff/beast.js"
import updateAll from "./staff/updateall.js" import help from "./staff/help.js"
import prune from "./staff/prune.js" import prune from "./staff/prune.js"
import removeGuildRoles from "./staff/removeguildroles.js" import removeGuildRoles from "./staff/removeguildroles.js"
import updateAll from "./staff/updateall.js"
export default { export default {
name: "staff", name: "staff",

View File

@@ -1,7 +1,7 @@
import { bwwins, beastbwfkdr, beastbwstars, beastswkdr, beastswstars, beastduelswins, duelswlr } from "config/reqs.js" import { devMessage, embedColor } from "config/options.js"
import { embedColor, devMessage } from "config/options.js" import { beastbwfkdr, beastbwstars, beastduelswins, beastswkdr, beastswstars, bwwins, duelswlr } from "config/reqs.js"
import { hypixelLevel, bedwarsLevel, skywarsLevel, getUUID, getPlayer, getGuild, getHeadURL } from "utils/Hypixel.js"
import { ChatInputCommandInteraction } from "discord.js" import { ChatInputCommandInteraction } from "discord.js"
import { bedwarsLevel, getGuild, getHeadURL, getPlayer, getUUID, hypixelLevel, skywarsLevel } from "utils/Hypixel.js"
export default async function beast(interaction: ChatInputCommandInteraction): Promise<void> { export default async function beast(interaction: ChatInputCommandInteraction): Promise<void> {
await interaction.deferReply() await interaction.deferReply()

View File

@@ -1,5 +1,5 @@
import { devMessage, embedColor } from "config/options.js"
import { ChatInputCommandInteraction } from "discord.js" import { ChatInputCommandInteraction } from "discord.js"
import { embedColor, devMessage } from "config/options.js"
import { ExtendedClient as Client } from "utils/Client.js" import { ExtendedClient as Client } from "utils/Client.js"
export default async function help(interaction: ChatInputCommandInteraction, client: Client): Promise<void> { export default async function help(interaction: ChatInputCommandInteraction, client: Client): Promise<void> {

View File

@@ -1,5 +1,5 @@
import { devMessage, embedColor } from "config/options.js"
import { ActionRowBuilder, ButtonBuilder, ButtonInteraction, ButtonStyle, ChatInputCommandInteraction, ComponentType } from "discord.js" import { ActionRowBuilder, ButtonBuilder, ButtonInteraction, ButtonStyle, ChatInputCommandInteraction, ComponentType } from "discord.js"
import { embedColor, devMessage } from "config/options.js"
import env from "utils/Env.js" import env from "utils/Env.js"
export default async function prune(interaction: ChatInputCommandInteraction): Promise<void> { export default async function prune(interaction: ChatInputCommandInteraction): Promise<void> {
@@ -89,7 +89,7 @@ export default async function prune(interaction: ChatInputCommandInteraction): P
embeds: [{ embeds: [{
description: "Cancelled", description: "Cancelled",
color: embedColor color: embedColor
}], }]
}).then(() => { }).then(() => {
collector.stop() collector.stop()
}) })
@@ -104,13 +104,13 @@ export default async function prune(interaction: ChatInputCommandInteraction): P
} }
await m.edit({ await m.edit({
components: [], components: []
}) })
await i.editReply({ await i.editReply({
embeds: [{ embeds: [{
description: "Pruned all the members", description: "Pruned all the members",
color: embedColor color: embedColor
}], }]
}).then(() => { }).then(() => {
collector.stop() collector.stop()
}) })

View File

@@ -1,10 +1,10 @@
import { embedColor, hypixelGuildID } from "config/options.js" import { embedColor, hypixelGuildID } from "config/options.js"
import { ChatInputCommandInteraction, GuildMember } from "discord.js" import { ChatInputCommandInteraction, GuildMember } from "discord.js"
import verify from "schemas/verifyTag.js"
import { IGuildData } from "interfaces" import { IGuildData } from "interfaces"
import verify from "schemas/verifyTag.js"
import env from "utils/Env.js" import env from "utils/Env.js"
import { getGuild } from "utils/Hypixel.js"
import roleManage from "utils/functions/rolesmanage.js" import roleManage from "utils/functions/rolesmanage.js"
import { getGuild } from "utils/Hypixel.js"
export default async function removeGuildRoles(interaction: ChatInputCommandInteraction): Promise<void> { export default async function removeGuildRoles(interaction: ChatInputCommandInteraction): Promise<void> {
await interaction.deferReply() await interaction.deferReply()
@@ -22,7 +22,8 @@ export default async function removeGuildRoles(interaction: ChatInputCommandInte
} }
const guildMembers = await interaction.guild!.members.fetch().then( const guildMembers = await interaction.guild!.members.fetch().then(
members => members.map(member => { members =>
members.map(member => {
return { return {
id: member.id, id: member.id,
member: member member: member

View File

@@ -1,11 +1,11 @@
import verify from "schemas/verifyTag.js"
import { embedColor, hypixelGuildID } from "config/options.js" import { embedColor, hypixelGuildID } from "config/options.js"
import color from "utils/functions/colors.js"
import roleManage from "utils/functions/rolesmanage.js"
import { ChatInputCommandInteraction, GuildMember } from "discord.js" import { ChatInputCommandInteraction, GuildMember } from "discord.js"
import env from "utils/Env.js"
import { getGuild, getIGN } from "utils/Hypixel.js"
import { IGuildData } from "interfaces" import { IGuildData } from "interfaces"
import verify from "schemas/verifyTag.js"
import env from "utils/Env.js"
import { color } from "utils/functions/colors.js"
import roleManage from "utils/functions/rolesmanage.js"
import { getGuild, getIGN } from "utils/Hypixel.js"
export default async function updateAll(interaction: ChatInputCommandInteraction): Promise<void> { export default async function updateAll(interaction: ChatInputCommandInteraction): Promise<void> {
await interaction.deferReply() await interaction.deferReply()
@@ -23,7 +23,8 @@ export default async function updateAll(interaction: ChatInputCommandInteraction
} }
const guildMembers = await interaction.guild!.members.fetch().then( const guildMembers = await interaction.guild!.members.fetch().then(
members => members.map(member => { members =>
members.map(member => {
return { return {
id: member.id, id: member.id,
member: member member: member

View File

@@ -1,10 +1,9 @@
import { SlashCommandBuilder, PermissionFlagsBits, userMention, GuildMember } from "discord.js" import { devMessage, embedColor } from "config/options.js"
import { embedColor, devMessage } from "config/options.js" import { GuildMember, PermissionFlagsBits, SlashCommandBuilder, userMention } from "discord.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import ms from "ms" import ms from "ms"
import prettyMs from "pretty-ms" import prettyMs from "pretty-ms"
import logToChannel from "utils/functions/logtochannel.js" import logToChannel from "utils/functions/logtochannel.js"
import { removeIndents } from "utils/functions/funcs.js"
export default { export default {
name: "timeout", name: "timeout",
@@ -144,12 +143,12 @@ export default {
icon_url: mod.user.avatarURL() || undefined icon_url: mod.user.avatarURL() || undefined
}, },
title: title, title: title,
description: removeIndents(` description: `
**User:** ${userMention(target.id)} **User:** ${userMention(target.id)}
${timeouttime === null ? "**Time:** `None`" : "**Time:** `" + prettyTime + "`"} ${timeouttime === null ? "**Time:** `None`" : "**Time:** `" + prettyTime + "`"}
**Reason:** \`${reason}\` **Reason:** \`${reason}\`
**Mod:** ${userMention(mod.id)} **Mod:** ${userMention(mod.id)}
`), `.removeIndents(),
color: embedColor, color: embedColor,
thumbnail: { thumbnail: {
url: mod.user.avatarURL() || "" url: mod.user.avatarURL() || ""

View File

@@ -1,8 +1,7 @@
import { SlashCommandBuilder, PermissionFlagsBits, userMention, User } from "discord.js" import { devMessage, embedColor } from "config/options.js"
import { embedColor, devMessage } from "config/options.js" import { PermissionFlagsBits, SlashCommandBuilder, User, userMention } from "discord.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import logToChannel from "utils/functions/logtochannel.js" import logToChannel from "utils/functions/logtochannel.js"
import { removeIndents } from "utils/functions/funcs.js"
export default { export default {
name: "unban", name: "unban",
@@ -69,11 +68,11 @@ export default {
icon_url: mod.avatarURL() || undefined icon_url: mod.avatarURL() || undefined
}, },
title: "Member Unbanned", title: "Member Unbanned",
description: removeIndents(` description: `
**User:** ${userMention(user!.id)} **User:** ${userMention(user!.id)}
**Mod:** ${userMention(mod.id)} **Mod:** ${userMention(mod.id)}
**Reason:** ${reason} **Reason:** ${reason}
`), `.removeIndents(),
color: embedColor, color: embedColor,
thumbnail: { thumbnail: {
url: mod.avatarURL() || "" url: mod.avatarURL() || ""

View File

@@ -1,11 +1,10 @@
import { GuildMember, SlashCommandBuilder } from "discord.js" import { devMessage, embedColor, hypixelGuildID } from "config/options.js"
import { getGuild, getIGN, getHeadURL } from "utils/Hypixel.js"
import verify from "schemas/verifyTag.js"
import { embedColor, hypixelGuildID, devMessage } from "config/options.js"
import roleManage from "utils/functions/rolesmanage.js"
import { ICommand } from "interfaces"
import { waitingListRole } from "config/roles.js" import { waitingListRole } from "config/roles.js"
import { removeIndents } from "utils/functions/funcs.js" import { GuildMember, SlashCommandBuilder } from "discord.js"
import { ICommand } from "interfaces"
import verify from "schemas/verifyTag.js"
import roleManage from "utils/functions/rolesmanage.js"
import { getGuild, getHeadURL, getIGN } from "utils/Hypixel.js"
export default { export default {
name: "update", name: "update",
@@ -68,11 +67,11 @@ export default {
await interaction.editReply({ await interaction.editReply({
embeds: [{ embeds: [{
description: removeIndents(` description: `
Updated your roles to \`Default Member\` Updated your roles to \`Default Member\`
IGN: \`${ign}\` IGN: \`${ign}\`
`), `.removeIndents(),
color: embedColor, color: embedColor,
thumbnail: { thumbnail: {
url: head! url: head!
@@ -143,11 +142,11 @@ export default {
await interaction.editReply({ await interaction.editReply({
embeds: [{ embeds: [{
description: removeIndents(` description: `
Updated your roles to \`${replyRank}\` Updated your roles to \`${replyRank}\`
IGN: \`${ign}\` IGN: \`${ign}\`
`), `.removeIndents(),
color: embedColor, color: embedColor,
thumbnail: { thumbnail: {
url: head! url: head!

View File

@@ -1,7 +1,7 @@
import { devMessage, embedColor } from "config/options.js"
import { SlashCommandBuilder } from "discord.js" import { SlashCommandBuilder } from "discord.js"
import { embedColor, devMessage } from "config/options.js"
import { getUUID, getIGN, getHeadURL, formatUuid } from "utils/Hypixel.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import { formatUuid, getHeadURL, getIGN, getUUID } from "utils/Hypixel.js"
export default { export default {
name: "uuid", name: "uuid",

View File

@@ -1,11 +1,11 @@
import { devMessage, embedColor, hypixelGuildID } from "config/options.js"
import { GuildMember, SlashCommandBuilder } from "discord.js" import { GuildMember, SlashCommandBuilder } from "discord.js"
import { getUUID, getPlayer, getGuild, getHeadURL } from "utils/Hypixel.js"
import { embedColor, hypixelGuildID, devMessage } from "config/options.js"
import roleManage from "utils/functions/rolesmanage.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import verify from "schemas/verifyTag.js"
import { IPlayerData } from "interfaces" import { IPlayerData } from "interfaces"
import { IGuildData } from "interfaces" import { IGuildData } from "interfaces"
import verify from "schemas/verifyTag.js"
import roleManage from "utils/functions/rolesmanage.js"
import { getGuild, getHeadURL, getPlayer, getUUID } from "utils/Hypixel.js"
export default { export default {
name: "verify", name: "verify",
@@ -114,7 +114,8 @@ export default {
if (linkedDiscord !== username) { if (linkedDiscord !== username) {
interaction.editReply({ interaction.editReply({
embeds: [{ embeds: [{
description: "<a:cross_a:1087808606897983539> The Discord account linked to `" + player.displayname + "` is currently `" + linkedDiscord + "`\n\n" + description: "<a:cross_a:1087808606897983539> The Discord account linked to `" +
player.displayname + "` is currently `" + linkedDiscord + "`\n\n" +
"**Please set your Discord tag on hypixel to `" + username + "` and try again.**", "**Please set your Discord tag on hypixel to `" + username + "` and try again.**",
color: embedColor color: embedColor
}] }]

View File

@@ -1,8 +1,8 @@
import { devMessage, embedColor } from "config/options.js"
import { SlashCommandBuilder, userMention } from "discord.js" import { SlashCommandBuilder, userMention } from "discord.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import { embedColor, devMessage } from "config/options.js"
import verify from "schemas/verifyTag.js" import verify from "schemas/verifyTag.js"
import { getIGN, getHeadURL } from "utils/Hypixel.js" import { getHeadURL, getIGN } from "utils/Hypixel.js"
export default { export default {
name: "whoami", name: "whoami",

View File

@@ -1,8 +1,8 @@
import { SlashCommandBuilder, PermissionFlagsBits, userMention } from "discord.js" import { devMessage, embedColor } from "config/options.js"
import { getIGN, getHeadURL } from "utils/Hypixel.js" import { PermissionFlagsBits, SlashCommandBuilder, userMention } from "discord.js"
import { embedColor, devMessage } from "config/options.js"
import verify from "schemas/verifyTag.js"
import { ICommand } from "interfaces" import { ICommand } from "interfaces"
import verify from "schemas/verifyTag.js"
import { getHeadURL, getIGN } from "utils/Hypixel.js"
export default { export default {
name: "whois", name: "whois",

View File

@@ -1,8 +1,8 @@
import { embedColor, devMessage } from "config/options.js" import { devMessage, embedColor } from "config/options.js"
import guildapp from "schemas/guildAppTag.js" import { bwfkdr, bwstars, bwwins, duelswins, duelswlr, swkdr, swstars } from "config/reqs.js"
import { bwfkdr, bwstars, bwwins, swstars, swkdr, duelswins, duelswlr } from "config/reqs.js"
import { hypixelLevel, bedwarsLevel, skywarsLevel, getPlayer, getGuild, getHeadURL } from "utils/Hypixel.js"
import { IButton } from "interfaces" import { IButton } from "interfaces"
import guildapp from "schemas/guildAppTag.js"
import { bedwarsLevel, getGuild, getHeadURL, getPlayer, hypixelLevel, skywarsLevel } from "utils/Hypixel.js"
export default { export default {
name: "checkstats", name: "checkstats",

View File

@@ -1,10 +1,10 @@
import { ActionRowBuilder, ButtonStyle, ButtonBuilder, TextChannel } from "discord.js" import { embedColor, hypixelGuildID, waitingListChannel, waitingListMessage } from "config/options.js"
import { embedColor, waitingListChannel, waitingListMessage, hypixelGuildID } from "config/options.js" import { waitingListRole } from "config/roles.js"
import color from "utils/functions/colors.js" import { ActionRowBuilder, ButtonBuilder, ButtonStyle, TextChannel } from "discord.js"
import { IButton } from "interfaces"
import guildapp from "schemas/guildAppTag.js" import guildapp from "schemas/guildAppTag.js"
import waitingList from "schemas/waitinglistTag.js" import waitingList from "schemas/waitinglistTag.js"
import { waitingListRole } from "config/roles.js" import { color } from "utils/functions/colors.js"
import { IButton } from "interfaces"
import { getGuild, getIGN } from "utils/Hypixel.js" import { getGuild, getIGN } from "utils/Hypixel.js"
export default { export default {
@@ -99,7 +99,7 @@ export default {
} }
} }
const fields: { name: string; value: string }[] = [] const fields: { name: string, value: string }[] = []
for (let i = 0; i < accepted.length; i++) { for (let i = 0; i < accepted.length; i++) {
const ign = await getIGN(accepted[i].uuid) const ign = await getIGN(accepted[i].uuid)

View File

@@ -1,4 +1,4 @@
import { ModalBuilder, ActionRowBuilder, TextInputBuilder, TextInputStyle } from "discord.js" import { ActionRowBuilder, ModalBuilder, TextInputBuilder, TextInputStyle } from "discord.js"
import { IButton } from "interfaces" import { IButton } from "interfaces"
export default { export default {

View File

@@ -1,10 +1,10 @@
import { ButtonBuilder, ButtonStyle, ActionRowBuilder, GuildMember, TextChannel } from "discord.js" import { ignM, largeM, smallM } from "config/limitmessages.js"
import { embedColor, applicationsChannel } from "config/options.js" import { applicationsChannel, embedColor } from "config/options.js"
import { largeM, smallM, ignM } from "config/limitmessages.js"
import { guild as guildQuestions } from "config/questions.js" import { guild as guildQuestions } from "config/questions.js"
import { guildRole } from "config/roles.js" import { guildRole } from "config/roles.js"
import guildapp from "schemas/guildAppTag.js" import { ActionRowBuilder, ButtonBuilder, ButtonStyle, GuildMember, TextChannel } from "discord.js"
import { IButton } from "interfaces" import { IButton } from "interfaces"
import guildapp from "schemas/guildAppTag.js"
import applicationQuestions from "utils/functions/applicationquestions.js" import applicationQuestions from "utils/functions/applicationquestions.js"
export default { export default {
@@ -250,7 +250,7 @@ export default {
await guildapp.create({ await guildapp.create({
userID: user.user.id, userID: user.user.id,
uuid: uuid, uuid: uuid
}) })
const channel = guild.channels.cache.get(applicationsChannel) as TextChannel const channel = guild.channels.cache.get(applicationsChannel) as TextChannel

View File

@@ -1,8 +1,8 @@
import { ButtonBuilder, ActionRowBuilder, ButtonStyle, GuildMember, TextChannel } from "discord.js" import { ignM, largeM, smallM } from "config/limitmessages.js"
import { gm, manager, moderator, beast, member, guildStaff, guildRole } from "config/roles.js"
import { ignM, smallM, largeM } from "config/limitmessages.js"
import { inactivity } from "config/questions.js"
import { embedColor, inactivityLogChannel } from "config/options.js" import { embedColor, inactivityLogChannel } from "config/options.js"
import { inactivity } from "config/questions.js"
import { beast, gm, guildRole, guildStaff, manager, member, moderator } from "config/roles.js"
import { ActionRowBuilder, ButtonBuilder, ButtonStyle, GuildMember, TextChannel } from "discord.js"
import { IButton } from "interfaces" import { IButton } from "interfaces"
import applicationQuestions from "utils/functions/applicationquestions.js" import applicationQuestions from "utils/functions/applicationquestions.js"
const guildRoles = [gm, manager, moderator, beast, member, guildStaff, guildRole] const guildRoles = [gm, manager, moderator, beast, member, guildStaff, guildRole]

View File

@@ -1,7 +1,7 @@
import { ActionRowBuilder, ButtonBuilder, ButtonStyle } from "discord.js"
import { embedColor } from "config/options.js" import { embedColor } from "config/options.js"
import staffapp from "schemas/staffAppTag.js" import { ActionRowBuilder, ButtonBuilder, ButtonStyle } from "discord.js"
import { IButton } from "interfaces" import { IButton } from "interfaces"
import staffapp from "schemas/staffAppTag.js"
export default { export default {
name: "staffapplicationaccept", name: "staffapplicationaccept",

View File

@@ -1,4 +1,4 @@
import { ModalBuilder, ActionRowBuilder, TextInputBuilder, TextInputStyle } from "discord.js" import { ActionRowBuilder, ModalBuilder, TextInputBuilder, TextInputStyle } from "discord.js"
import { IButton } from "interfaces" import { IButton } from "interfaces"
export default { export default {

View File

@@ -1,11 +1,11 @@
import { ButtonBuilder, ButtonStyle, ActionRowBuilder, GuildMember, TextChannel } from "discord.js" import { ignM, largeM } from "config/limitmessages.js"
import { embedColor, staffApplicationsChannel } from "config/options.js" import { embedColor, staffApplicationsChannel } from "config/options.js"
import { largeM, ignM } from "config/limitmessages.js"
import { staff as staffQuestions } from "config/questions.js" import { staff as staffQuestions } from "config/questions.js"
import { guildRole, guildStaff } from "config/roles.js" import { guildRole, guildStaff } from "config/roles.js"
import staffapp from "schemas/staffAppTag.js" import { ActionRowBuilder, ButtonBuilder, ButtonStyle, GuildMember, TextChannel } from "discord.js"
import settings from "schemas/settingsTag.js"
import { IButton } from "interfaces" import { IButton } from "interfaces"
import settings from "schemas/settingsTag.js"
import staffapp from "schemas/staffAppTag.js"
import env from "utils/Env.js" import env from "utils/Env.js"
import applicationQuestions from "utils/functions/applicationquestions.js" import applicationQuestions from "utils/functions/applicationquestions.js"

View File

@@ -1,4 +1,4 @@
import { ModalBuilder, ActionRowBuilder, TextInputBuilder, TextInputStyle } from "discord.js" import { ActionRowBuilder, ModalBuilder, TextInputBuilder, TextInputStyle } from "discord.js"
import { IButton } from "interfaces" import { IButton } from "interfaces"
export default { export default {

View File

@@ -1,7 +1,7 @@
import waitinglist from "schemas/waitinglistTag.js"
import { getGuild, getIGN } from "utils/Hypixel.js"
import { hypixelGuildID } from "config/options.js" import { hypixelGuildID } from "config/options.js"
import { IButton } from "interfaces" import { IButton } from "interfaces"
import waitinglist from "schemas/waitinglistTag.js"
import { getGuild, getIGN } from "utils/Hypixel.js"
export default { export default {
name: "waitinglistupdate", name: "waitinglistupdate",

View File

@@ -1,7 +1,7 @@
import { EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, Message, GuildMember } from "discord.js"
import { embedColor } from "config/options.js" import { embedColor } from "config/options.js"
import guildapp from "schemas/guildAppTag.js" import { ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder, GuildMember, Message } from "discord.js"
import { IModal } from "interfaces" import { IModal } from "interfaces"
import guildapp from "schemas/guildAppTag.js"
export default { export default {
name: "denyreasonbox", name: "denyreasonbox",
@@ -47,7 +47,8 @@ export default {
} }
const dmMessage = new EmbedBuilder() const dmMessage = new EmbedBuilder()
.setDescription("Your application for the Illegitimate guild has been denied\n" + .setDescription(
"Your application for the Illegitimate guild has been denied\n" +
"**Reason:** `" + reason + "`" "**Reason:** `" + reason + "`"
) )
.setColor(embedColor) .setColor(embedColor)
@@ -58,7 +59,8 @@ export default {
const responseEmbed = new EmbedBuilder() const responseEmbed = new EmbedBuilder()
.setTitle("Application Denied") .setTitle("Application Denied")
.setDescription("The application has been denied by <@" + interaction.user.id + ">.\n" + .setDescription(
"The application has been denied by <@" + interaction.user.id + ">.\n" +
"**Reason:** `" + reason + "`" "**Reason:** `" + reason + "`"
) )
.setColor(embedColor) .setColor(embedColor)

View File

@@ -1,7 +1,7 @@
import { EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } from "discord.js"
import { embedColor } from "config/options.js" import { embedColor } from "config/options.js"
import staffapp from "schemas/staffAppTag.js" import { ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder } from "discord.js"
import { IModal } from "interfaces" import { IModal } from "interfaces"
import staffapp from "schemas/staffAppTag.js"
export default { export default {
name: "staffdenyreasonbox", name: "staffdenyreasonbox",
@@ -35,7 +35,8 @@ export default {
}) })
const dmMessage = new EmbedBuilder() const dmMessage = new EmbedBuilder()
.setDescription("Your application for the Illegitimate guild staff has been denied\n" + .setDescription(
"Your application for the Illegitimate guild staff has been denied\n" +
"**Reason:** `" + reason + "`" "**Reason:** `" + reason + "`"
) )
.setColor(embedColor) .setColor(embedColor)

View File

@@ -1,9 +1,9 @@
import { getUUID, getPlayer, getGuild, getHeadURL } from "utils/Hypixel.js" import { devMessage, embedColor, hypixelGuildID } from "config/options.js"
import { embedColor, hypixelGuildID, devMessage } from "config/options.js"
import verify from "schemas/verifyTag.js"
import { IModal } from "interfaces"
import { GuildMember } from "discord.js" import { GuildMember } from "discord.js"
import { IModal } from "interfaces"
import verify from "schemas/verifyTag.js"
import roleManage from "utils/functions/rolesmanage.js" import roleManage from "utils/functions/rolesmanage.js"
import { getGuild, getHeadURL, getPlayer, getUUID } from "utils/Hypixel.js"
export default { export default {
name: "verifybox", name: "verifybox",
@@ -71,7 +71,6 @@ export default {
}] }]
}) })
const linkedDiscord = player?.socialMedia?.links?.DISCORD const linkedDiscord = player?.socialMedia?.links?.DISCORD
if (!linkedDiscord) { if (!linkedDiscord) {
interaction.editReply({ interaction.editReply({
@@ -87,7 +86,8 @@ export default {
if (linkedDiscord !== username) { if (linkedDiscord !== username) {
interaction.editReply({ interaction.editReply({
embeds: [{ embeds: [{
description: "<a:cross_a:1087808606897983539> The Discord account linked to `" + player.displayname + "` is currently `" + linkedDiscord + "`\n\n" + description: "<a:cross_a:1087808606897983539> The Discord account linked to `" +
player.displayname + "` is currently `" + linkedDiscord + "`\n\n" +
"**Please set your Discord tag on hypixel to `" + username + "` and try again.**", "**Please set your Discord tag on hypixel to `" + username + "` and try again.**",
color: embedColor color: embedColor
}] }]

View File

@@ -2,4 +2,4 @@ const largeM = "(256 characters max)"
const smallM = "(128 characters max)" const smallM = "(128 characters max)"
const ignM = "(16 characters max)" const ignM = "(16 characters max)"
export { largeM, smallM, ignM } export { ignM, largeM, smallM }

View File

@@ -14,24 +14,25 @@ const moderationLogChannel = "1193329771795447818"
const devLogChannel = "1193688673632391280" const devLogChannel = "1193688673632391280"
const waitingListChannel = "1145773618291298384" const waitingListChannel = "1145773618291298384"
const waitingListMessage = "1146027645415473193" const waitingListMessage = "1146027645415473193"
const instructionsgif = "https =//cdn.discordapp.com/attachments/838716950723952640/1188211176300089384/4DMu513uNxbM.gif?ex=6599b2e4&is=65873de4&hm=e727c7a39aacbc47d6a5453f4b5f792a45679983c30d662cd258a311381b6df0&" const instructionsgif =
"https =//cdn.discordapp.com/attachments/838716950723952640/1188211176300089384/4DMu513uNxbM.gif?ex=6599b2e4&is=65873de4&hm=e727c7a39aacbc47d6a5453f4b5f792a45679983c30d662cd258a311381b6df0&"
export { export {
embedColor,
guildid,
devMessage,
applicationsChannel, applicationsChannel,
staffApplicationsChannel,
inactivityLogChannel,
staffOtherChannel,
hypixelGuildID,
onlineLogChannel,
botLogChannel, botLogChannel,
guildLogChannel,
errorLogChannel,
moderationLogChannel,
devLogChannel, devLogChannel,
devMessage,
embedColor,
errorLogChannel,
guildid,
guildLogChannel,
hypixelGuildID,
inactivityLogChannel,
instructionsgif,
moderationLogChannel,
onlineLogChannel,
staffApplicationsChannel,
staffOtherChannel,
waitingListChannel, waitingListChannel,
waitingListMessage, waitingListMessage
instructionsgif
} }

View File

@@ -73,4 +73,4 @@ const inactivity = [
} }
] ]
export { guild, staff, inactivity } export { guild, inactivity, staff }

View File

@@ -11,17 +11,4 @@ const beastswstars = 20
const beastswkdr = 2.5 const beastswkdr = 2.5
const beastduelswins = 12000 const beastduelswins = 12000
export { export { beastbwfkdr, beastbwstars, beastduelswins, beastswkdr, beastswstars, bwfkdr, bwstars, bwwins, duelswins, duelswlr, swkdr, swstars }
bwstars,
bwfkdr,
bwwins,
swstars,
swkdr,
duelswins,
duelswlr,
beastbwstars,
beastbwfkdr,
beastswstars,
beastswkdr,
beastduelswins
}

View File

@@ -15,19 +15,19 @@ const countingBanned = "1192183486128341072"
const verifyTick = "1201624332674273290" const verifyTick = "1201624332674273290"
export { export {
gm,
manager,
moderator,
elite,
beast,
member,
guildStaff,
guildRole,
waitingListRole,
defaultMember,
admin, admin,
helper, beast,
muted,
countingBanned, countingBanned,
verifyTick defaultMember,
elite,
gm,
guildRole,
guildStaff,
helper,
manager,
member,
moderator,
muted,
verifyTick,
waitingListRole
} }

View File

@@ -1,15 +1,35 @@
import { ActivityType, Guild } from "discord.js" import { ActivityType, Guild } from "discord.js"
const statuses = [ const statuses = [
{ name: (guild: Guild) => { return `over ${guild.memberCount} members` }, type: ActivityType.Watching }, {
{ name: (guild: Guild) => { return `${guild.channels.cache.size} channels` }, type: ActivityType.Watching }, name: (guild: Guild) => {
{ name: (guild: Guild) => { return `${guild.premiumSubscriptionCount} boosters` }, type: ActivityType.Watching }, return `over ${guild.memberCount} members`
{ name: (guild: Guild) => { return `${guild.voiceStates.cache.size} members in vc` }, type: ActivityType.Watching }, },
type: ActivityType.Watching
},
{
name: (guild: Guild) => {
return `${guild.channels.cache.size} channels`
},
type: ActivityType.Watching
},
{
name: (guild: Guild) => {
return `${guild.premiumSubscriptionCount} boosters`
},
type: ActivityType.Watching
},
{
name: (guild: Guild) => {
return `${guild.voiceStates.cache.size} members in vc`
},
type: ActivityType.Watching
},
{ name: "over the Illegitimate Server", type: ActivityType.Watching }, { name: "over the Illegitimate Server", type: ActivityType.Watching },
{ name: "jon and pit edate", type: ActivityType.Watching }, { name: "jon and pit edate", type: ActivityType.Watching },
{ name: "for Martina's return", type: ActivityType.Watching }, { name: "for Martina's return", type: ActivityType.Watching },
{ name: "w vri's feelings", type: ActivityType.Playing }, { name: "w vri's feelings", type: ActivityType.Playing },
{ name: "urCryhard steal finals again", type: ActivityType.Watching }, { name: "urCryhard steal finals again", type: ActivityType.Watching },
{ name: "with Perlcence the AI", type: ActivityType.Playing }, { name: "with Perlcence the AI", type: ActivityType.Playing }
] ]
export default statuses export default statuses

9
src/enviroment.d.ts vendored
View File

@@ -7,4 +7,11 @@ declare global {
} }
} }
export { } declare global {
interface String {
removeIndents(): string
capitalizeFirstLetter(): string
}
}
export {}

View File

@@ -1,9 +1,9 @@
import { hypixelGuildID, guildLogChannel, embedColor, devMessage } from "config/options.js" import { devMessage, embedColor, guildLogChannel, hypixelGuildID } from "config/options.js"
import color from "utils/functions/colors.js"
import { getGuild, getIGN } from "utils/Hypixel.js"
import { ICron, IGuildData } from "interfaces"
import { client } from "utils/Illegitimate.js"
import { TextChannel } from "discord.js" import { TextChannel } from "discord.js"
import { ICron, IGuildData } from "interfaces"
import { color } from "utils/functions/colors.js"
import { getGuild, getIGN } from "utils/Hypixel.js"
import { client } from "utils/Illegitimate.js"
async function guildWeekly() { async function guildWeekly() {
const channel = client.channels.cache.get(guildLogChannel) as TextChannel const channel = client.channels.cache.get(guildLogChannel) as TextChannel
@@ -22,7 +22,7 @@ async function guildWeekly() {
const guild = (await getGuild(hypixelGuildID, "id")) as IGuildData const guild = (await getGuild(hypixelGuildID, "id")) as IGuildData
const guildMembersList: string[] = [] const guildMembersList: string[] = []
const topWeeklyMembers: { name: string; value: string; inline: boolean }[] = [] const topWeeklyMembers: { name: string, value: string, inline: boolean }[] = []
const guildName = guild.name const guildName = guild.name
const guildMembers = guild.members const guildMembers = guild.members
@@ -44,9 +44,7 @@ async function guildWeekly() {
guildMembersList.push("**#" + position + " " + ign + ":** `" + gexp + "`") guildMembersList.push("**#" + position + " " + ign + ":** `" + gexp + "`")
} }
const list = Array.from({ length: sliceSize }, (_, i) => const list = Array.from({ length: sliceSize }, (_, i) => guildMembersList.slice(i * sliceSize, (i + 1) * sliceSize))
guildMembersList.slice(i * sliceSize, (i + 1) * sliceSize)
)
list.forEach((item, index) => { list.forEach((item, index) => {
if (item.length === 0) return if (item.length === 0) return

View File

@@ -1,5 +1,5 @@
import { GuildMember, userMention } from "discord.js"
import { embedColor } from "config/options.js" import { embedColor } from "config/options.js"
import { GuildMember, userMention } from "discord.js"
import { IEvent } from "interfaces" import { IEvent } from "interfaces"
import logToChannel from "utils/functions/logtochannel.js" import logToChannel from "utils/functions/logtochannel.js"

View File

@@ -1,6 +1,6 @@
import { ChatInputCommandInteraction, ButtonInteraction } from "discord.js" import { ButtonInteraction, ChatInputCommandInteraction } from "discord.js"
import color from "utils/functions/colors.js"
import { IEvent } from "interfaces" import { IEvent } from "interfaces"
import { color } from "utils/functions/colors.js"
export default { export default {
name: "logBtnsCmds", name: "logBtnsCmds",

View File

@@ -1,5 +1,5 @@
import { IEvent } from "interfaces"
import { Message } from "discord.js" import { Message } from "discord.js"
import { IEvent } from "interfaces"
export default { export default {
name: "ur mom", name: "ur mom",

View File

@@ -1,6 +1,6 @@
import { IEvent } from "interfaces" import { IEvent } from "interfaces"
import { ExtendedClient as Client } from "utils/Client.js" import { ExtendedClient as Client } from "utils/Client.js"
import color from "utils/functions/colors.js" import { color } from "utils/functions/colors.js"
export default { export default {
name: "conolelog", name: "conolelog",

View File

@@ -1,6 +1,6 @@
import logToChannel from "utils/functions/logtochannel.js"
import { IEvent } from "interfaces"
import { embedColor } from "config/options.js" import { embedColor } from "config/options.js"
import { IEvent } from "interfaces"
import logToChannel from "utils/functions/logtochannel.js"
export default { export default {
name: "sendonlinemessage", name: "sendonlinemessage",

View File

@@ -1,4 +1,4 @@
import { ContextMenuCommandInteraction, ContextMenuCommandBuilder } from "discord.js" import { ContextMenuCommandBuilder, ContextMenuCommandInteraction } from "discord.js"
import { ExtendedClient } from "utils/Client.js" import { ExtendedClient } from "utils/Client.js"
export default interface IContextMenu { export default interface IContextMenu {

View File

@@ -1,3 +1,4 @@
// dprint-ignore-file
export interface IGuild { export interface IGuild {
data: { data: {
success: boolean success: boolean

View File

@@ -1,3 +1,4 @@
// dprint-ignore-file
export interface IPlayer { export interface IPlayer {
data: { data: {
success: boolean success: boolean

View File

@@ -5,23 +5,10 @@ import IContextMenu from "./IContextMenu"
import IEvent from "./IEvent" import IEvent from "./IEvent"
import IModal from "./IModal" import IModal from "./IModal"
import IEnv from "./IEnv"
import ICron from "./ICron" import ICron from "./ICron"
import IEnv from "./IEnv"
import { IGuild, IGuildData } from "./IGuild" import { IGuild, IGuildData } from "./IGuild"
import { IPlayer, IPlayerData } from "./IPlayer" import { IPlayer, IPlayerData } from "./IPlayer"
export { export { IAutocomplete, IButton, ICommand, IContextMenu, ICron, IEnv, IEvent, IGuild, IGuildData, IModal, IPlayer, IPlayerData }
IEnv,
ICron,
IAutocomplete,
IButton,
ICommand,
IContextMenu,
IEvent,
IModal,
IGuild,
IGuildData,
IPlayer,
IPlayerData
}

View File

@@ -2,9 +2,9 @@ import Sequelize, { InferAttributes, InferCreationAttributes, Model } from "sequ
import { sequelize } from "utils/Illegitimate.js" import { sequelize } from "utils/Illegitimate.js"
interface WaitingList extends Model<InferAttributes<WaitingList>, InferCreationAttributes<WaitingList>> { interface WaitingList extends Model<InferAttributes<WaitingList>, InferCreationAttributes<WaitingList>> {
userID: string; userID: string
uuid: string; uuid: string
timestamp: number; timestamp: number
} }
const tag = sequelize.define<WaitingList>("waitingList", { const tag = sequelize.define<WaitingList>("waitingList", {

View File

@@ -1,9 +1,9 @@
import { RESTPostAPIChatInputApplicationCommandsJSONBody } from "discord.js"
import fs from "fs" import fs from "fs"
import { ICommand } from "interfaces"
import { ExtendedClient } from "./Client.js" import { ExtendedClient } from "./Client.js"
import env from "./Env.js" import env from "./Env.js"
import { ICommand } from "interfaces" import { color } from "./functions/colors.js"
import { RESTPostAPIChatInputApplicationCommandsJSONBody } from "discord.js"
import color from "./functions/colors.js"
type FileType = "js" | "ts" type FileType = "js" | "ts"
export default async function autoDeployCommands(fileType: FileType, client: ExtendedClient) { export default async function autoDeployCommands(fileType: FileType, client: ExtendedClient) {
@@ -36,10 +36,10 @@ export default async function autoDeployCommands(fileType: FileType, client: Ext
return { return {
name: option.name, name: option.name,
description: option.description, description: option.description,
type: option.type, type: option.type
} }
}), }),
defaultPermission: command.default_member_permissions ?? null, defaultPermission: command.default_member_permissions ?? null
} }
}).sort((a, b) => a.name > b.name ? 1 : -1) }).sort((a, b) => a.name > b.name ? 1 : -1)
@@ -56,10 +56,10 @@ export default async function autoDeployCommands(fileType: FileType, client: Ext
return { return {
name: option.name, name: option.name,
description: option.description, description: option.description,
type: option.type, type: option.type
} }
}), }),
defaultPermission: command.defaultMemberPermissions, defaultPermission: command.defaultMemberPermissions
} }
}).sort((a, b) => a.name > b.name ? 1 : -1) }).sort((a, b) => a.name > b.name ? 1 : -1)
@@ -108,7 +108,6 @@ export default async function autoDeployCommands(fileType: FileType, client: Ext
} }
} }
console.log(color("-------------", "lavender")) console.log(color("-------------", "lavender"))
console.log(color(nc, "lavender")) console.log(color(nc, "lavender"))
} }

View File

@@ -1,8 +1,8 @@
import { Client, Collection, GatewayIntentBits, Partials } from "discord.js" import { Client, Collection, GatewayIntentBits, Partials } from "discord.js"
import color from "./functions/colors.js" import { IAutocomplete, IButton, ICommand, IContextMenu, IModal } from "interfaces"
import { ICommand, IContextMenu, IButton, IModal, IAutocomplete } from "interfaces"
import env from "./Env.js"
import autoDeployCommands from "./Autodeploy.js" import autoDeployCommands from "./Autodeploy.js"
import env from "./Env.js"
import { color } from "./functions/colors.js"
export class ExtendedClient extends Client { export class ExtendedClient extends Client {
commands: Collection<string, ICommand> = new Collection() commands: Collection<string, ICommand> = new Collection()

View File

@@ -1,10 +1,10 @@
import { ExtendedClient as Client } from "utils/Client.js"
import { embedColor } from "config/options.js" import { embedColor } from "config/options.js"
import { IAutocomplete } from "interfaces"
import { Events } from "discord.js" import { Events } from "discord.js"
import color from "utils/functions/colors.js"
import path from "path"
import fs from "fs" import fs from "fs"
import { IAutocomplete } from "interfaces"
import path from "path"
import { ExtendedClient as Client } from "utils/Client.js"
import { color } from "utils/functions/colors.js"
import logToChannel from "utils/functions/logtochannel.js" import logToChannel from "utils/functions/logtochannel.js"
type FileType = "js" | "ts" type FileType = "js" | "ts"
const __dirname = import.meta.dirname const __dirname = import.meta.dirname

View File

@@ -1,10 +1,10 @@
import { ExtendedClient as Client } from "utils/Client.js"
import color from "utils/functions/colors.js"
import { embedColor } from "config/options.js" import { embedColor } from "config/options.js"
import { IButton } from "interfaces"
import { Events } from "discord.js" import { Events } from "discord.js"
import path from "path"
import fs from "fs" import fs from "fs"
import { IButton } from "interfaces"
import path from "path"
import { ExtendedClient as Client } from "utils/Client.js"
import { color } from "utils/functions/colors.js"
import logToChannel from "utils/functions/logtochannel.js" import logToChannel from "utils/functions/logtochannel.js"
type FileType = "js" | "ts" type FileType = "js" | "ts"
const __dirname = import.meta.dirname const __dirname = import.meta.dirname

View File

@@ -1,10 +1,10 @@
import { ExtendedClient as Client } from "utils/Client.js"
import color from "utils/functions/colors.js"
import { embedColor } from "config/options.js" import { embedColor } from "config/options.js"
import { ICommand } from "interfaces"
import { Events } from "discord.js" import { Events } from "discord.js"
import path from "path"
import fs from "fs" import fs from "fs"
import { ICommand } from "interfaces"
import path from "path"
import { ExtendedClient as Client } from "utils/Client.js"
import { color } from "utils/functions/colors.js"
import logToChannel from "utils/functions/logtochannel.js" import logToChannel from "utils/functions/logtochannel.js"
type FileType = "js" | "ts" type FileType = "js" | "ts"
const __dirname = import.meta.dirname const __dirname = import.meta.dirname
@@ -29,7 +29,7 @@ export default async function loadSlashCommandsEvents(client: Client, ft: FileTy
} }
} }
//! command handler // ! command handler
client.on(Events.InteractionCreate, async interaction => { client.on(Events.InteractionCreate, async interaction => {
if (!interaction.isChatInputCommand()) return if (!interaction.isChatInputCommand()) return

View File

@@ -1,10 +1,10 @@
import { ExtendedClient as Client } from "utils/Client.js"
import color from "utils/functions/colors.js"
import { IContextMenu } from "interfaces"
import { embedColor } from "config/options.js" import { embedColor } from "config/options.js"
import { Events } from "discord.js" import { Events } from "discord.js"
import path from "path"
import fs from "fs" import fs from "fs"
import { IContextMenu } from "interfaces"
import path from "path"
import { ExtendedClient as Client } from "utils/Client.js"
import { color } from "utils/functions/colors.js"
import logToChannel from "utils/functions/logtochannel.js" import logToChannel from "utils/functions/logtochannel.js"
type FileType = "js" | "ts" type FileType = "js" | "ts"
const __dirname = import.meta.dirname const __dirname = import.meta.dirname
@@ -29,7 +29,7 @@ export default async function loadContextMenuEvents(client: Client, ft: FileType
} }
} }
//! context menu command handler // ! context menu command handler
client.on(Events.InteractionCreate, async interaction => { client.on(Events.InteractionCreate, async interaction => {
if (!interaction.isContextMenuCommand()) return if (!interaction.isContextMenuCommand()) return

View File

@@ -1,7 +1,7 @@
import { CronJob } from "cron" import { CronJob } from "cron"
import path from "path"
import fs from "fs" import fs from "fs"
import { ICron } from "interfaces" import { ICron } from "interfaces"
import path from "path"
const __dirname = import.meta.dirname const __dirname = import.meta.dirname
export default async function loadCronEvents() { export default async function loadCronEvents() {
@@ -12,8 +12,7 @@ export default async function loadCronEvents() {
const filePath = path.join(cronPath, file) const filePath = path.join(cronPath, file)
const { default: cron } = await import("file://" + filePath) as { default: ICron } const { default: cron } = await import("file://" + filePath) as { default: ICron }
const time = const time = cron.time.seconds + " " +
cron.time.seconds + " " +
cron.time.minutes + " " + cron.time.minutes + " " +
cron.time.hours + " " + cron.time.hours + " " +
cron.time.dayOfMonth + " " + cron.time.dayOfMonth + " " +

View File

@@ -1,7 +1,7 @@
import { ExtendedClient as Client } from "utils/Client.js" import fs from "fs"
import { IEvent } from "interfaces" import { IEvent } from "interfaces"
import path from "path" import path from "path"
import fs from "fs" import { ExtendedClient as Client } from "utils/Client.js"
const __dirname = import.meta.dirname const __dirname = import.meta.dirname
export default async function loadEvents(client: Client) { export default async function loadEvents(client: Client) {

View File

@@ -1,10 +1,10 @@
import { ExtendedClient as Client } from "utils/Client.js"
import color from "utils/functions/colors.js"
import { embedColor } from "config/options.js" import { embedColor } from "config/options.js"
import { IModal } from "interfaces"
import { Events } from "discord.js" import { Events } from "discord.js"
import path from "path"
import fs from "fs" import fs from "fs"
import { IModal } from "interfaces"
import path from "path"
import { ExtendedClient as Client } from "utils/Client.js"
import { color } from "utils/functions/colors.js"
import logToChannel from "utils/functions/logtochannel.js" import logToChannel from "utils/functions/logtochannel.js"
type FileType = "js" | "ts" type FileType = "js" | "ts"
const __dirname = import.meta.dirname const __dirname = import.meta.dirname

View File

@@ -1,6 +1,6 @@
export { skywarsLevel } from "./HypixelFunctions/skywars.js" export { getGuild, getHeadURL, getIGN, getPlayer, getUUID } from "./HypixelFunctions/account.js"
export { bedwarsLevel } from "./HypixelFunctions/bedwars.js" export { bedwarsLevel } from "./HypixelFunctions/bedwars.js"
export { hypixelLevel } from "./HypixelFunctions/main.js"
export { formatUuid } from "./HypixelFunctions/uuid.js"
export { guildLevel, scaledGEXP } from "./HypixelFunctions/guild.js" export { guildLevel, scaledGEXP } from "./HypixelFunctions/guild.js"
export { getUUID, getIGN, getPlayer, getGuild, getHeadURL } from "./HypixelFunctions/account.js" export { hypixelLevel } from "./HypixelFunctions/main.js"
export { skywarsLevel } from "./HypixelFunctions/skywars.js"
export { formatUuid } from "./HypixelFunctions/uuid.js"

View File

@@ -1,7 +1,7 @@
import fetch from "axios" import fetch from "axios"
import env from "utils/Env.js"
import { IPlayer, IPlayerData } from "interfaces" import { IPlayer, IPlayerData } from "interfaces"
import { IGuild, IGuildData } from "interfaces" import { IGuild, IGuildData } from "interfaces"
import env from "utils/Env.js"
const apikey = env.prod.hypixelapikey const apikey = env.prod.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 mojanguuid = "https://sessionserver.mojang.com/session/minecraft/profile/"
@@ -21,7 +21,7 @@ type Profile2 = {
data: { data: {
id: string id: string
name: string name: string
properties: { name: string; value: string }[] properties: { name: string, value: string }[]
profileActions: [] profileActions: []
} }
} }
@@ -86,4 +86,4 @@ async function getHeadURL(ign: string): Promise<string | null> {
return minotar + ign return minotar + ign
} }
export { getUUID, getIGN, getPlayer, getGuild, getHeadURL } export { getGuild, getHeadURL, getIGN, getPlayer, getUUID }

View File

@@ -3,8 +3,21 @@
*/ */
function guildLevel(exp: number): number { function guildLevel(exp: number): number {
const EXP_NEEDED = [ const EXP_NEEDED = [
100000, 150000, 250000, 500000, 750000, 1000000, 1250000, 1500000, 100000,
2000000, 2500000, 2500000, 2500000, 2500000, 2500000, 3000000 150000,
250000,
500000,
750000,
1000000,
1250000,
1500000,
2000000,
2500000,
2500000,
2500000,
2500000,
2500000,
3000000
] ]
let level = 0 let level = 0

View File

@@ -1,12 +1,12 @@
import { ExtendedClient as Client } from "utils/Client.js"
import color from "utils/functions/colors.js"
import { Redis } from "ioredis" import { Redis } from "ioredis"
import { ExtendedClient as Client } from "utils/Client.js"
import env from "utils/Env.js" import env from "utils/Env.js"
import { color } from "utils/functions/colors.js"
// import { connect } from "mongoose" // import { connect } from "mongoose"
import loadAllEvents from "./Events/loadevents.js"
import { Player } from "discord-player" import { Player } from "discord-player"
import { Sequelize } from "sequelize"
import { YoutubeiExtractor } from "discord-player-youtubei" import { YoutubeiExtractor } from "discord-player-youtubei"
import { Sequelize } from "sequelize"
import loadAllEvents from "./Events/loadevents.js"
const client = new Client() const client = new Client()
const redis = new Redis(env.prod.redisURI) const redis = new Redis(env.prod.redisURI)
@@ -38,6 +38,7 @@ class Illegitimate {
await player.extractors.register(YoutubeiExtractor, {}) await player.extractors.register(YoutubeiExtractor, {})
await client.start() await client.start()
await this.databases() await this.databases()
this.loadMethods()
} }
private async databases() { private async databases() {
@@ -71,6 +72,16 @@ class Illegitimate {
} }
} }
} }
private loadMethods() {
String.prototype.removeIndents = function(this: string) {
return this.replace(/^ */gm, "")
}
String.prototype.capitalizeFirstLetter = function(this: string) {
return this[0].toUpperCase() + this.slice(1).toLowerCase()
}
}
} }
export { Illegitimate, client, redis, sequelize } export { client, Illegitimate, redis, sequelize }

View File

@@ -12,7 +12,6 @@ const attachments = new EmbedBuilder()
.setDescription("You have uploaded an attachment. Please do not upload images, videos, or GIFS.") .setDescription("You have uploaded an attachment. Please do not upload images, videos, or GIFS.")
.setColor(embedColor) .setColor(embedColor)
export default async function applicationQuestions( export default async function applicationQuestions(
input: Collection<string, Message<boolean>>, input: Collection<string, Message<boolean>>,
user: GuildMember, user: GuildMember,

View File

@@ -7,10 +7,14 @@ const colors = {
pink: "#f5c2e7" pink: "#f5c2e7"
} }
export default function color(text: string, type: keyof typeof colors) { export function color(text: string, type: keyof typeof colors) {
return chalk.hex(colors[type])(text) return chalk.hex(colors[type])(text)
} }
export function colorCustom(text: string, color: string) {
return chalk.hex(color)(text)
}
/* const colors = { /* const colors = {
reset: "\x1b[0m", reset: "\x1b[0m",
bright: "\x1b[1m", bright: "\x1b[1m",

View File

@@ -1,7 +0,0 @@
export function capitalizeFirstLetter(str: string): string {
return str[0].toUpperCase() + str.slice(1).toLowerCase()
}
export function removeIndents(str: string): string {
return str.replace(/^ */gm, "")
}

View File

@@ -1,12 +1,4 @@
import { import { botLogChannel, devLogChannel, errorLogChannel, guildid, guildLogChannel, moderationLogChannel, onlineLogChannel } from "config/options.js"
guildid,
onlineLogChannel,
botLogChannel,
guildLogChannel,
errorLogChannel,
moderationLogChannel,
devLogChannel
} from "config/options.js"
import { Guild, MessageCreateOptions, TextChannel } from "discord.js" import { Guild, MessageCreateOptions, TextChannel } from "discord.js"
import { client } from "utils/Illegitimate.js" import { client } from "utils/Illegitimate.js"

View File

@@ -1,15 +1,4 @@
import { import { beast, defaultMember, elite, gm, guildRole, guildStaff, manager, member, moderator, verifyTick } from "config/roles.js"
gm,
manager,
moderator,
beast,
elite,
member,
guildStaff,
guildRole,
defaultMember,
verifyTick
} from "config/roles.js"
const roles = [ const roles = [
gm, gm,
manager, manager,

Some files were not shown because too many files have changed in this diff Show More