diff --git a/Commands/ban.js b/Commands/ban.js new file mode 100644 index 0000000..6889306 --- /dev/null +++ b/Commands/ban.js @@ -0,0 +1,27 @@ +const { EmbedBuilder, SlashCommandBuilder, PermissionFlagsBits } = require('discord.js'); + +module.exports = { + + name: "ban", + description: "Ban users", + options: [], + + CommandCreator() { + const data = new SlashCommandBuilder() + .setName(this.name) + .setDefaultMemberPermissions(PermissionFlagsBits.KickMembers) + .setDescription(this.description) + .setDefaultMemberPermissions(PermissionFlagsBits.BanMembers) + .addMentionableOption(option => option.setName("target").setDescription("target to Ban").setRequired(true)) + .addStringOption(option => option.setName("reason").setDescription("Reason to take action").setRequired(true)); + return data.toJSON(); + }, + + async run(bot, interaction) { + interaction.reply("not implemented") + .catch(err => { + console.log(err) + return + }); + }, +} \ No newline at end of file diff --git a/Commands/clear.js b/Commands/clear.js new file mode 100644 index 0000000..3b95d44 --- /dev/null +++ b/Commands/clear.js @@ -0,0 +1,32 @@ +const { EmbedBuilder, SlashCommandBuilder, PermissionFlagsBits } = require('discord.js'); + +module.exports = { + + name: "clear", + description: "Bulkdeletes a set Amount of Messages", + options: [], + + CommandCreator() { + const data = new SlashCommandBuilder() + .setName(this.name) + .setDescription(this.description) + .setDefaultMemberPermissions(PermissionFlagsBits.ManageMessages) + .addIntegerOption(option => option.setName("amount").setDescription("the amount of messages to remove").setMinValue(1).setRequired(true)); + return data.toJSON(); + }, + + async run(bot, interaction) { + interaction.channel.bulkDelete(interaction.options.getInteger("amount")) + .then(interaction.channel.send(`Ich habe ${interaction.options.getInteger("amount")} Nachrichten gelöscht!`) + .then(msg => { + setTimeout(() => { + msg.delete(); + },5000) + }) + ) + .catch(err => { + console.log(err) + return + }); + }, +} \ No newline at end of file diff --git a/Commands/help.js b/Commands/help.js new file mode 100644 index 0000000..121fa52 --- /dev/null +++ b/Commands/help.js @@ -0,0 +1,33 @@ +const { EmbedBuilder, SlashCommandBuilder } = require('discord.js'); + +module.exports = { + + name: "help", + description: "Displays the bots Help page", + options: [], + + CommandCreator() { + const data = new SlashCommandBuilder() + .setName(this.name) + .setDescription(this.description); + return data.toJSON(); + }, + + async run(bot, interaction) { + const userEmbed = new EmbedBuilder() + .setColor('#0099ff') + .setTitle('Dev Pengu Help') + .setURL('https://frankenbot.io/help') + .setDescription('A List of Commands for Dev Pengu') + .addFields( + { name: '**Help**', value: '`/help`' }, + { name: '**Clear**', value: '`/clear amount`' }, + ) + + interaction.reply({ embeds: [userEmbed] }) + .catch(err => { + console.log(err) + return + }); + }, +} \ No newline at end of file diff --git a/Commands/kick.js b/Commands/kick.js new file mode 100644 index 0000000..bacc6ff --- /dev/null +++ b/Commands/kick.js @@ -0,0 +1,27 @@ +const { EmbedBuilder, SlashCommandBuilder, PermissionFlagsBits } = require('discord.js'); + +module.exports = { + + name: "kick", + description: "Kick users", + options: [], + + CommandCreator() { + const data = new SlashCommandBuilder() + .setName(this.name) + .setDefaultMemberPermissions(PermissionFlagsBits.KickMembers) + .setDescription(this.description) + .setDefaultMemberPermissions(PermissionFlagsBits.KickMembers) + .addMentionableOption(option => option.setName("target").setDescription("target to Kick").setRequired(true)) + .addStringOption(option => option.setName("reason").setDescription("Reason to take action").setRequired(true)); + return data.toJSON(); + }, + + async run(bot, interaction) { + interaction.reply("not implemented") + .catch(err => { + console.log(err) + return + }); + }, +} \ No newline at end of file diff --git a/Commands/mute.js b/Commands/mute.js new file mode 100644 index 0000000..2b7f0ae --- /dev/null +++ b/Commands/mute.js @@ -0,0 +1,27 @@ +const { EmbedBuilder, SlashCommandBuilder, PermissionFlagsBits } = require('discord.js'); + +module.exports = { + + name: "mute", + description: "Mute users", + options: [], + + CommandCreator() { + const data = new SlashCommandBuilder() + .setName(this.name) + .setDefaultMemberPermissions(PermissionFlagsBits.KickMembers) + .setDescription(this.description) + .setDefaultMemberPermissions(PermissionFlagsBits.MuteMembers) + .addMentionableOption(option => option.setName("target").setDescription("target to mute").setRequired(true)) + .addStringOption(option => option.setName("reason").setDescription("Reason to take action").setRequired(true)); + return data.toJSON(); + }, + + async run(bot, interaction) { + interaction.reply("not implemented") + .catch(err => { + console.log(err) + return + }); + }, +} \ No newline at end of file diff --git a/Commands/stats.js b/Commands/stats.js new file mode 100644 index 0000000..d1a183d --- /dev/null +++ b/Commands/stats.js @@ -0,0 +1,32 @@ +const { EmbedBuilder, SlashCommandBuilder } = require('discord.js'); + +module.exports = { + + name: "stats", + description: "Displays your stats", + options: [], + + CommandCreator() { + const data = new SlashCommandBuilder() + .setName(this.name) + .setDescription(this.description); + return data.toJSON(); + }, + + async run(bot, interaction) { + const userEmbed = new EmbedBuilder() + .setColor('#0099ff') + .setTitle(interaction.user.tag + " Stats") + .setDescription('A List of Commands for Dev Pengu') + .addFields( + { name: '**XP**', value: '0', inline: true }, + { name: '**Level**', value: '0', inline: true }, + ) + + interaction.reply({ embeds: [userEmbed] }) + .catch(err => { + console.log(err) + return + }); + }, +} \ No newline at end of file diff --git a/Commands/warn.js b/Commands/warn.js new file mode 100644 index 0000000..226ac8f --- /dev/null +++ b/Commands/warn.js @@ -0,0 +1,27 @@ +const { EmbedBuilder, SlashCommandBuilder, PermissionFlagsBits } = require('discord.js'); + +module.exports = { + + name: "warn", + description: "Warn users", + options: [], + + CommandCreator() { + const data = new SlashCommandBuilder() + .setName(this.name) + .setDefaultMemberPermissions(PermissionFlagsBits.KickMembers) + .setDescription(this.description) + .setDefaultMemberPermissions(PermissionFlagsBits.ModerateMembers) + .addMentionableOption(option => option.setName("target").setDescription("target to warn").setRequired(true)) + .addStringOption(option => option.setName("reason").setDescription("Reason to take action").setRequired(true)); + return data.toJSON(); + }, + + async run(bot, interaction) { + interaction.reply("not implemented") + .catch(err => { + console.log(err) + return + }); + }, +} \ No newline at end of file diff --git a/Commons/Data/Database.js b/Commons/Data/Database.js new file mode 100644 index 0000000..d1fd406 --- /dev/null +++ b/Commons/Data/Database.js @@ -0,0 +1,21 @@ +const sql = require('mysql'); + +var Database = async (db) => { + var server = sql.createConnection({ + host : db.HOST, + user : db.USER, + password : db.PASSWORD, + database : db.DATABASE + }); + + server.connect(function(err) { + if (err) { + console.error('error connecting: ' + err.stack); + process.exit(1) + } + }); + + return server +} + +module.exports = Database \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7750dcc --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +FROM node:latest + +RUN apt update -y && apt upgrade -y +RUN apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev -y +RUN mkdir -p /usr/src/bot +WORKDIR /usr/src/bot + +COPY package.json /usr/src/bot +RUN npm install +COPY . /usr/src/bot + +CMD ["node", "sharding.js"] \ No newline at end of file diff --git a/index.js b/index.js new file mode 100644 index 0000000..3055f60 --- /dev/null +++ b/index.js @@ -0,0 +1,53 @@ +require("dotenv").config(); +const { Client, GatewayIntentBits, Collection, REST, Routes } = require('discord.js'); +const fs = require('fs'); +const sql = require('mysql'); + +const bot = new Client({ intents: [GatewayIntentBits.Guilds] }); +bot.commands = new Collection(); +const commands = []; + +const server = sql.createConnection({ + host : process.env.HOST, + user : process.env.USER, + password : process.env.PASSWORD, + database : process.env.DATABASE +}); + +server.connect(function(err) { + if (err) { + console.error('error connecting: ' + err.stack); + process.exit(1) + } +}); + +/* =============== + * File Import * + =============== */ +const commandFiles = fs.readdirSync("./Commands/").filter((file) => file.endsWith(".js")); +for (const file of commandFiles) { + const command = require(`./Commands/${file}`); + console.log(command.CommandCreator()) + bot.commands.set(command.name, command); + commands.push(command.CommandCreator()); +} + +console.log(commands) +const rest = new REST({ version: '10' }).setToken(process.env.TOKEN); +(async () => { + try { + console.log('Started refreshing application (/) commands.'); + await rest.put(Routes.applicationCommands("1037320315186974771"), { body: commands }); + console.log('Successfully reloaded application (/) commands.'); + } catch (error) { + console.error(error); + } +})(); + +bot.on("interactionCreate", async interaction => { + if (!interaction.isChatInputCommand()) return; + let commandfile = bot.commands.get(interaction.commandName); + if (commandfile) commandfile.run(bot, interaction); +}) + +bot.login(process.env.TOKEN) \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..db3e229 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,443 @@ +{ + "name": "dev-penguins", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "dev-penguins", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "discord.js": "^14.6.0", + "dotenv": "^16.0.3", + "mysql": "^2.18.1" + } + }, + "node_modules/@discordjs/builders": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-1.3.0.tgz", + "integrity": "sha512-Pvca6Nw8Hp+n3N+Wp17xjygXmMvggbh5ywUsOYE2Et4xkwwVRwgzxDJiMUuYapPtnYt4w/8aKlf5khc8ipLvhg==", + "dependencies": { + "@discordjs/util": "^0.1.0", + "@sapphire/shapeshift": "^3.7.0", + "discord-api-types": "^0.37.12", + "fast-deep-equal": "^3.1.3", + "ts-mixer": "^6.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/collection": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-1.2.0.tgz", + "integrity": "sha512-VvrrtGb7vbfPHzbhGq9qZB5o8FOB+kfazrxdt0OtxzSkoBuw9dURMkCwWizZ00+rDpiK2HmLHBZX+y6JsG9khw==", + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/rest": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-1.3.0.tgz", + "integrity": "sha512-U6X5J+r/MxYpPTlHFuPxXEf92aKsBaD2teBC7sWkKILIr30O8c9+XshfL7KFBCavnAqS/qE+PF9fgRilO3N44g==", + "dependencies": { + "@discordjs/collection": "^1.2.0", + "@discordjs/util": "^0.1.0", + "@sapphire/async-queue": "^1.5.0", + "@sapphire/snowflake": "^3.2.2", + "discord-api-types": "^0.37.12", + "file-type": "^18.0.0", + "tslib": "^2.4.0", + "undici": "^5.11.0" + }, + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/util": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@discordjs/util/-/util-0.1.0.tgz", + "integrity": "sha512-e7d+PaTLVQav6rOc2tojh2y6FE8S7REkqLldq1XF4soCx74XB/DIjbVbVLtBemf0nLW77ntz0v+o5DytKwFNLQ==", + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@sapphire/async-queue": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.0.tgz", + "integrity": "sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA==", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sapphire/shapeshift": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.7.0.tgz", + "integrity": "sha512-A6vI1zJoxhjWo4grsxpBRBgk96SqSdjLX5WlzKp9H+bJbkM07mvwcbtbVAmUZHbi/OG3HLfiZ1rlw4BhH6tsBQ==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "lodash.uniqwith": "^4.5.0" + }, + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "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": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "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.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" + }, + "node_modules/@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", + "engines": { + "node": "*" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/discord-api-types": { + "version": "0.37.18", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.18.tgz", + "integrity": "sha512-mJ+9C8gmG5csssVZPH06Y8IGiJykljFyZc6n6F+T3vKo6yNBI5TtLIbwt6t9hJzsR5f1ITzRZ6cuPrTvRCUxqA==" + }, + "node_modules/discord.js": { + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-14.6.0.tgz", + "integrity": "sha512-On1K7xpJZRe0KsziIaDih2ksYPhgxym/ZqV45i1f3yig4vUotikqs7qp5oXiTzQ/UTiNRCixUWFTh7vA1YBCqw==", + "dependencies": { + "@discordjs/builders": "^1.3.0", + "@discordjs/collection": "^1.2.0", + "@discordjs/rest": "^1.3.0", + "@discordjs/util": "^0.1.0", + "@sapphire/snowflake": "^3.2.2", + "@types/ws": "^8.5.3", + "discord-api-types": "^0.37.12", + "fast-deep-equal": "^3.1.3", + "lodash.snakecase": "^4.1.1", + "tslib": "^2.4.0", + "undici": "^5.11.0", + "ws": "^8.9.0" + }, + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/file-type": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-18.0.0.tgz", + "integrity": "sha512-jjMwFpnW8PKofLE/4ohlhqwDk5k0NC6iy0UHAJFKoY1fQeGMN0GDdLgHQrvCbSpMwbqzoCZhRI5dETCZna5qVA==", + "dependencies": { + "readable-web-to-node-stream": "^3.0.2", + "strtok3": "^7.0.0", + "token-types": "^5.0.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, + "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/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "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/mysql": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", + "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", + "dependencies": { + "bignumber.js": "9.0.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.1.2", + "sqlstring": "2.3.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mysql/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/mysql/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/mysql/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/peek-readable": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", + "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "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/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/sqlstring": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", + "integrity": "sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "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", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", + "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^5.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/token-types": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz", + "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/ts-mixer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.2.tgz", + "integrity": "sha512-zvHx3VM83m2WYCE8XL99uaM7mFwYSkjR2OZti98fabHrwkjsCvgwChda5xctein3xGOyaQhtTeDq/1H/GNvF3A==" + }, + "node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "node_modules/undici": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.12.0.tgz", + "integrity": "sha512-zMLamCG62PGjd9HHMpo05bSLvvwWOZgGeiWlN/vlqu3+lRo3elxktVGEyLMX+IO7c2eflLjcW74AlkhEZm15mg==", + "dependencies": { + "busboy": "^1.6.0" + }, + "engines": { + "node": ">=12.18" + } + }, + "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/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..5995921 --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "name": "dev-penguins", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "start": "node ." + }, + "author": "", + "license": "ISC", + "dependencies": { + "discord.js": "^14.6.0", + "dotenv": "^16.0.3", + "mysql": "^2.18.1" + } +}