diff --git a/.DS_Store b/.DS_Store index 9695d15..222dd97 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/Addons/Configs/.DS_Store b/Addons/Configs/.DS_Store deleted file mode 100644 index 5008ddf..0000000 Binary files a/Addons/Configs/.DS_Store and /dev/null differ diff --git a/Addons/Readme.md b/Addons/Readme.md new file mode 100644 index 0000000..cf5930e --- /dev/null +++ b/Addons/Readme.md @@ -0,0 +1,2 @@ +## SupportBot Addons +This is a developer version of SupportBot, Addons are not yet supported. \ No newline at end of file diff --git a/Addons/hello.js b/Addons/hello.js deleted file mode 100644 index 3d696f5..0000000 --- a/Addons/hello.js +++ /dev/null @@ -1,45 +0,0 @@ -// SupportBot | Emerald Services -// Example (default) Addon - -const fs = require("fs"); - -const Discord = require("discord.js"); -const yaml = require("js-yaml"); -const supportbot = yaml.load( - fs.readFileSync("./Configs/supportbot.yml", "utf8") -); -const cmdconfig = yaml.load(fs.readFileSync("./Configs/commands.yml", "utf8")); - -// Your Addon Config file! Saved in /Addons/Configs/YourAddonConfig.yml -// const config = yaml.load(fs.readFileSync('./Addons/Configs/YourAddonConfig.yml', 'utf8')); - -const { Command, Event } = require("../Structures/Addon"); - -module.exports.commands = [ - /* - // EXAMPLE COMMAND - new Command({ - name: "hello", - description: "hello", - options: [], - permissions: ["SEND_MESSAGES"], - async run(interaction) { - const Embed = new Discord.MessageEmbed() - .setDescription("Hello World!") - .setColor(supportbot.InfoColour); - - interaction.reply({ - embeds: [Embed], - }); - }, - }), - */ -]; -module.exports.events = [ - /* - // EXAMPLE EVENT - new Event("ready", async (client) => { - console.log("Bot started!"); - }), - */ -]; diff --git a/Commands/add.js b/Commands/add.js index 41539fe..6b216ff 100644 --- a/Commands/add.js +++ b/Commands/add.js @@ -15,11 +15,12 @@ const Command = require("../Structures/Command.js"); module.exports = new Command({ name: cmdconfig.TicketAdd, description: cmdconfig.TicketAddDesc, + type: Discord.ApplicationCommandType.ChatInput, options: [ { name: "user", description: "User to add", - type: "USER", + type: Discord.ApplicationCommandOptionType.User, required: true, }, ], @@ -34,7 +35,7 @@ module.exports = new Command({ "Some roles seem to be missing!\nPlease check for errors when starting the bot." ); - const NoPerms = new Discord.MessageEmbed() + const NoPerms = new Discord.EmbedBuilder() .setTitle("Invalid Permissions!") .setDescription( `${supportbot.IncorrectPerms}\n\nRole Required: \`${supportbot.Staff}\` or \`${supportbot.Admin}\`` @@ -54,7 +55,7 @@ module.exports = new Command({ (t) => t.id === interaction.channel.id ); if (ticket === -1) { - const Exists = new Discord.MessageEmbed() + const Exists = new Discord.EmbedBuilder() .setTitle("No Ticket Found!") .setDescription(supportbot.NoValidTicket) .setColor(supportbot.WarningColour); @@ -62,7 +63,7 @@ module.exports = new Command({ } let uMember = interaction.options.getUser("user"); - const UserNotExist = new Discord.MessageEmbed() + const UserNotExist = new Discord.EmbedBuilder() .setTitle("User Not Found!") .setDescription( `${supportbot.UserNotFound}\n\nTry Again:\`/${cmdconfig.TicketAdd} \`` @@ -74,11 +75,11 @@ module.exports = new Command({ await interaction.channel.permissionOverwrites.edit(uMember.id, { VIEW_CHANNEL: true, }); - const Complete = new Discord.MessageEmbed() + const Complete = new Discord.EmbedBuilder() .setTitle("User Added!") .setDescription(supportbot.AddedUser.replace(/%user%/g, uMember.id)) .setTimestamp() - .setColor(supportbot.EmbedColour); + .setColor(supportbot.GeneralColour); interaction.reply({ embeds: [Complete] }); TicketData.tickets[ticket].subUsers.push(uMember.id); fs.writeFileSync( diff --git a/Commands/close.js b/Commands/close.js index 35522a5..25a01a4 100644 --- a/Commands/close.js +++ b/Commands/close.js @@ -15,11 +15,12 @@ const Command = require("../Structures/Command.js"); module.exports = new Command({ name: cmdconfig.CloseTicket, description: cmdconfig.CloseTicketDesc, + type: Discord.ApplicationCommandType.ChatInput, options: [ { name: "reason", description: "Ticket Close Reason", - type: "STRING", + type: Discord.ApplicationCommandOptionType.String, }, ], permissions: ["SEND_MESSAGES"], @@ -33,7 +34,7 @@ module.exports = new Command({ return interaction.reply( "Some roles seem to be missing!\nPlease check for errors when starting the bot." ); - const NoPerms = new Discord.MessageEmbed() + const NoPerms = new Discord.EmbedBuilder() .setTitle("Invalid Permissions!") .setDescription( `${supportbot.IncorrectPerms}\n\nRole Required: \`${supportbot.Staff}\` or \`${supportbot.Admin}\`` @@ -55,7 +56,7 @@ module.exports = new Command({ ); let ticket = tickets.tickets[TicketData]; if (TicketData === -1) { - const Exists = new Discord.MessageEmbed() + const Exists = new Discord.EmbedBuilder() .setTitle("No Ticket Found!") .setDescription(supportbot.NoValidTicket) .setColor(supportbot.WarningColour); @@ -73,12 +74,12 @@ module.exports = new Command({ if (!transcriptChannel || !logChannel) return interaction.followUp("Some Channels seem to be missing!"); if (supportbot.CloseConfirmation) { - const CloseTicketRequest = new Discord.MessageEmbed() + const CloseTicketRequest = new Discord.EmbedBuilder() .setTitle(`**${supportbot.ClosingTicket}**`) .setDescription( `Please confirm by repeating the following word.. \`${supportbot.ClosingConfirmation_Word}\` ` ) - .setColor(supportbot.EmbedColour); + .setColor(supportbot.GeneralColour); await interaction.followUp({ embeds: [CloseTicketRequest] }); let filter = (m) => m.content.toLowerCase() === supportbot.ClosingConfirmation_Word && @@ -100,9 +101,9 @@ module.exports = new Command({ } ); await interaction.followUp(`**${supportbot.ClosingTicket}**`); - const transcriptEmbed = new Discord.MessageEmbed() + const transcriptEmbed = new Discord.EmbedBuilder() .setTitle(supportbot.TranscriptTitle) - .setColor(supportbot.EmbedColour) + .setColor(supportbot.GeneralColour) .setFooter({ text: supportbot.EmbedFooter, iconURL: interaction.user.displayAvatarURL(), @@ -119,9 +120,9 @@ module.exports = new Command({ ) .addField("Closed By", interaction.user.tag) .addField("Reason", reason); - const logEmbed = new Discord.MessageEmbed() + const logEmbed = new Discord.EmbedBuilder() .setTitle(supportbot.TicketLog_Title) - .setColor(supportbot.EmbedColour) + .setColor(supportbot.GeneralColour) .setFooter({ text: supportbot.EmbedFooter, iconURL: interaction.user.displayAvatarURL(), diff --git a/Commands/embed.js b/Commands/embed.js index d06c1ea..b34a922 100644 --- a/Commands/embed.js +++ b/Commands/embed.js @@ -15,47 +15,55 @@ const Command = require("../Structures/Command.js"); module.exports = new Command({ name: cmdconfig.EmbedCommand, description: cmdconfig.EmbedCommandDesc, + type: Discord.ApplicationCommandType.ChatInput, options: [ { name: "title", description: "Embed Title", type: "STRING", + type: Discord.ApplicationCommandOptionType.String, required: true, }, { name: "message", description: "Embed Message", type: "STRING", + type: Discord.ApplicationCommandOptionType.String, required: true, }, { name: "color", description: "Embed HEX Color", type: "STRING", + type: Discord.ApplicationCommandOptionType.String, required: false, }, { name: "fieldtitle", description: "Add an additional Embed Field", type: "STRING", + type: Discord.ApplicationCommandOptionType.String, required: false, }, { name: "fieldcontent", description: "Add an additional Embed Field", type: "STRING", + type: Discord.ApplicationCommandOptionType.String, required: false, }, { name: "thumbnail", description: "Embed Thumbnail URL", type: "STRING", + type: Discord.ApplicationCommandOptionType.String, required: false, }, { name: "image", description: "Embed Image URL", type: "STRING", + type: Discord.ApplicationCommandOptionType.String, required: false, }, ], @@ -70,7 +78,7 @@ module.exports = new Command({ return interaction.reply( "Some roles seem to be missing!\nPlease check for errors when starting the bot." ); - const NoPerms = new Discord.MessageEmbed() + const NoPerms = new Discord.EmbedBuilder() .setTitle("Invalid Permissions!") .setDescription( `${supportbot.IncorrectPerms}\n\nRole Required: \`${supportbot.Staff}\` or \`${supportbot.Admin}\`` @@ -83,16 +91,16 @@ module.exports = new Command({ ) { const EmbedTitle = interaction.options.getString("title"); const EmbedSubject = interaction.options.getString("message"); - const EmbedColour = interaction.options.getString("color"); + const GeneralColour = interaction.options.getString("color"); const EmbedThumbnail = interaction.options.getString("thumbnail"); const EmbedImage = interaction.options.getString("image"); const EmbedFieldContent = interaction.options.getString("fieldcontent"); const EmbedFieldTitle = interaction.options.getString("fieldtitle"); - const EmbedMsg = new Discord.MessageEmbed() + const EmbedMsg = new Discord.EmbedBuilder() .setTitle(EmbedTitle) .setDescription(EmbedSubject) - .setColor(EmbedColour) + .setColor(GeneralColour) .setThumbnail(EmbedThumbnail) .setImage(EmbedImage) if (EmbedFieldTitle && EmbedFieldContent) { EmbedMsg.addField(EmbedFieldTitle, EmbedFieldContent) }; diff --git a/Commands/help.js b/Commands/help.js index f947e53..1f987ae 100644 --- a/Commands/help.js +++ b/Commands/help.js @@ -15,6 +15,7 @@ const Command = require("../Structures/Command.js"); module.exports = new Command({ name: cmdconfig.HelpCommand, description: cmdconfig.HelpCommandDesc, + type: Discord.ApplicationCommandType.ChatInput, options: [], permissions: ["SEND_MESSAGES"], @@ -47,10 +48,10 @@ module.exports = new Command({ staffCommands += `**/${cmdconfig.UserInfoCommand}** ${cmdconfig.UserInfoCommandDesc}\n`; staffCommands += `**/${cmdconfig.TranslateCommand}** ${cmdconfig.TranslateCommandDesc}\n`; - const HelpEmbed1 = new Discord.MessageEmbed() - .setTitle(supportbot.Name + " Commands") + const HelpEmbed1 = new Discord.EmbedBuilder() + .setTitle(supportbot.General.Name + " Commands") .setThumbnail(interaction.user.displayAvatarURL()) - + .setColor(supportbot.GeneralColour) .addFields( { name: "🖥️ General Commands\n", @@ -64,7 +65,7 @@ module.exports = new Command({ } ) - .setColor(supportbot.EmbedColour) + .setColor(supportbot.GeneralColour) .setFooter({ text: supportbot.EmbedFooter, iconURL: interaction.user.displayAvatarURL(), diff --git a/Commands/info.js b/Commands/info.js index b97213f..c2f39b8 100644 --- a/Commands/info.js +++ b/Commands/info.js @@ -19,21 +19,22 @@ module.exports = new Command({ permissions: ["SEND_MESSAGES"], async run(interaction) { - const InfoButton = new Discord.MessageButton() + const InfoButton = new Discord.ButtonBuilder() .setLabel(supportbot.InfoButtonText) .setURL(supportbot.InfoURL) - .setStyle("LINK"); + .setStyle("Link"); - const inforow = new Discord.MessageActionRow().addComponents(InfoButton); + const inforow = new Discord.ActionRowBuilder().addComponents(InfoButton); - const InfoEmbed = new Discord.MessageEmbed() + const InfoEmbed = new Discord.EmbedBuilder() .setURL(supportbot.InfoURL) .setTitle(supportbot.InfoTitle) - .setColor(supportbot.InfoColour); + .setDescription(supportbot.InfoDesc) + .setColor(supportbot.InfoColour) interaction.reply({ embeds: [InfoEmbed], components: [inforow], }); }, -}); +}); \ No newline at end of file diff --git a/Commands/ping.js b/Commands/ping.js index 74637bb..4728bbe 100644 --- a/Commands/ping.js +++ b/Commands/ping.js @@ -19,11 +19,11 @@ module.exports = new Command({ permissions: ["SEND_MESSAGES"], async run(interaction) { - const PingEmbed = new Discord.MessageEmbed() + const PingEmbed = new Discord.EmbedBuilder() .setDescription( `:ping_pong: **Ping:** \`${interaction.client.ws.ping} ms\`` ) - .setColor(supportbot.EmbedColour); + .setColor(supportbot.GeneralColour); interaction.reply({ embeds: [PingEmbed], diff --git a/Commands/remove.js b/Commands/remove.js index 6193c3b..a902c0c 100644 --- a/Commands/remove.js +++ b/Commands/remove.js @@ -15,11 +15,13 @@ const Command = require("../Structures/Command.js"); module.exports = new Command({ name: cmdconfig.TicketRemove, description: cmdconfig.TicketRemoveDesc, + type: Discord.ApplicationCommandType.ChatInput, options: [ { name: "user", description: "User to remove", type: "USER", + type: Discord.ApplicationCommandOptionType.User, required: true, }, ], @@ -34,7 +36,7 @@ module.exports = new Command({ "Some roles seem to be missing!\nPlease check for errors when starting the bot." ); - const NoPerms = new Discord.MessageEmbed() + const NoPerms = new Discord.EmbedBuilder() .setTitle("Invalid Permissions!") .setDescription( `${supportbot.IncorrectPerms}\n\nRole Required: \`${supportbot.Staff}\` or \`${supportbot.Admin}\`` @@ -53,7 +55,7 @@ module.exports = new Command({ (t) => t.id === interaction.channel.id ); if (ticket === -1) { - const Exists = new Discord.MessageEmbed() + const Exists = new Discord.EmbedBuilder() .setTitle("No Ticket Found!") .setDescription(supportbot.NoValidTicket) .setColor(supportbot.WarningColour); @@ -61,7 +63,7 @@ module.exports = new Command({ } let uMember = interaction.options.getUser("user"); - const UserNotExist = new Discord.MessageEmbed() + const UserNotExist = new Discord.EmbedBuilder() .setTitle("User Not Found!") .setDescription( `${supportbot.UserNotFound}\n\nTry Again:\`/${cmdconfig.TicketRemove} \`` @@ -74,11 +76,11 @@ module.exports = new Command({ VIEW_CHANNEL: false, }); - const Complete = new Discord.MessageEmbed() + const Complete = new Discord.EmbedBuilder() .setTitle("User Removed!") .setDescription(supportbot.RemovedUser.replace(/%user%/g, uMember.id)) .setTimestamp() - .setColor(supportbot.EmbedColour); + .setColor(supportbot.GeneralColour); interaction.reply({ embeds: [Complete] }); TicketData.tickets[ticket].subUsers = TicketData.tickets[ ticket diff --git a/Commands/suggest.js b/Commands/suggest.js index 1c66fa6..54ef212 100644 --- a/Commands/suggest.js +++ b/Commands/suggest.js @@ -15,11 +15,13 @@ const Command = require("../Structures/Command.js"); module.exports = new Command({ name: cmdconfig.SuggestCommand, description: cmdconfig.SuggestCommandDesc, + type: Discord.ApplicationCommandType.ChatInput, options: [ { name: "suggestion", description: "Create a Suggestion", type: "STRING", + type: Discord.ApplicationCommandOptionType.String, required: true, }, ], @@ -32,7 +34,7 @@ module.exports = new Command({ interaction.guild ); - const NoChannel = new Discord.MessageEmbed() + const NoChannel = new Discord.EmbedBuilder() .setTitle("Missing Channel!") .setDescription(supportbot.InvalidChannel) .setColor(supportbot.ErrorColour); @@ -41,7 +43,7 @@ module.exports = new Command({ let suggestion = interaction.options.getString("suggestion"); - const SuggestEmbed = new Discord.MessageEmbed() + const SuggestEmbed = new Discord.EmbedBuilder() .addField("Suggestion", suggestion, true) .addField("From", `<@${interaction.user.id}>`) .setThumbnail(interaction.user.displayAvatarURL()) @@ -49,7 +51,7 @@ module.exports = new Command({ text: supportbot.EmbedFooter, iconURL: interaction.user.displayAvatarURL(), }) - .setColor(supportbot.EmbedColour); + .setColor(supportbot.GeneralColour); const suggestionMsg = await suggestChannel.send({ embeds: [SuggestEmbed] }); if (supportbot.SuggestionUpvote && supportbot.SuggestionDownvote) { @@ -67,7 +69,7 @@ module.exports = new Command({ } } - const Submitted = new Discord.MessageEmbed() + const Submitted = new Discord.EmbedBuilder() .setTitle("Suggestion Submitted!") .setDescription( `:white_check_mark: You have successfully submitted a suggestion.` diff --git a/Commands/ticket.js b/Commands/ticket.js index 99cd77a..c9a7be8 100644 --- a/Commands/ticket.js +++ b/Commands/ticket.js @@ -8,7 +8,11 @@ const { Permissions, MessageButton, MessageActionRow, + ApplicationCommandOptionType, + ApplicationCommandType, + ButtonStyle } = require("discord.js"); + const yaml = require("js-yaml"); const supportbot = yaml.load( fs.readFileSync("./Configs/supportbot.yml", "utf8") @@ -21,12 +25,14 @@ const TicketNumberID = require("../Structures/TicketID.js"); module.exports = new Command({ name: cmdconfig.OpenTicket, description: cmdconfig.OpenTicketDesc, + type: ApplicationCommandType.ChatInput, options: [ { name: "reason", description: "Ticket Reason", - type: "STRING", + type: ApplicationCommandOptionType.String, }, + ], permissions: ["SEND_MESSAGES"], @@ -164,7 +170,7 @@ module.exports = new Command({ .replace(/%ticketid%/g, ticketChannel.id) .replace(/%ticketusername%/g, interaction.user.username) ) - .setColor(supportbot.EmbedColour); + .setColor(supportbot.GeneralColour); await interaction.reply({ embeds: [CreatedTicket], ephemeral: true }); if (supportbot.AllowTicketMentions) { @@ -182,7 +188,7 @@ module.exports = new Command({ .replace(/%ticketid%/g, ticketChannel.id) .replace(/%ticketusername%/g, interaction.user.username) ) - .setColor(supportbot.EmbedColour); + .setColor(supportbot.GeneralColour); if (supportbot.TicketSubject === "embed") { if (TicketSubject !== "No Reason Provided.") { @@ -280,7 +286,7 @@ module.exports = new Command({ embeds: [ { description: `> Thank for reaching out to the **${title} Department**. Please provide us information regarding your query.`, - color: supportbot.EmbedColour, + color: supportbot.GeneralColour, }, ], }); @@ -317,7 +323,7 @@ module.exports = new Command({ embeds: [ { description: `> Thank for reaching out to the **${title} Department**. Please provide us information regarding your query.`, - color: supportbot.EmbedColour, + color: supportbot.GeneralColour, }, ], }); diff --git a/Commands/translate.js b/Commands/translate.js index e988cd5..29d128e 100644 --- a/Commands/translate.js +++ b/Commands/translate.js @@ -18,15 +18,16 @@ const translate = require("@vitalets/google-translate-api"); module.exports = new Command({ name: cmdconfig.TranslateCommand, // Name of command description: cmdconfig.TranslateCommandDesc, // Description of command + type: Discord.ApplicationCommandType.ChatInput, options: [ { - type: "STRING", + type: Discord.ApplicationCommandOptionType.String, name: "language", description: "A 2 letter language code", required: true, }, { - type: "STRING", + type: Discord.ApplicationCommandOptionType.String, name: "text", description: "The text to translate", required: true, @@ -44,7 +45,7 @@ module.exports = new Command({ "Some roles seem to be missing!\nPlease check the error logs." ); - const NoPerms = new Discord.MessageEmbed() + const NoPerms = new Discord.EmbedBuilder() .setTitle("Invalid Permissions!") .setDescription( `${supportbot.IncorrectPerms}\n\nRole Required: \`${supportbot.Staff}\` or \`${supportbot.Admin}\`` @@ -72,7 +73,7 @@ module.exports = new Command({ if (err && err.code == 400) { await interaction.reply({ embeds: [ - new Discord.MessageEmbed() + new Discord.EmbedBuilder() .setColor(supportbot.WarningColour) .setTitle("Valid Language Codes") .setURL(url) @@ -87,7 +88,7 @@ module.exports = new Command({ if (!result) return; // Embed containing language code, original text and translated text - let transembed = new Discord.MessageEmbed() + let transembed = new Discord.EmbedBuilder() .setAuthor({ name: interaction.user.tag, iconURL: interaction.user.displayAvatarURL({ dynamic: true }) }) .setColor(supportbot.SuccessColour) .setDescription(`**Translation to ${lang}**`) diff --git a/Commands/userinfo.js b/Commands/userinfo.js index 88b3fbb..ee68fc3 100644 --- a/Commands/userinfo.js +++ b/Commands/userinfo.js @@ -18,9 +18,10 @@ const Command = require("../Structures/Command.js"); module.exports = new Command({ name: cmdconfig.UserInfoCommand, // Name of command description: cmdconfig.UserInfoCommandDesc, // Description of command + type: Discord.ApplicationCommandType.ChatInput, options: [ { - type: "USER", + type: Discord.ApplicationCommandOptionType.User, name: "user", description: "The user you want to get info about.", required: true, @@ -37,7 +38,7 @@ module.exports = new Command({ "Some roles seem to be missing!\nPlease check the error logs." ); - const NoPerms = new Discord.MessageEmbed() + const NoPerms = new Discord.EmbedBuilder() .setTitle("Invalid Permissions!") .setDescription( `${supportbot.IncorrectPerms}\n\nRole Required: \`${supportbot.Staff}\` or \`${supportbot.Admin}\`` @@ -53,7 +54,7 @@ module.exports = new Command({ let user = await interaction.options.getUser("user") || interaction.author; // Grab the mentioned user let member = await interaction.guild.members.cache.get(user.id) // Check for user and his ID - const UserNotExist = new Discord.MessageEmbed() + const UserNotExist = new Discord.EmbedBuilder() .setTitle("User Not Found!") .setDescription( `${supportbot.UserNotFound}\n\nTry Again:\`/${cmdconfig.UserInfoCommand} <@!User_ID> or @User\`` @@ -90,7 +91,7 @@ module.exports = new Command({ const userFlags = user.flags.toArray(); // Embed containing the userinfo - let userembed = new Discord.MessageEmbed() + let userembed = new Discord.EmbedBuilder() .setTitle(`User Info for User: ${user.tag}`) .setThumbnail(member.displayAvatarURL({ dynamic: true, size: 512 })) .setColor(member.roles.highest.hexColor) diff --git a/Configs/supportbot.yml b/Configs/supportbot.yml index 97ef5c2..7161edc 100644 --- a/Configs/supportbot.yml +++ b/Configs/supportbot.yml @@ -4,53 +4,54 @@ # <___/`___|| _/| _/\___/|_| |_| |___/\___/ |_| # |_| |_| # -# SupportBot created by Emerald Services +# SupportBot created by Emerald Development # Installed with MIT License # -# Discord Support: https://emeraldsrv.dev/discord -# Community Resources: https://emeraldsrv.dev/resources +# Discord Support: https://dsc.gg/emerald-dev +# Official Documentation: https://emeraldsrv.dev/wiki +# Third-Party Documentation: https://emeraldsrv.dev/third-party -SupportBot_Version: "v7.7" +SupportBot_Version: "v8.0 DEV-v1.0" # ------------------------- # General Configuration # ------------------------- -Name: "SupportBot" -Token: "BOT_TOKEN HTTPS://DISCORD.COM/DEVELOPERS" +General: + Name: "SupportBot" + Token: "BOT_TOKEN" # ------------------------- # Activity Configuration # ------------------------- -BotActivity: "Here to help!" +Status: "SupportBot v8" +Type: "Watching" +# The Type can either be Playing, Watching, Listenin or Streaming. StreamingURL: "https://www.twitch.tv/YOUR_TWITCH_NAME" -# Set The ActivityType to "STREAMING" for a streaming status! - -ActivityType: "PLAYING" -# Activity status can either be PLAYING, WATCHING, LISTENING or STREAMING. +# Set The Type to "Streaming" for a streaming status! # ------------------------- # Embed Configuration # ------------------------- -EmbedColour: "#f74343" -EmbedFooter: "SupportBot | Developed by Emerald Services" - +GeneralColour: "#f74343" ErrorColour: "#d12519" SuccessColour: "#04b545" WarningColour: "#fca117" +EmbedFooter: "SupportBot | Developed by Emerald Development" + # ------------------------- # Role Configuration # ------------------------- AutoRole: true -JoinRole: "Member" +JoinRole: "SupportBot Member" -Staff: "Staff" -Admin: "Admin" +Staff: "SupportBot Staff" +Admin: "SupportBot Admin" TicketBlackListRole: "Blacklisted" TicketMutedRole: "Muted" @@ -64,7 +65,7 @@ Welcome: true WelcomeChannel: "join-leave-logs" WelcomeColour: "#f74343" WelcomeTitle: "User Joined!" -WelcomeMessage: "%joined_user% has joined the server!" +WelcomeMessage: "> %joined_user% has joined the server!" # Available Placeholders: # %joined_user% - Mentions the user who joined @@ -82,7 +83,7 @@ Leave: true LeaveChannel: "join-leave-logs" LeaveColour: "#f74343" LeaveTitle: "User Left!" -LeaveMessage: "%joined_user% has left the server!" +LeaveMessage: "> %joined_user% has left the server!" # Available Placeholders: # %joined_user% - Mentions the user who joined @@ -99,6 +100,7 @@ EmbedLeaveThumbnail: false # ------------------------- InfoTitle: "Information" +InfoDesc: "SupportBot is an open-sourced support system for discord. It's completely free to use with high amounts of customization to match your own brand." InfoButtonText: "Visit Site" InfoURL: "https://emeraldsrv.dev" @@ -136,8 +138,8 @@ TranscriptLog: "ticket-data" DMTranscripts: true TranscriptTitle: "Ticket Transcript" TicketLog_Title: "Ticket Closed" -TicketBlackListMessage: "You are not allowed to open a ticket" -TicketMutedMessage: "You are muted and therefore not allowed to open any tickets" +TicketBlackListMessage: "> :x: You are not allowed to open a ticket" +TicketMutedMessage: "> :x: You are `Muted` and therefore not allowed to open any tickets" TicketRoleMention: "@here" # To ping a role: <@ROLE_ID> @@ -167,15 +169,15 @@ DisableTicketLogChannel: false # <#%ticketid%> - Mentions the ticket channel. Ticket_Title: "Server Support | %ticketusername%" -TicketMessage: "Hello <@%ticketauthor%>, Thank you for creating a support ticket\nPlease wait patiently whilst a member of our team reaches out to you." +TicketMessage: "> Hello <@%ticketauthor%>, Thank you for creating a support ticket\nPlease wait patiently whilst a member of our team reaches out to you." Ticket_Thumbnail: "https://images.emojiterra.com/google/android-pie/512px/1f39f.png" -NoTicketSubject: "No Reason Provided!" +NoTicketSubject: "> No Reason Provided!" -TicketCreatedAlert: ":ticket: Your support ticket has been created: <#%ticketid%>" +TicketCreatedAlert: "> :ticket: Ticked Created: <#%ticketid%>" -AddedUser: "👍 <@%user%> has been added to this ticket" -RemovedUser: "👍 <@%user%> has been removed from this ticket" +AddedUser: "> 👍 <@%user%> has been `Added` to the ticket" +RemovedUser: "> 👍 <@%user%> has been `Removed` from this ticket" # ------------------------- # Tickets Categories @@ -190,34 +192,34 @@ AllowAllStaff: false Departments: - title: "Support" - role: "Staff" - color: "SECONDARY" + role: "SupportBot Staff" + color: "Secondary" emoji: "1️⃣" category: "Tickets" - title: "Billing Support" - role: "Staff" - color: "SECONDARY" + role: "SupportBot Staff" + color: "Secondary" emoji: "2️⃣" category: "Tickets" - title: "Admin Team" - role: "Admin" - color: "SECONDARY" + role: "SupportBot Admin" + color: "Secondary" emoji: "3️⃣" category: "Tickets" # - title: "Other" # role: "Staff" -# color: "SECONDARY" +# color: "Secondary" # emoji: "3️⃣" # category: "Tickets" # Discord Button Colour Selection -# PRIMARY - Blurple -# SECONDARY - Grey -# DANGER - Red -# SUCCESS - Green +# Primary - Blurple +# Secondary- Grey +# Danger - Red +# Success - Green # --- Buttons Config --- # --- Start --- @@ -228,15 +230,15 @@ TicketCloseEmoji: "❌" TicketDeleteEmoji: "⛔" TicketLockEmoji: "🔒" -TicketCloseColour: "DANGER" -TicketDeleteColour: "DANGER" -TicketLockColour: "PRIMARY" +TicketCloseColour: "Danger" +TicketDeleteColour: "Danger" +TicketLockColour: "Primary" # Discord Button Colour Selection -# PRIMARY - Blue -# SECONDARY - Grey -# DANGER - Red -# SUCCESS - Green +# Primary - Blue +# Secondary - Grey +# Danger - Red +# Success - Green TranscriptSavedMessage: "📝 **Transcript Saved!**" TicketLockMessage: "❌ **Ticket Locked!**" @@ -246,7 +248,7 @@ TicketDeleteMessage: "⚠ **Ticket Deleting!**" # Tickets deleting after 5 secon # --- Start --- StaffOnly: true -ClosingTicket: ":warning: You have requested to close your support ticket." +ClosingTicket: "> :warning: You have requested to close your support ticket." ClosingConfirmation_Word: "confirm" CloseConfirmation: true @@ -254,8 +256,8 @@ CloseConfirmation: true # Error / Warning Messages # --------------------------- -IncorrectPerms: ":x: **Err!** You do not have the correct permissions to use this command." -InvalidChannel: ":x: **Err!** Channel not found. Please create it!" -UserNotFound: ":x: **Err!** This user doesn't exist, Are they in this server?" -NoValidTicket: ":warning: You cannot execute this command here." -TicketExists: ":warning: This ticket cannot be opened, It already exists!" +IncorrectPerms: "> :x: **Err!** You do not have the correct permissions to use this command." +InvalidChannel: "> :x: **Err!** Channel not found. Please create it!" +UserNotFound: "> :x: **Err!** This user doesn't exist, Are they in this server?" +NoValidTicket: "> :warning: You cannot execute this command here." +TicketExists: "> :warning: This ticket cannot be opened, It already exists!" diff --git a/Data/ticket-panel-id.json b/Data/ticket-panel-id.json index 52fa433..63b7e0c 100644 --- a/Data/ticket-panel-id.json +++ b/Data/ticket-panel-id.json @@ -1,4 +1 @@ -{ - "id": 0, - "TicketPanelID": "" -} \ No newline at end of file +{"id":0,"TicketPanelID":""} \ No newline at end of file diff --git a/Events/guildMemberAdd.js b/Events/guildMemberAdd.js index 6745efd..f386709 100644 --- a/Events/guildMemberAdd.js +++ b/Events/guildMemberAdd.js @@ -12,7 +12,7 @@ module.exports = new Event("guildMemberAdd", async (client, member, interaction, if (supportbot.Welcome) { const WelcomeChannel = member.guild.channels.cache.find(channel => channel.name === supportbot.WelcomeChannel) - const WelcomeEmbed = new Discord.MessageEmbed() + const WelcomeEmbed = new Discord.EmbedBuilder() .setColor(supportbot.WelcomeColour) .setTitle(supportbot.WelcomeTitle) .setDescription(supportbot.WelcomeMessage.replace(/%joined_user%/g, member.user)) diff --git a/Events/guildMemberRemove.js b/Events/guildMemberRemove.js index 3d042ce..1b4ef03 100644 --- a/Events/guildMemberRemove.js +++ b/Events/guildMemberRemove.js @@ -12,7 +12,7 @@ module.exports = new Event("guildMemberRemove", async (client, member, interacti if (supportbot.Leave) { const LeaveChannel = member.guild.channels.cache.find(channel => channel.name === supportbot.LeaveChannel) - const LeaveEmbed = new Discord.MessageEmbed() + const LeaveEmbed = new Discord.EmbedBuilder() .setColor(supportbot.LeaveColour) .setTitle(supportbot.LeaveTitle) .setDescription(supportbot.LeaveMessage.replace(/%joined_user%/g, member.user)) diff --git a/Events/interactionCreate.js b/Events/interactionCreate.js index 0a20e94..ff049ed 100644 --- a/Events/interactionCreate.js +++ b/Events/interactionCreate.js @@ -13,14 +13,14 @@ const cmdconfig = yaml.load(fs.readFileSync("./Configs/commands.yml", "utf8")); const Event = require("../Structures/Event.js"); module.exports = new Event("interactionCreate", async (client, interaction) => { - if (interaction.isCommand()) { + if (interaction.type == Discord.InteractionType.ApplicationCommand) { const command = client.commands.find( (cmd) => cmd.name.toLowerCase() === interaction.commandName ); if (interaction.user.bot || !interaction.guild) return; - const NotValid = new Discord.MessageEmbed() + const NotValid = new Discord.EmbedBuilder() .setDescription(`:x: \`Invalid Command\` `) .setColor(supportbot.ErrorColour); @@ -31,9 +31,9 @@ module.exports = new Event("interactionCreate", async (client, interaction) => { const permission = interaction.member.permissions.has(command.permissions); - const ValidPerms = new Discord.MessageEmbed() + const ValidPerms = new Discord.EmbedBuilder() .setDescription( - ":x: `Invalid Permissions` Do you have the correct permissions to execute this command?" + "> :x: `Invalid Permissions` Do you have the correct permissions to execute this command?" ) .setColor(supportbot.ErrorColour); @@ -109,16 +109,16 @@ module.exports = new Event("interactionCreate", async (client, interaction) => { } ); - const ticketDeleteButton = new Discord.MessageButton() + const ticketDeleteButton = new Discord.ButtonBuilder() .setCustomId("ticketclose") .setLabel("Close") .setStyle(supportbot.TicketDeleteColour) .setEmoji(supportbot.TicketDeleteEmoji); - const row = new Discord.MessageActionRow().addComponents( + const row = new Discord.ActionRowBuilder().addComponents( ticketDeleteButton ); - const ArchiveEmbed = new Discord.MessageEmbed() + const ArchiveEmbed = new Discord.EmbedBuilder() .setTitle("Archived") .setDescription(`Archived ${interaction.channel.name}`) .setColor(supportbot.SuccessColour); diff --git a/Events/ready.js b/Events/ready.js index ba4cbda..2c09eb2 100644 --- a/Events/ready.js +++ b/Events/ready.js @@ -16,68 +16,76 @@ const Event = require("../Structures/Event.js"); module.exports = new Event("ready", async (client, interaction) => { const { getRole, getChannel, getCategory } = client; - client.user.setActivity(supportbot.BotActivity, { - type: supportbot.ActivityType, + client.user.setActivity(supportbot.Activity, { + type: supportbot.Type, url: supportbot.StreamingURL, }); - console.log(`\u001b[107m`, `――――――――――――――――――――――――――――――――――――――――――――`); - console.log(`\u001b[91m`, `┏━━━┓╋╋╋╋╋╋╋╋╋╋╋╋╋┏┓┏━━┓╋╋╋┏┓`); - console.log(`\u001b[91m`, `┃┏━┓┃╋╋╋╋╋╋╋╋╋╋╋╋┏┛┗┫┏┓┃╋╋┏┛┗┓`); - console.log(`\u001b[91m`, `┃┗━━┳┓┏┳━━┳━━┳━━┳┻┓┏┫┗┛┗┳━┻┓┏┛`); - console.log(`\u001b[91m`, `┗━━┓┃┃┃┃┏┓┃┏┓┃┏┓┃┏┫┃┃┏━┓┃┏┓┃┃`); - console.log(`\u001b[91m`, `┃┗━┛┃┗┛┃┗┛┃┗┛┃┗┛┃┃┃┗┫┗━┛┃┗┛┃┗┓`); - console.log(`\u001b[91m`, `┗━━━┻━━┫┏━┫┏━┻━━┻┛┗━┻━━━┻━━┻━┛`); - console.log(`\u001b[91m`, `┗╋╋╋╋╋╋╋┃┃╋┃┃`); - console.log(`\u001b[91m`, `╋╋╋╋╋╋╋┗┛╋┗┛`); + console.log(`\u001b[32m`, `――――――――――――――――――――――――――――――――――――――――――――`); + console.log(` `); + console.log(`\u001b[31m`, `┏━━━┓╋╋╋╋╋╋╋╋╋╋╋╋╋┏┓┏━━┓╋╋╋┏┓`); + console.log(`\u001b[31m`, `┃┏━┓┃╋╋╋╋╋╋╋╋╋╋╋╋┏┛┗┫┏┓┃╋╋┏┛┗┓`); + console.log(`\u001b[31m`, `┃┗━━┳┓┏┳━━┳━━┳━━┳┻┓┏┫┗┛┗┳━┻┓┏┛`); + console.log(`\u001b[31m`, `┗━━┓┃┃┃┃┏┓┃┏┓┃┏┓┃┏┫┃┃┏━┓┃┏┓┃┃`); + console.log(`\u001b[31m`, `┃┗━┛┃┗┛┃┗┛┃┗┛┃┗┛┃┃┃┗┫┗━┛┃┗┛┃┗┓`); + console.log(`\u001b[31m`, `┗━━━┻━━┫┏━┫┏━┻━━┻┛┗━┻━━━┻━━┻━┛`); + console.log(`\u001b[31m`, `┗╋╋╋╋╋╋╋┃┃╋┃┃`); + console.log(`\u001b[31m`, `╋╋╋╋╋╋╋┗┛╋┗┛`); console.log(` `); console.log(`\u001b[32m`, `――――――――――――――――――――――――――――――――――――――――――――`); console.log(` `); console.log( - `\u001b[33m`, - `${supportbot.Name} | v${supportbot.SupportBot_Version}`, - `\u001b[36m`, - `Connected to Discord` + `\u001b[31m`, + `${supportbot.General.Name} | [${supportbot.SupportBot_Version}]`, + `\u001b[32m`, + `Connected to Discord`, ); + + console.log(`\u001b[31m`, `SupportBot proudly created by Emerald Development`); + + console.log(` `); + console.log( - `\u001b[33m`, - `Invite to your server:`, + `\u001b[31m`, + `Discord`, + `\u001b[32m`, + `https://dsc.gg/emerald-dev`, + ); + + console.log( + `\u001b[31m`, + `Resources`, + `\u001b[32m`, + `https://emeraldsrv.dev`, + ); + + console.log( + `\u001b[31m`, + `Documentation`, + `\u001b[32m`, + `https://emeraldsrv.dev/wiki`, + ); + + console.log( + `\u001b[31m`, + `Third-Party Documentation`, + `\u001b[32m`, + `https://emeraldsrv.dev/third-party`, + ); + + console.log(` `); + + console.log( + `\u001b[31m`, + `Invite URL:`, `\u001b[36m`, `https://discord.com/api/oauth2/authorize?client_id=` + client.user.id + `&permissions=8&scope=bot%20applications.commands` ); - console.log( - `\u001b[33m`, - `Resources:`, - `\u001b[36m`, - `https://emeraldsrv.dev/resources` - ); - console.log( - `\u001b[33m`, - `Documentation:`, - `\u001b[36m`, - `https://emeraldsrv.dev/wiki/supportbot` - ); - console.log( - `\u001b[33m`, - `Discord:`, - `\u001b[36m`, - `https://emeraldsrv.dev/discord` - ); - console.log( - `\u001b[33m`, - `Hosting:`, - `\u001b[36m`, - `https://emeraldsrv.dev/hosting` - ); + console.log(` `); - console.log(`\u001b[37m`, `SupportBot proudly created by Emerald Services`); - console.log(` `); - console.log(`\u001b[31m`, `――――――――――――――――――――――――――――――――――――――――――――`); - - - + console.log(`\u001b[32m`, `――――――――――――――――――――――――――――――――――――――――――――`); const roles = [ supportbot.Admin, @@ -121,27 +129,33 @@ module.exports = new Event("ready", async (client, interaction) => { if (missingR.length > 0) { console.log( + "\u001b[31m", + `[MISSING CONFIGURATION]`, "\u001b[33m", - `[WARN] The following Roles could not be found! Please check your configs!\n${missingR.join( + `The following Roles could not be found in your server.\n`, `\u001b[31m`, `[${missingR.join( ", " - )}` + )}]`, `\n `, ); } if (missingC.length > 0) { console.log( + "\u001b[31m", + `[MISSING CONFIGURATION]`, "\u001b[33m", - `[WARN] The following Channels could not be found! Please check your configs!\n${missingC.join( + `The following Channels could not be found in your server.\n`, `\u001b[31m`, `[${missingC.join( ", " - )}` + )}]`, `\n ` ); } if (missingCat.length > 0) { console.log( + "\u001b[31m", + `[MISSING CONFIGURATION]`, "\u001b[33m", - `[WARN] The following Categories could not be found! Please check your configs!\n${missingCat.join( + `The following Categories could not be found in your server.\n`, `\u001b[31m`, `[${missingCat.join( ", " - )}` + )}]`, `\n `, ); } if (panelconfig.TicketPanel) { @@ -152,8 +166,10 @@ module.exports = new Event("ready", async (client, interaction) => { if (!chan1) { console.log( + "\u001b[31m", + `[TICKET PANEL]`, "\u001b[33m", - "[WARN] Ticket reaction panel is not setup, You can do so via the configuration file!" + "Ticket Panel is not setup, You can set this in", `\u001b[31m`, '/Configs/Ticket-Panel.yml', `\n `, ); return false; } @@ -163,7 +179,7 @@ module.exports = new Event("ready", async (client, interaction) => { ); chan1.messages.fetch(panelid.TicketPanelID).catch(async () => { - let embed = new Discord.MessageEmbed() + let embed = new Discord.EmbedBuilder() .setTitle(panelconfig.PanelTitle) .setColor(panelconfig.PanelColour) .setFooter({ @@ -185,14 +201,14 @@ module.exports = new Event("ready", async (client, interaction) => { let button; button = supportbot.Departments.map((x) => - new Discord.MessageButton() + new Discord.ButtonBuilder() .setCustomId("department-" + supportbot.Departments.indexOf(x)) .setLabel(x.title) .setStyle(x.color) .setEmoji(x.emoji) ); - let row = new Discord.MessageActionRow().addComponents(button); + let row = new Discord.ActionRowBuilder().addComponents(button); await chan1 .send({ diff --git a/Structures/Client.js b/Structures/Client.js index c38526f..38d859c 100644 --- a/Structures/Client.js +++ b/Structures/Client.js @@ -4,7 +4,7 @@ const fs = require("fs"); const Discord = require("discord.js"); -const intents = new Discord.Intents(32767); +const { GatewayIntentBits, Partials } = require('discord.js'); const yaml = require("js-yaml"); const supportbot = yaml.load( @@ -13,7 +13,7 @@ const supportbot = yaml.load( class Client extends Discord.Client { constructor() { - super({ intents }); + super({ intents: [GatewayIntentBits.Guilds], partials: [Partials.Channel] }); this.commands = new Discord.Collection(); } @@ -62,7 +62,7 @@ class Client extends Discord.Client { console.log(`\u001b[34;1m`, "▬▬▬▬▬▬▬ Commands ▬▬▬▬▬▬▬"); commands.forEach((cmd) => { - console.log(`\u001b[31;1m`, `${cmd.name}`, `\u001b[32;1m`, "Loaded"); + console.log(`\u001b[32m`, `[CMD]`, `\u001b[37;1m`, `${cmd.name}`, `\u001b[32;1m`, "Loaded"); this.commands.set(cmd.name, cmd); }); @@ -73,9 +73,9 @@ class Client extends Discord.Client { addons.forEach((addon) => { console.log( - `\u001b[33m`, + `\u001b[32m`, `[ADDON]`, - `\u001b[31;1m`, + `\u001b[37;1m`, `${addon.name}`, `\u001b[32;1m`, "Loaded" @@ -95,7 +95,9 @@ class Client extends Discord.Client { this.once("ready", async () => { await this.guilds.cache.first()?.commands.set(this.commands); console.log( - `\u001b[32;1m`, + "\u001b[32m", + `[SUCCESS]`, + `\u001b[37;1m`, `Slash Commands Registered for ${this.guilds.cache.first().name}` ); }); @@ -107,7 +109,7 @@ class Client extends Discord.Client { .filter((file) => file.endsWith(".js")) .forEach((file) => { const event = require(`../Events/${file}`); - console.log(`\u001b[31;1m`, `${event.event}`, `\u001b[32;1m`, "Loaded"); + console.log(`\u001b[32m`, `[EVENT]`, `\u001b[37;1m`, `${event.event}`, `\u001b[32;1m`, "Loaded"); this.on(event.event, (...args) => event.run(this, ...args)); }); diff --git a/index.js b/index.js index 207b926..85468b8 100644 --- a/index.js +++ b/index.js @@ -20,4 +20,4 @@ const supportbot = yaml.load( const Client = require("./Structures/Client.js"); const client = new Client({}); -client.start(supportbot.Token); +client.start(supportbot.General.Token); diff --git a/package-lock.json b/package-lock.json index 58323eb..10da0ef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,19 +10,18 @@ "license": "MIT", "dependencies": { "@vitalets/google-translate-api": "^8.0.0", - "discord.js": "^13.6.0", + "discord.js": "^14.0.3", "js-yaml": "^4.1.0", "moment": "^2.29.3" } }, "node_modules/@discordjs/builders": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.14.0.tgz", - "integrity": "sha512-+fqLIqa9wN3R+kvlld8sgG0nt04BAZxdCDP4t2qZ9TJsquLWA+xMtT8Waibb3d4li4AQS+IOfjiHAznv/dhHgQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-1.0.0.tgz", + "integrity": "sha512-8y91ZfpOHubiGJu5tVyGI9tQCEyHZDTeqUWVcJd0dq7B96xIf84S0L4fwmD1k9zTe1eqEFSk0gc7BpY+FKn7Ww==", "dependencies": { - "@sapphire/shapeshift": "^3.1.0", - "@sindresorhus/is": "^4.6.0", - "discord-api-types": "^0.33.3", + "@sapphire/shapeshift": "^3.5.1", + "discord-api-types": "^0.36.2", "fast-deep-equal": "^3.1.3", "ts-mixer": "^6.0.1", "tslib": "^2.4.0" @@ -32,40 +31,59 @@ } }, "node_modules/@discordjs/collection": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.7.0.tgz", - "integrity": "sha512-R5i8Wb8kIcBAFEPLLf7LVBQKBDYUL+ekb23sOgpkpyGT+V4P7V83wTxcsqmX+PbqHt4cEHn053uMWfRqh/Z/nA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-1.0.0.tgz", + "integrity": "sha512-nAxDQYE5dNAzEGQ7HU20sujDsG5vLowUKCEqZkKUIlrXERZFTt/60zKUj/g4+AVCGeq+pXC5hivMaNtiC+PY5Q==", + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/rest": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-1.0.0.tgz", + "integrity": "sha512-uDAvnE0P2a8axMdD4C51EGjvCRQ2HZk2Yxf6vHWZgIqG87D8DGKMPwmquIxrrB07MjV+rwci2ObU+mGhGP+bJg==", + "dependencies": { + "@discordjs/collection": "^1.0.0", + "@sapphire/async-queue": "^1.3.2", + "@sapphire/snowflake": "^3.2.2", + "discord-api-types": "^0.36.2", + "file-type": "^17.1.2", + "tslib": "^2.4.0", + "undici": "^5.7.0" + }, "engines": { "node": ">=16.9.0" } }, "node_modules/@sapphire/async-queue": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.3.1.tgz", - "integrity": "sha512-FFTlPOWZX1kDj9xCAsRzH5xEJfawg1lNoYAA+ecOWJMHOfiZYb1uXOI3ne9U4UILSEPwfE68p3T9wUHwIQfR0g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.3.2.tgz", + "integrity": "sha512-rUpMLATsoAMnlN3gecAcr9Ecnw1vG7zi5Xr+IX22YzRzi1k9PF9vKzoT8RuEJbiIszjcimu3rveqUnvwDopz8g==", "engines": { "node": ">=v14.0.0", "npm": ">=7.0.0" } }, "node_modules/@sapphire/shapeshift": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.3.0.tgz", - "integrity": "sha512-6MNupTaIXtyVCHuejbTIE/Wmw35FKbpfRhiPCkxaQHm76iHICaWNO0oej0lipLb7vhK8mQHQn3zE6umOVvwGLw==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.5.1.tgz", + "integrity": "sha512-7JFsW5IglyOIUQI1eE0g6h06D/Far6HqpcowRScgCiLSqTf3hhkPWCWotVTtVycnDCMYIwPeaw6IEPBomKC8pA==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "lodash.uniqwith": "^4.5.0" + }, "engines": { "node": ">=v14.0.0", "npm": ">=7.0.0" } }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "node_modules/@sapphire/snowflake": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.2.2.tgz", + "integrity": "sha512-ula2O0kpSZtX9rKXNeQMrHwNd7E4jPDJYUXmEGTFdMRfyfMw+FPyh04oKMjAiDuOi64bYgVkOV3MjK+loImFhQ==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" + "node": ">=v14.0.0", + "npm": ">=7.0.0" } }, "node_modules/@szmarczak/http-timer": { @@ -79,33 +97,16 @@ "node": ">=6" } }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" + }, "node_modules/@types/node": { "version": "18.0.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" }, - "node_modules/@types/node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/node-fetch/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/@types/ws": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", @@ -128,11 +129,6 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, "node_modules/cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", @@ -180,17 +176,6 @@ "mimic-response": "^1.0.0" } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", @@ -231,37 +216,30 @@ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/discord-api-types": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.33.5.tgz", - "integrity": "sha512-dvO5M52v7m7Dy96+XUnzXNsQ/0npsYpU6dL205kAtEDueswoz3aU3bh1UMoK4cQmcGtB1YRyLKqp+DXi05lzFg==" + "version": "0.36.3", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.36.3.tgz", + "integrity": "sha512-bz/NDyG0KBo/tY14vSkrwQ/n3HKPf87a0WFW/1M9+tXYK+vp5Z5EksawfCWo2zkAc6o7CClc0eff1Pjrqznlwg==" }, "node_modules/discord.js": { - "version": "13.8.0", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.8.0.tgz", - "integrity": "sha512-EPAA/2VLycYN5wSzavqa4iJ6qj3UtQFtHw5TH/60Fj29ymfEsCQVn//o1mTpwDxzwb+rPIrWhkxKIGGnjfv0Iw==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-14.0.3.tgz", + "integrity": "sha512-wH/VQl4CqN8/+dcXEtYis1iurqxGlDpEe0O4CqH5FGqZGIjVpTdtK0STXXx7bVNX8MT/0GvLZLkmO/5gLDWZVg==", "dependencies": { - "@discordjs/builders": "^0.14.0", - "@discordjs/collection": "^0.7.0", - "@sapphire/async-queue": "^1.3.1", - "@types/node-fetch": "^2.6.1", + "@discordjs/builders": "^1.0.0", + "@discordjs/collection": "^1.0.0", + "@discordjs/rest": "^1.0.0", + "@sapphire/snowflake": "^3.2.2", "@types/ws": "^8.5.3", - "discord-api-types": "^0.33.3", - "form-data": "^4.0.0", - "node-fetch": "^2.6.1", - "ws": "^8.7.0" + "discord-api-types": "^0.36.2", + "fast-deep-equal": "^3.1.3", + "lodash.snakecase": "^4.1.1", + "tslib": "^2.4.0", + "undici": "^5.8.0", + "ws": "^8.8.1" }, "engines": { - "node": ">=16.6.0", - "npm": ">=7.0.0" + "node": ">=16.9.0" } }, "node_modules/dot-prop": { @@ -293,17 +271,20 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "node_modules/file-type": { + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-17.1.3.tgz", + "integrity": "sha512-MFVSozBIhvnx2dkxlf+010Xqn6+ojlMUT9LXQiPNoOijgRtXNMghWdGK0u2o1RoCqzHoVsw65IL8ZBcQ4MhIrw==", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "readable-web-to-node-stream": "^3.0.2", + "strtok3": "^7.0.0-alpha.7", + "token-types": "^5.0.0-alpha.2" }, "engines": { - "node": ">= 6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" } }, "node_modules/get-stream": { @@ -356,6 +337,25 @@ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -364,6 +364,11 @@ "node": ">=0.8.19" } }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, "node_modules/is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -401,6 +406,16 @@ "json-buffer": "3.0.0" } }, + "node_modules/lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==" + }, + "node_modules/lodash.uniqwith": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniqwith/-/lodash.uniqwith-4.5.0.tgz", + "integrity": "sha512-7lYL8bLopMoy4CTICbxygAUq6CdRJ36vFc80DucPueUee+d5NBRxz3FdT9Pes/HEx5mPoT9jwnsEJWz1N7uq7Q==" + }, "node_modules/lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -423,25 +438,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", @@ -458,25 +454,6 @@ "node": "*" } }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/normalize-url": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", @@ -501,6 +478,18 @@ "node": ">=6" } }, + "node_modules/peek-readable": { + "version": "5.0.0-alpha.5", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0-alpha.5.tgz", + "integrity": "sha512-pJohF/tDwV3ntnT5+EkUo4E700q/j/OCDuPxtM+5/kFGjyOai/sK4/We4Cy1MB2OiTQliWU5DxPvYIKQAdPqAA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, "node_modules/prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", @@ -518,6 +507,34 @@ "once": "^1.3.1" } }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readable-web-to-node-stream": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", + "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", + "dependencies": { + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, "node_modules/responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", @@ -526,6 +543,25 @@ "lowercase-keys": "^1.0.0" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -539,6 +575,30 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/strtok3": { + "version": "7.0.0-alpha.8", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0-alpha.8.tgz", + "integrity": "sha512-u+k19v+rTxBjGYxncRQjGvZYwYvEd0uP3D+uHKe/s4WB1eXS5ZwpZsTlBu5xSS4zEd89mTXECXg6WW3FSeV8cA==", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^5.0.0-alpha.5" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, "node_modules/to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", @@ -547,10 +607,21 @@ "node": ">=6" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "node_modules/token-types": { + "version": "5.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.0-alpha.2.tgz", + "integrity": "sha512-EsG9UxAW4M6VATrEEjhPFTKEUi1OiJqTUMIZOGBN49fGxYjZB36k0p7to3HZSmWRoHm1QfZgrg3e02fpqAt5fQ==", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } }, "node_modules/ts-mixer": { "version": "6.0.1", @@ -570,6 +641,14 @@ "is-typedarray": "^1.0.0" } }, + "node_modules/undici": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.8.0.tgz", + "integrity": "sha512-1F7Vtcez5w/LwH2G2tGnFIihuWUlc58YidwLiCv+jR2Z50x0tNXpRRw7eOIJ+GvqCqIkg9SB7NWAJ/T9TLfv8Q==", + "engines": { + "node": ">=12.18" + } + }, "node_modules/unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -592,19 +671,10 @@ "node": ">=4" } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/wrappy": { "version": "1.0.2", @@ -623,9 +693,9 @@ } }, "node_modules/ws": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", - "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", + "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", "engines": { "node": ">=10.0.0" }, @@ -653,37 +723,54 @@ }, "dependencies": { "@discordjs/builders": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.14.0.tgz", - "integrity": "sha512-+fqLIqa9wN3R+kvlld8sgG0nt04BAZxdCDP4t2qZ9TJsquLWA+xMtT8Waibb3d4li4AQS+IOfjiHAznv/dhHgQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-1.0.0.tgz", + "integrity": "sha512-8y91ZfpOHubiGJu5tVyGI9tQCEyHZDTeqUWVcJd0dq7B96xIf84S0L4fwmD1k9zTe1eqEFSk0gc7BpY+FKn7Ww==", "requires": { - "@sapphire/shapeshift": "^3.1.0", - "@sindresorhus/is": "^4.6.0", - "discord-api-types": "^0.33.3", + "@sapphire/shapeshift": "^3.5.1", + "discord-api-types": "^0.36.2", "fast-deep-equal": "^3.1.3", "ts-mixer": "^6.0.1", "tslib": "^2.4.0" } }, "@discordjs/collection": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.7.0.tgz", - "integrity": "sha512-R5i8Wb8kIcBAFEPLLf7LVBQKBDYUL+ekb23sOgpkpyGT+V4P7V83wTxcsqmX+PbqHt4cEHn053uMWfRqh/Z/nA==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-1.0.0.tgz", + "integrity": "sha512-nAxDQYE5dNAzEGQ7HU20sujDsG5vLowUKCEqZkKUIlrXERZFTt/60zKUj/g4+AVCGeq+pXC5hivMaNtiC+PY5Q==" + }, + "@discordjs/rest": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-1.0.0.tgz", + "integrity": "sha512-uDAvnE0P2a8axMdD4C51EGjvCRQ2HZk2Yxf6vHWZgIqG87D8DGKMPwmquIxrrB07MjV+rwci2ObU+mGhGP+bJg==", + "requires": { + "@discordjs/collection": "^1.0.0", + "@sapphire/async-queue": "^1.3.2", + "@sapphire/snowflake": "^3.2.2", + "discord-api-types": "^0.36.2", + "file-type": "^17.1.2", + "tslib": "^2.4.0", + "undici": "^5.7.0" + } }, "@sapphire/async-queue": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.3.1.tgz", - "integrity": "sha512-FFTlPOWZX1kDj9xCAsRzH5xEJfawg1lNoYAA+ecOWJMHOfiZYb1uXOI3ne9U4UILSEPwfE68p3T9wUHwIQfR0g==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.3.2.tgz", + "integrity": "sha512-rUpMLATsoAMnlN3gecAcr9Ecnw1vG7zi5Xr+IX22YzRzi1k9PF9vKzoT8RuEJbiIszjcimu3rveqUnvwDopz8g==" }, "@sapphire/shapeshift": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.3.0.tgz", - "integrity": "sha512-6MNupTaIXtyVCHuejbTIE/Wmw35FKbpfRhiPCkxaQHm76iHICaWNO0oej0lipLb7vhK8mQHQn3zE6umOVvwGLw==" + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.5.1.tgz", + "integrity": "sha512-7JFsW5IglyOIUQI1eE0g6h06D/Far6HqpcowRScgCiLSqTf3hhkPWCWotVTtVycnDCMYIwPeaw6IEPBomKC8pA==", + "requires": { + "fast-deep-equal": "^3.1.3", + "lodash.uniqwith": "^4.5.0" + } }, - "@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" + "@sapphire/snowflake": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.2.2.tgz", + "integrity": "sha512-ula2O0kpSZtX9rKXNeQMrHwNd7E4jPDJYUXmEGTFdMRfyfMw+FPyh04oKMjAiDuOi64bYgVkOV3MjK+loImFhQ==" }, "@szmarczak/http-timer": { "version": "1.1.2", @@ -693,32 +780,16 @@ "defer-to-connect": "^1.0.1" } }, + "@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" + }, "@types/node": { "version": "18.0.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" }, - "@types/node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, "@types/ws": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", @@ -741,11 +812,6 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, "cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", @@ -783,14 +849,6 @@ "mimic-response": "^1.0.0" } }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, "configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", @@ -822,30 +880,27 @@ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, "discord-api-types": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.33.5.tgz", - "integrity": "sha512-dvO5M52v7m7Dy96+XUnzXNsQ/0npsYpU6dL205kAtEDueswoz3aU3bh1UMoK4cQmcGtB1YRyLKqp+DXi05lzFg==" + "version": "0.36.3", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.36.3.tgz", + "integrity": "sha512-bz/NDyG0KBo/tY14vSkrwQ/n3HKPf87a0WFW/1M9+tXYK+vp5Z5EksawfCWo2zkAc6o7CClc0eff1Pjrqznlwg==" }, "discord.js": { - "version": "13.8.0", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.8.0.tgz", - "integrity": "sha512-EPAA/2VLycYN5wSzavqa4iJ6qj3UtQFtHw5TH/60Fj29ymfEsCQVn//o1mTpwDxzwb+rPIrWhkxKIGGnjfv0Iw==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-14.0.3.tgz", + "integrity": "sha512-wH/VQl4CqN8/+dcXEtYis1iurqxGlDpEe0O4CqH5FGqZGIjVpTdtK0STXXx7bVNX8MT/0GvLZLkmO/5gLDWZVg==", "requires": { - "@discordjs/builders": "^0.14.0", - "@discordjs/collection": "^0.7.0", - "@sapphire/async-queue": "^1.3.1", - "@types/node-fetch": "^2.6.1", + "@discordjs/builders": "^1.0.0", + "@discordjs/collection": "^1.0.0", + "@discordjs/rest": "^1.0.0", + "@sapphire/snowflake": "^3.2.2", "@types/ws": "^8.5.3", - "discord-api-types": "^0.33.3", - "form-data": "^4.0.0", - "node-fetch": "^2.6.1", - "ws": "^8.7.0" + "discord-api-types": "^0.36.2", + "fast-deep-equal": "^3.1.3", + "lodash.snakecase": "^4.1.1", + "tslib": "^2.4.0", + "undici": "^5.8.0", + "ws": "^8.8.1" } }, "dot-prop": { @@ -874,14 +929,14 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "file-type": { + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-17.1.3.tgz", + "integrity": "sha512-MFVSozBIhvnx2dkxlf+010Xqn6+ojlMUT9LXQiPNoOijgRtXNMghWdGK0u2o1RoCqzHoVsw65IL8ZBcQ4MhIrw==", "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "readable-web-to-node-stream": "^3.0.2", + "strtok3": "^7.0.0-alpha.7", + "token-types": "^5.0.0-alpha.2" } }, "get-stream": { @@ -927,11 +982,21 @@ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, "is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -963,6 +1028,16 @@ "json-buffer": "3.0.0" } }, + "lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==" + }, + "lodash.uniqwith": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniqwith/-/lodash.uniqwith-4.5.0.tgz", + "integrity": "sha512-7lYL8bLopMoy4CTICbxygAUq6CdRJ36vFc80DucPueUee+d5NBRxz3FdT9Pes/HEx5mPoT9jwnsEJWz1N7uq7Q==" + }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -976,19 +1051,6 @@ "semver": "^6.0.0" } }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", @@ -999,14 +1061,6 @@ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, "normalize-url": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", @@ -1025,6 +1079,11 @@ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" }, + "peek-readable": { + "version": "5.0.0-alpha.5", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0-alpha.5.tgz", + "integrity": "sha512-pJohF/tDwV3ntnT5+EkUo4E700q/j/OCDuPxtM+5/kFGjyOai/sK4/We4Cy1MB2OiTQliWU5DxPvYIKQAdPqAA==" + }, "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", @@ -1039,6 +1098,24 @@ "once": "^1.3.1" } }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readable-web-to-node-stream": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", + "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", + "requires": { + "readable-stream": "^3.6.0" + } + }, "responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", @@ -1047,6 +1124,11 @@ "lowercase-keys": "^1.0.0" } }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -1057,15 +1139,36 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "strtok3": { + "version": "7.0.0-alpha.8", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0-alpha.8.tgz", + "integrity": "sha512-u+k19v+rTxBjGYxncRQjGvZYwYvEd0uP3D+uHKe/s4WB1eXS5ZwpZsTlBu5xSS4zEd89mTXECXg6WW3FSeV8cA==", + "requires": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^5.0.0-alpha.5" + } + }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "token-types": { + "version": "5.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.0-alpha.2.tgz", + "integrity": "sha512-EsG9UxAW4M6VATrEEjhPFTKEUi1OiJqTUMIZOGBN49fGxYjZB36k0p7to3HZSmWRoHm1QfZgrg3e02fpqAt5fQ==", + "requires": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + } }, "ts-mixer": { "version": "6.0.1", @@ -1085,6 +1188,11 @@ "is-typedarray": "^1.0.0" } }, + "undici": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.8.0.tgz", + "integrity": "sha512-1F7Vtcez5w/LwH2G2tGnFIihuWUlc58YidwLiCv+jR2Z50x0tNXpRRw7eOIJ+GvqCqIkg9SB7NWAJ/T9TLfv8Q==" + }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -1101,19 +1209,10 @@ "prepend-http": "^2.0.0" } }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "wrappy": { "version": "1.0.2", @@ -1132,9 +1231,9 @@ } }, "ws": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", - "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", + "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", "requires": {} }, "xdg-basedir": { diff --git a/package.json b/package.json index d182976..dfc048f 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "type": "git", "url": "git+https://github.com/Emerald-Services/SupportBot.git" }, - "author": "Emerald Services", + "author": "Emerald Development", "license": "MIT", "bugs": { "url": "https://github.com/Emerald-Services/SupportBot/issues" @@ -19,7 +19,7 @@ "homepage": "https://github.com/Emerald-Services/SupportBot#readme", "dependencies": { "@vitalets/google-translate-api": "^8.0.0", - "discord.js": "^13.6.0", + "discord.js": "^14.0.3", "js-yaml": "^4.1.0", "moment": "^2.29.3" }