diff --git a/config-generator/config.json b/config-generator/config.json index 5c98a51f..f40ccffe 100644 --- a/config-generator/config.json +++ b/config-generator/config.json @@ -95,6 +95,15 @@ "description-en": "Default log-channel for most modules and used to log relevant information", "description-de": "Standard Log-Kanal für viele Module. Wird außerdem genutzt, um wesentliche Bot-Informationen zu senden" }, + { + "field_name": "disableEveryoneProtection", + "humanname-en": "Allow @everyone / @here pings", + "humanname-de": "@everyone und @here Pings erlauben", + "default": false, + "type": "boolean", + "description-de": "Erlaubt @everyone und @here pings in im Dashboard anpassbaren Nachrichten", + "description-en": "Allows @everyone and @here pings for messages configurable in the dashboard" + }, { "field_name": "syncCommandGlobally", "default": false, diff --git a/modules/birthday/birthday.js b/modules/birthday/birthday.js index ec23cce5..79d604ec 100644 --- a/modules/birthday/birthday.js +++ b/modules/birthday/birthday.js @@ -6,7 +6,7 @@ const {getUser, getAutoSyncMembers} = require('@scnetwork/api'); const {embedType, disableModule} = require('../../src/functions/helpers'); const {MessageEmbed} = require('discord.js'); -const {AgeFromDateString} = require('age-calculator'); +const {AgeFromDate} = require('age-calculator'); const {localize} = require('../../src/functions/localize'); /** @@ -65,6 +65,7 @@ generateBirthdayEmbed = async function (client, notifyUsers = false) { id: au.id } }); + console.log('AUTO SYNCED', au.id); if (u) { u.day = au.birthday.day; u.month = au.birthday.month; @@ -233,7 +234,7 @@ async function getUserStringForMonth(client, channel, month) { } let dateString = `${user.day}.${month}${user.year ? `.${user.year}` : ''}`; if (user.year && !client.configurations['birthday']['config'].disableSync) { - const age = new AgeFromDateString(`${user.year}-${month - 1}-${user.day}`).age; + const age = new AgeFromDate(new Date(user.year, user.month - 1, user.day)).age; if (age < 13 || age > 125) { await user.destroy(); continue; diff --git a/modules/birthday/commands/birthday.js b/modules/birthday/commands/birthday.js index 1c67e968..99b90c23 100644 --- a/modules/birthday/commands/birthday.js +++ b/modules/birthday/commands/birthday.js @@ -103,6 +103,15 @@ module.exports.subcommands = { }); } + if (!interaction.client.configurations['birthday']['config'].disableSync) { + const u = await getUser(interaction.user.id).catch(() => { + }); + if (u && (u.birthday || {}).autoSync) return interaction.reply({ + ephemeral: true, + content: '⚠ ' + localize('birthdays', 'auto-sync-on') + }); + } + if ((day > 31 || day < 1) || (month > 12 || month < 1)) return interaction.reply({ ephemeral: true, content: '⚠ ' + localize('birthdays', 'invalid-date') @@ -129,6 +138,7 @@ module.exports.subcommands = { interaction.birthday.day = day; interaction.birthday.month = month; interaction.birthday.year = year; + interaction.birthday.sync = false; interaction.regenerateEmbed = true; await interaction.reply(embedType(interaction.client.configurations['birthday']['config']['successfully_changed'], {}, {ephemeral: true})); diff --git a/modules/levels/commands/leaderboard.js b/modules/levels/commands/leaderboard.js index 091040ec..b132ae52 100644 --- a/modules/levels/commands/leaderboard.js +++ b/modules/levels/commands/leaderboard.js @@ -1,4 +1,4 @@ -const {sendMultipleSiteButtonMessage} = require('../../../src/functions/helpers'); +const {sendMultipleSiteButtonMessage, truncate} = require('../../../src/functions/helpers'); const {MessageEmbed} = require('discord.js'); const {localize} = require('../../../src/functions/localize'); @@ -73,11 +73,9 @@ module.exports.run = async function (interaction) { } else { let userString = ''; let i = 0; - let total = 0; for (const user of users) { const member = interaction.guild.members.cache.get(user.userID); if (!member) continue; - total++; i++; userString = userString + localize('levels', 'leaderboard-notation', { p: i, @@ -85,11 +83,11 @@ module.exports.run = async function (interaction) { l: user.level, xp: user.xp }) + '\n'; - if (i === total || i === 20) { - addSite({ + if (i === users.filter(u => interaction.guild.members.cache.get(u.userID)).length || i % 20 === 0) { + addSite([{ name: localize('levels', 'users'), - value: userString - }); + value: truncate(userString, 1024) + }]); userString = ''; } } diff --git a/package-lock.json b/package-lock.json index 439bfa6a..0cdb62e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,25 +1,26 @@ { "name": "customdcbot", - "version": "3.4.0", + "version": "3.5.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "customdcbot", - "version": "3.4.0", + "version": "3.5.0", "license": "GPL-3.0-or-later", "dependencies": { "@androz2091/discord-invites-tracker": "1.1.1", + "@haileybot/captcha-generator": "1.7.0", "@pixelfactory/privatebin": "2.6.1", "@scderox/ikea-name-generator": "1.0.0", "@scnetwork/api": "1.0.1", - "@twurple/api": "5.2.3", - "@twurple/auth": "5.2.3", + "@twurple/api": "5.2.4", + "@twurple/auth": "5.2.4", "age-calculator": "1.0.0", "bs58": "5.0.0", "bufferutil": "4.0.6", "centra": "2.5.0", - "discord.js": "13.10.3", + "discord.js": "13.11.0", "erlpack": "github:discord/erlpack", "fs-extra": "10.1.0", "is-equal": "1.6.4", @@ -28,13 +29,14 @@ "log4js": "6.6.1", "node-schedule": "2.1.0", "parse-duration": "1.0.2", - "sequelize": "6.21.4", - "sqlite3": "5.0.11", + "sequelize": "6.23.2", + "sqlite3": "5.1.1", + "stop-discord-phishing": "0.3.1", "utf-8-validate": "5.0.9", "zlib-sync": "0.1.7" }, "devDependencies": { - "eslint": "8.23.0" + "eslint": "8.24.0" }, "funding": { "url": "https://github.com/SCNetwork/CustomDCBot?sponsor=1" @@ -2329,9 +2331,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz", - "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz", + "integrity": "sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -3522,6 +3524,21 @@ "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, + "node_modules/@haileybot/captcha-generator": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@haileybot/captcha-generator/-/captcha-generator-1.7.0.tgz", + "integrity": "sha512-8mBIqQasUWhlg7D5XKvpfWmi7ZWIyCIMtDvzlRkGkvax+WAP5/TDUDLYkB/ae+89pTsbiL2CsXoaHR1XbBQSDA==", + "dependencies": { + "canvas": "^2.6.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "individual", + "url": "https://donate.haileybot.com" + } + }, "node_modules/@hapi/hoek": { "version": "9.2.1", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", @@ -3540,9 +3557,9 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", - "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", + "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -4847,17 +4864,17 @@ } }, "node_modules/@twurple/api": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@twurple/api/-/api-5.2.3.tgz", - "integrity": "sha512-JJVfxWfK4SdJVNzoOiI+0lrbP3ltetNAyhLv/bOjh4ZlUboMhZGxfzWmIu8yBABDybXL+qkI/DRrqtrKHw/O0Q==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@twurple/api/-/api-5.2.4.tgz", + "integrity": "sha512-BT3DnbZpuy3jqxRdl2ptiGqNsR20sv/BEqiZ1vtI9NJIc2PXpQa3YfwunKfx8irpv4C13YcKPrqelaLX1dFiZA==", "dependencies": { "@d-fischer/cache-decorators": "^3.0.0", "@d-fischer/detect-node": "^3.0.1", "@d-fischer/logger": "^4.0.0", "@d-fischer/rate-limiter": "^0.6.1", "@d-fischer/shared-utils": "^3.2.0", - "@twurple/api-call": "^5.2.3", - "@twurple/common": "^5.2.3", + "@twurple/api-call": "^5.2.4", + "@twurple/common": "^5.2.4", "tslib": "^2.0.3" }, "funding": { @@ -4868,13 +4885,13 @@ } }, "node_modules/@twurple/api-call": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@twurple/api-call/-/api-call-5.2.3.tgz", - "integrity": "sha512-X+kLr/32rl/bi1a5W9VLH8tEpSU9kRjp4Wv4WISdxqfsB1Z4xVmineQvmRujqGssGxrAyN5XyUnNVB/sXHAhpA==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@twurple/api-call/-/api-call-5.2.4.tgz", + "integrity": "sha512-TRX6/0UmXoRyLrIb6sBAAJO52yi9G04Dr4x6OmZwESSD3YZBtG1WGuz/jFyPulB/PpCf1mjpzR8RDAn0LdrRaw==", "dependencies": { "@d-fischer/cross-fetch": "^4.0.2", "@d-fischer/qs": "^7.0.2", - "@twurple/common": "^5.2.3", + "@twurple/common": "^5.2.4", "@types/node-fetch": "^2.5.7", "tslib": "^2.0.3" }, @@ -4898,14 +4915,14 @@ "integrity": "sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q==" }, "node_modules/@twurple/auth": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@twurple/auth/-/auth-5.2.3.tgz", - "integrity": "sha512-HRQTJlxjc+HnvwqUNJ1YxmaHxr3ZxmAlBPIH/bf4TGG3uTYq3vzZwno6lntJrMuBSNT8D97fgQig8FHlz54QEQ==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@twurple/auth/-/auth-5.2.4.tgz", + "integrity": "sha512-xPYCBhhc547kvRCqXA8P9lf2OU5py9Vf0h8gKTBuOXDo7/rNZUzl8NPR8MOpAkHlJGPpXEFRNIHyYmgaT2IC3A==", "dependencies": { "@d-fischer/logger": "^4.0.0", "@d-fischer/shared-utils": "^3.2.0", - "@twurple/api-call": "^5.2.3", - "@twurple/common": "^5.2.3", + "@twurple/api-call": "^5.2.4", + "@twurple/common": "^5.2.4", "tslib": "^2.0.3" }, "funding": { @@ -4913,9 +4930,9 @@ } }, "node_modules/@twurple/common": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@twurple/common/-/common-5.2.3.tgz", - "integrity": "sha512-kzCG1lSarqHkQhNs+6HbgnBf5l75pjjYZCCWP9MG0ohyaL9Krfl3l1Ib/VBF1+Y97Fwf+NpJHqgEf2ruMeFdvA==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@twurple/common/-/common-5.2.4.tgz", + "integrity": "sha512-XfdBvBw4BuvAO2NYTjN80hfTZlbDsjQHX3XNKLFGvTw7a0vMd68ThyuDLLHaMJvW+1fpWAAGF7gnDxZCmzYnAw==", "dependencies": { "@d-fischer/shared-utils": "^3.2.0", "klona": "^2.0.4", @@ -6385,6 +6402,20 @@ "optional": true, "peer": true }, + "node_modules/canvas": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.10.1.tgz", + "integrity": "sha512-29pIjn9uwTUsIgJUNd7GXxKk8sg4iyJwLm1wIilNIqX1mVzXSc2nUij9exW1LqNpis1d2ebMYfMqTWcokZ4pdA==", + "hasInstallScript": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.0", + "nan": "^2.15.0", + "simple-get": "^3.0.3" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/centra": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/centra/-/centra-2.5.0.tgz", @@ -7088,6 +7119,17 @@ "node": ">=0.10" } }, + "node_modules/decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "dependencies": { + "mimic-response": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -7294,16 +7336,16 @@ "integrity": "sha512-dvO5M52v7m7Dy96+XUnzXNsQ/0npsYpU6dL205kAtEDueswoz3aU3bh1UMoK4cQmcGtB1YRyLKqp+DXi05lzFg==" }, "node_modules/discord.js": { - "version": "13.10.3", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.10.3.tgz", - "integrity": "sha512-cIARuxfpQDeqA9Zw3fz4IL20xAhtMsjwJIf7/K82R3n2xROG9/fAx+7qjX8ysp9BfflYqMu2ZskyWq1EAmL5BA==", + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.11.0.tgz", + "integrity": "sha512-/vA6oQtKilFlwVZSIFipPeWg5kU6gjUOffuaYWtDDJwIXKqiThNdymLkmQhnf8Ztlt+3vKsoqXENrgpQdaNCVQ==", "dependencies": { "@discordjs/builders": "^0.16.0", "@discordjs/collection": "^0.7.0", "@sapphire/async-queue": "^1.5.0", "@types/node-fetch": "^2.6.2", "@types/ws": "^8.5.3", - "discord-api-types": "^0.33.3", + "discord-api-types": "^0.33.5", "form-data": "^4.0.0", "node-fetch": "^2.6.7", "ws": "^8.8.1" @@ -7604,13 +7646,13 @@ } }, "node_modules/eslint": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz", - "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.24.0.tgz", + "integrity": "sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.3.1", - "@humanwhocodes/config-array": "^0.10.4", + "@eslint/eslintrc": "^1.3.2", + "@humanwhocodes/config-array": "^0.10.5", "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", "@humanwhocodes/module-importer": "^1.0.1", "ajv": "^6.10.0", @@ -7628,7 +7670,6 @@ "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", - "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.15.0", "globby": "^11.1.0", @@ -7637,6 +7678,7 @@ "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", @@ -8806,12 +8848,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, "node_modules/functions-have-names": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", @@ -10406,6 +10442,12 @@ "optional": true, "peer": true }, + "node_modules/js-sdsl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", + "dev": true + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -11572,6 +11614,17 @@ "node": ">=6" } }, + "node_modules/mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -13795,9 +13848,9 @@ } }, "node_modules/retry-as-promised": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-5.0.0.tgz", - "integrity": "sha512-6S+5LvtTl2ggBumk04hBo/4Uf6fRJUwIgunGZ7CYEBCeufGFW1Pu6ucUf/UskHeWOIsUcLOGLFXPig5tR5V1nA==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-6.1.0.tgz", + "integrity": "sha512-Hj/jY+wFC+SB9SDlIIFWiGOHnNG0swYbGYsOj2BJ8u2HKUaobNKab0OIC0zOLYzDy0mb7A4xA5BMo4LMz5YtEA==" }, "node_modules/reusify": { "version": "1.0.4", @@ -14011,9 +14064,9 @@ } }, "node_modules/sequelize": { - "version": "6.21.4", - "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.21.4.tgz", - "integrity": "sha512-5A0+giRhGHerTDRMsZ54TYRB8oQPWxeVscbc4USG9wRtw2Eqik0Vk0p2EVDrhoq7tmNBh2nHpd9YMfvGdwPEJw==", + "version": "6.23.2", + "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.23.2.tgz", + "integrity": "sha512-0jy5pkRV7LZlBArIrYKfpKa+DowC+fIcI6LrWDfvdqFmuXZfmS4qq8gzFmIu0C210ts2Mmw/dghzRhX73xPoMg==", "funding": [ { "type": "opencollective", @@ -14030,7 +14083,7 @@ "moment": "^2.29.1", "moment-timezone": "^0.5.34", "pg-connection-string": "^2.5.0", - "retry-as-promised": "^5.0.0", + "retry-as-promised": "^6.1.0", "semver": "^7.3.5", "sequelize-pool": "^7.1.0", "toposort-class": "^1.0.1", @@ -14051,6 +14104,9 @@ "mysql2": { "optional": true }, + "oracledb": { + "optional": true + }, "pg": { "optional": true }, @@ -14219,6 +14275,35 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "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/simple-get": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", + "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", + "dependencies": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, "node_modules/simple-plist": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz", @@ -14592,9 +14677,9 @@ "peer": true }, "node_modules/sqlite3": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.11.tgz", - "integrity": "sha512-4akFOr7u9lJEeAWLJxmwiV43DJcGV7w3ab7SjQFAFaTVyknY3rZjvXTKIVtWqUoY4xwhjwoHKYs2HDW2SoHVsA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.1.tgz", + "integrity": "sha512-mMinkrQr/LKJqFiFF+AF7imPSzRCCpTCreusZO3D/ssJHVjZOrbu2Caz+zPH5KTmGGXBxXMGSRDssL+44CLxvg==", "hasInstallScript": true, "dependencies": { "@mapbox/node-pre-gyp": "^1.0.0", @@ -14769,6 +14854,22 @@ "node": ">= 0.6" } }, + "node_modules/stop-discord-phishing": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/stop-discord-phishing/-/stop-discord-phishing-0.3.1.tgz", + "integrity": "sha512-+dIQZvv5I6QyZuk2EcS/R7tFaWt2/IZ8bGuVcCmPgCfBOOYOtu2IwiRzgjrpvmzsbbAXjwf1tZdk6ot6i5Z6NQ==", + "dependencies": { + "axios": "^0.24.0" + } + }, + "node_modules/stop-discord-phishing/node_modules/axios": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "dependencies": { + "follow-redirects": "^1.14.4" + } + }, "node_modules/str2buf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/str2buf/-/str2buf-1.3.0.tgz", @@ -17841,9 +17942,9 @@ "integrity": "sha512-R5i8Wb8kIcBAFEPLLf7LVBQKBDYUL+ekb23sOgpkpyGT+V4P7V83wTxcsqmX+PbqHt4cEHn053uMWfRqh/Z/nA==" }, "@eslint/eslintrc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz", - "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz", + "integrity": "sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -18844,6 +18945,14 @@ "peer": true, "requires": {} }, + "@haileybot/captcha-generator": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@haileybot/captcha-generator/-/captcha-generator-1.7.0.tgz", + "integrity": "sha512-8mBIqQasUWhlg7D5XKvpfWmi7ZWIyCIMtDvzlRkGkvax+WAP5/TDUDLYkB/ae+89pTsbiL2CsXoaHR1XbBQSDA==", + "requires": { + "canvas": "^2.6.1" + } + }, "@hapi/hoek": { "version": "9.2.1", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", @@ -18862,9 +18971,9 @@ } }, "@humanwhocodes/config-array": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", - "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", + "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -19957,17 +20066,17 @@ "optional": true }, "@twurple/api": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@twurple/api/-/api-5.2.3.tgz", - "integrity": "sha512-JJVfxWfK4SdJVNzoOiI+0lrbP3ltetNAyhLv/bOjh4ZlUboMhZGxfzWmIu8yBABDybXL+qkI/DRrqtrKHw/O0Q==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@twurple/api/-/api-5.2.4.tgz", + "integrity": "sha512-BT3DnbZpuy3jqxRdl2ptiGqNsR20sv/BEqiZ1vtI9NJIc2PXpQa3YfwunKfx8irpv4C13YcKPrqelaLX1dFiZA==", "requires": { "@d-fischer/cache-decorators": "^3.0.0", "@d-fischer/detect-node": "^3.0.1", "@d-fischer/logger": "^4.0.0", "@d-fischer/rate-limiter": "^0.6.1", "@d-fischer/shared-utils": "^3.2.0", - "@twurple/api-call": "^5.2.3", - "@twurple/common": "^5.2.3", + "@twurple/api-call": "^5.2.4", + "@twurple/common": "^5.2.4", "tslib": "^2.0.3" }, "dependencies": { @@ -19989,33 +20098,33 @@ } }, "@twurple/api-call": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@twurple/api-call/-/api-call-5.2.3.tgz", - "integrity": "sha512-X+kLr/32rl/bi1a5W9VLH8tEpSU9kRjp4Wv4WISdxqfsB1Z4xVmineQvmRujqGssGxrAyN5XyUnNVB/sXHAhpA==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@twurple/api-call/-/api-call-5.2.4.tgz", + "integrity": "sha512-TRX6/0UmXoRyLrIb6sBAAJO52yi9G04Dr4x6OmZwESSD3YZBtG1WGuz/jFyPulB/PpCf1mjpzR8RDAn0LdrRaw==", "requires": { "@d-fischer/cross-fetch": "^4.0.2", "@d-fischer/qs": "^7.0.2", - "@twurple/common": "^5.2.3", + "@twurple/common": "^5.2.4", "@types/node-fetch": "^2.5.7", "tslib": "^2.0.3" } }, "@twurple/auth": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@twurple/auth/-/auth-5.2.3.tgz", - "integrity": "sha512-HRQTJlxjc+HnvwqUNJ1YxmaHxr3ZxmAlBPIH/bf4TGG3uTYq3vzZwno6lntJrMuBSNT8D97fgQig8FHlz54QEQ==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@twurple/auth/-/auth-5.2.4.tgz", + "integrity": "sha512-xPYCBhhc547kvRCqXA8P9lf2OU5py9Vf0h8gKTBuOXDo7/rNZUzl8NPR8MOpAkHlJGPpXEFRNIHyYmgaT2IC3A==", "requires": { "@d-fischer/logger": "^4.0.0", "@d-fischer/shared-utils": "^3.2.0", - "@twurple/api-call": "^5.2.3", - "@twurple/common": "^5.2.3", + "@twurple/api-call": "^5.2.4", + "@twurple/common": "^5.2.4", "tslib": "^2.0.3" } }, "@twurple/common": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@twurple/common/-/common-5.2.3.tgz", - "integrity": "sha512-kzCG1lSarqHkQhNs+6HbgnBf5l75pjjYZCCWP9MG0ohyaL9Krfl3l1Ib/VBF1+Y97Fwf+NpJHqgEf2ruMeFdvA==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@twurple/common/-/common-5.2.4.tgz", + "integrity": "sha512-XfdBvBw4BuvAO2NYTjN80hfTZlbDsjQHX3XNKLFGvTw7a0vMd68ThyuDLLHaMJvW+1fpWAAGF7gnDxZCmzYnAw==", "requires": { "@d-fischer/shared-utils": "^3.2.0", "klona": "^2.0.4", @@ -21213,6 +21322,16 @@ "optional": true, "peer": true }, + "canvas": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.10.1.tgz", + "integrity": "sha512-29pIjn9uwTUsIgJUNd7GXxKk8sg4iyJwLm1wIilNIqX1mVzXSc2nUij9exW1LqNpis1d2ebMYfMqTWcokZ4pdA==", + "requires": { + "@mapbox/node-pre-gyp": "^1.0.0", + "nan": "^2.15.0", + "simple-get": "^3.0.3" + } + }, "centra": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/centra/-/centra-2.5.0.tgz", @@ -21782,6 +21901,14 @@ "optional": true, "peer": true }, + "decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "requires": { + "mimic-response": "^2.0.0" + } + }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -21944,16 +22071,16 @@ "integrity": "sha512-dvO5M52v7m7Dy96+XUnzXNsQ/0npsYpU6dL205kAtEDueswoz3aU3bh1UMoK4cQmcGtB1YRyLKqp+DXi05lzFg==" }, "discord.js": { - "version": "13.10.3", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.10.3.tgz", - "integrity": "sha512-cIARuxfpQDeqA9Zw3fz4IL20xAhtMsjwJIf7/K82R3n2xROG9/fAx+7qjX8ysp9BfflYqMu2ZskyWq1EAmL5BA==", + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.11.0.tgz", + "integrity": "sha512-/vA6oQtKilFlwVZSIFipPeWg5kU6gjUOffuaYWtDDJwIXKqiThNdymLkmQhnf8Ztlt+3vKsoqXENrgpQdaNCVQ==", "requires": { "@discordjs/builders": "^0.16.0", "@discordjs/collection": "^0.7.0", "@sapphire/async-queue": "^1.5.0", "@types/node-fetch": "^2.6.2", "@types/ws": "^8.5.3", - "discord-api-types": "^0.33.3", + "discord-api-types": "^0.33.5", "form-data": "^4.0.0", "node-fetch": "^2.6.7", "ws": "^8.8.1" @@ -22203,13 +22330,13 @@ "dev": true }, "eslint": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz", - "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.24.0.tgz", + "integrity": "sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.3.1", - "@humanwhocodes/config-array": "^0.10.4", + "@eslint/eslintrc": "^1.3.2", + "@humanwhocodes/config-array": "^0.10.5", "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", "@humanwhocodes/module-importer": "^1.0.1", "ajv": "^6.10.0", @@ -22227,7 +22354,6 @@ "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", - "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.15.0", "globby": "^11.1.0", @@ -22236,6 +22362,7 @@ "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", @@ -23165,12 +23292,6 @@ "functions-have-names": "^1.2.2" } }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, "functions-have-names": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", @@ -24359,6 +24480,12 @@ "optional": true, "peer": true }, + "js-sdsl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -25345,6 +25472,11 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, + "mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" + }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -27090,9 +27222,9 @@ "optional": true }, "retry-as-promised": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-5.0.0.tgz", - "integrity": "sha512-6S+5LvtTl2ggBumk04hBo/4Uf6fRJUwIgunGZ7CYEBCeufGFW1Pu6ucUf/UskHeWOIsUcLOGLFXPig5tR5V1nA==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-6.1.0.tgz", + "integrity": "sha512-Hj/jY+wFC+SB9SDlIIFWiGOHnNG0swYbGYsOj2BJ8u2HKUaobNKab0OIC0zOLYzDy0mb7A4xA5BMo4LMz5YtEA==" }, "reusify": { "version": "1.0.4", @@ -27265,9 +27397,9 @@ } }, "sequelize": { - "version": "6.21.4", - "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.21.4.tgz", - "integrity": "sha512-5A0+giRhGHerTDRMsZ54TYRB8oQPWxeVscbc4USG9wRtw2Eqik0Vk0p2EVDrhoq7tmNBh2nHpd9YMfvGdwPEJw==", + "version": "6.23.2", + "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.23.2.tgz", + "integrity": "sha512-0jy5pkRV7LZlBArIrYKfpKa+DowC+fIcI6LrWDfvdqFmuXZfmS4qq8gzFmIu0C210ts2Mmw/dghzRhX73xPoMg==", "requires": { "@types/debug": "^4.1.7", "@types/validator": "^13.7.1", @@ -27278,7 +27410,7 @@ "moment": "^2.29.1", "moment-timezone": "^0.5.34", "pg-connection-string": "^2.5.0", - "retry-as-promised": "^5.0.0", + "retry-as-promised": "^6.1.0", "semver": "^7.3.5", "sequelize-pool": "^7.1.0", "toposort-class": "^1.0.1", @@ -27410,6 +27542,21 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" + }, + "simple-get": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", + "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", + "requires": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, "simple-plist": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz", @@ -27722,9 +27869,9 @@ "peer": true }, "sqlite3": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.11.tgz", - "integrity": "sha512-4akFOr7u9lJEeAWLJxmwiV43DJcGV7w3ab7SjQFAFaTVyknY3rZjvXTKIVtWqUoY4xwhjwoHKYs2HDW2SoHVsA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.1.tgz", + "integrity": "sha512-mMinkrQr/LKJqFiFF+AF7imPSzRCCpTCreusZO3D/ssJHVjZOrbu2Caz+zPH5KTmGGXBxXMGSRDssL+44CLxvg==", "requires": { "@mapbox/node-pre-gyp": "^1.0.0", "node-addon-api": "^4.2.0", @@ -27860,6 +28007,24 @@ "optional": true, "peer": true }, + "stop-discord-phishing": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/stop-discord-phishing/-/stop-discord-phishing-0.3.1.tgz", + "integrity": "sha512-+dIQZvv5I6QyZuk2EcS/R7tFaWt2/IZ8bGuVcCmPgCfBOOYOtu2IwiRzgjrpvmzsbbAXjwf1tZdk6ot6i5Z6NQ==", + "requires": { + "axios": "^0.24.0" + }, + "dependencies": { + "axios": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "requires": { + "follow-redirects": "^1.14.4" + } + } + } + }, "str2buf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/str2buf/-/str2buf-1.3.0.tgz", diff --git a/package.json b/package.json index bee4211c..95c3f0b7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "customdcbot", - "version": "3.5.0", + "version": "3.5.1", "description": "Create your own discord bot - Fully customizable and with a lot of features", "main": "main.js", "repository": { @@ -25,13 +25,13 @@ "@pixelfactory/privatebin": "2.6.1", "@scnetwork/api": "1.0.1", "@scderox/ikea-name-generator": "1.0.0", - "@twurple/api": "5.2.3", - "@twurple/auth": "5.2.3", + "@twurple/api": "5.2.4", + "@twurple/auth": "5.2.4", "age-calculator": "1.0.0", "bs58": "5.0.0", "bufferutil": "4.0.6", "centra": "2.5.0", - "discord.js": "13.10.3", + "discord.js": "13.11.0", "erlpack": "github:discord/erlpack", "fs-extra": "10.1.0", "is-equal": "1.6.4", @@ -40,13 +40,13 @@ "log4js": "6.6.1", "node-schedule": "2.1.0", "parse-duration": "1.0.2", - "sequelize": "6.21.6", - "sqlite3": "5.0.11", + "sequelize": "6.23.2", + "sqlite3": "5.1.1", "stop-discord-phishing": "0.3.1", "utf-8-validate": "5.0.9", "zlib-sync": "0.1.7" }, "devDependencies": { - "eslint": "8.23.0" + "eslint": "8.24.0" } } \ No newline at end of file diff --git a/src/functions/helpers.js b/src/functions/helpers.js index b1cfd45c..da1eb526 100644 --- a/src/functions/helpers.js +++ b/src/functions/helpers.js @@ -48,6 +48,10 @@ function inputReplacer(args, input) { * @return {object} Returns [MessageOptions](https://discord.js.org/#/docs/main/stable/typedef/MessageOptions) */ module.exports.embedType = function (input, args = {}, optionsToKeep = {}) { + if (!optionsToKeep.allowedMentions) { + optionsToKeep.allowedMentions = {parse: ['users', 'roles']}; + if (client.config.disableEveryoneProtection) optionsToKeep.allowedMentions.parse.push('everyone'); + } if (!optionsToKeep.allowedMentions) optionsToKeep.allowedMentions = {parse: ['users', 'roles']}; if (client.scnxSetup) input = require('./scnx-integration').verifyEmbedType(client, input); if (typeof input === 'string') {