From f5e60b5886bbffda62638235197e3633cf1d06e9 Mon Sep 17 00:00:00 2001 From: mzrtamp Date: Mon, 7 Feb 2022 08:30:05 +0700 Subject: [PATCH] chore(release): version 2.4.0 (#745) * chore(deps-dev): de-bump typescript to 4.4.9 (#685) * chore: change version * feat(main): refactor some codes and fix some bugs * feat: allow user to choose stream strategy (#690) * chore(env): improve grammar (#699) * improve grammar * Update .env_example * chore(deps): bump dotenv from 10.0.0 to 14.2.0 (#694) Bumps [dotenv](https://github.com/motdotla/dotenv) from 10.0.0 to 14.2.0. - [Release notes](https://github.com/motdotla/dotenv/releases) - [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md) - [Commits](https://github.com/motdotla/dotenv/compare/v10.0.0...v14.2.0) --- updated-dependencies: - dependency-name: dotenv dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @typescript-eslint/parser from 5.9.0 to 5.10.0 (#695) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.9.0 to 5.10.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.10.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/node from 17.0.8 to 17.0.10 (#698) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.8 to 17.0.10. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump typescript from 4.5.4 to 4.5.5 (#701) Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.5.4 to 4.5.5. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Commits](https://github.com/Microsoft/TypeScript/compare/v4.5.4...v4.5.5) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @typescript-eslint/eslint-plugin (#696) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.9.0 to 5.10.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.10.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mzrtamp * chore(deps): regenerate lockfile and also update follow-redirects to a non-vulnerable version * chore(deps-dev): bump @zhycorp/eslint-config from 6.0.2 to 7.1.0 (#700) * chore(deps-dev): bump @zhycorp/eslint-config from 6.0.2 to 7.1.0 Bumps [@zhycorp/eslint-config](https://github.com/zhycorp/eslint-config) from 6.0.2 to 7.1.0. - [Release notes](https://github.com/zhycorp/eslint-config/releases) - [Commits](https://github.com/zhycorp/eslint-config/commits/7.1.0) --- updated-dependencies: - dependency-name: "@zhycorp/eslint-config" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * chore(deps-dev): bump eslint from 8.6.0 to 8.7.0 (#693) Bumps [eslint](https://github.com/eslint/eslint) from 8.6.0 to 8.7.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.6.0...v8.7.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mzrtamp Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mzrtamp * chore(deps): upgrade lockfile * fix(ci): resolve some eslint error * chore(deps): bump i18n from 0.13.4 to 0.14.0 (#704) Bumps [i18n](https://github.com/mashpie/i18n-node) from 0.13.4 to 0.14.0. - [Release notes](https://github.com/mashpie/i18n-node/releases) - [Changelog](https://github.com/mashpie/i18n-node/blob/master/CHANGELOG.md) - [Commits](https://github.com/mashpie/i18n-node/compare/0.13.4...0.14.0) --- updated-dependencies: - dependency-name: i18n dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(readme): add project maintainer field * feat: fix bugs and linter errors (#706) * chore(deps): bump dotenv from 10.0.0 to 14.3.0 (#711) Bumps [dotenv](https://github.com/motdotla/dotenv) from 10.0.0 to 14.3.0. - [Release notes](https://github.com/motdotla/dotenv/releases) - [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md) - [Commits](https://github.com/motdotla/dotenv/compare/v10.0.0...v14.3.0) --- updated-dependencies: - dependency-name: dotenv dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mzrtamp * chore(deps): bump @discordjs/voice from 0.7.5 to 0.8.0 (#709) Bumps [@discordjs/voice](https://github.com/discordjs/discord.js) from 0.7.5 to 0.8.0. - [Release notes](https://github.com/discordjs/discord.js/releases) - [Commits](https://github.com/discordjs/discord.js/compare/@discordjs/voice@0.7.5...@discordjs/voice@0.8.0) --- updated-dependencies: - dependency-name: "@discordjs/voice" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @typescript-eslint/parser from 5.9.0 to 5.10.1 (#708) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.9.0 to 5.10.1. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.10.1/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mzrtamp * chore(deps-dev): bump @typescript-eslint/eslint-plugin (#707) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.9.0 to 5.10.1. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.10.1/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mzrtamp * chore(deps): regenerate lockfile * chore(deps): bump dotenv from 10.0.0 to 14.3.2 (#712) Bumps [dotenv](https://github.com/motdotla/dotenv) from 10.0.0 to 14.3.2. - [Release notes](https://github.com/motdotla/dotenv/releases) - [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md) - [Commits](https://github.com/motdotla/dotenv/compare/v10.0.0...v14.3.2) --- updated-dependencies: - dependency-name: dotenv dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mzrtamp * chore(deps-dev): bump @types/node from 17.0.8 to 17.0.12 (#715) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.8 to 17.0.12. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mzrtamp * chore(deps): bump follow-redirects from 1.14.6 to 1.14.7 (#718) Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.6 to 1.14.7. - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.6...v1.14.7) --- updated-dependencies: - dependency-name: follow-redirects dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/node from 17.0.8 to 17.0.13 (#719) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.8 to 17.0.13. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mzrtamp * fix: disable `@typescript-eslint/no-extra-parens` rule * feat(main): re-install modules only on glitch * feat(utils): add createTable util * refactor(AboutCommand): use createTable to create information table * fix(GeneralUtil): fix youtu.be links not working * feat(YTDLUtil): fix play-dl music not playing issue and sort import declarations * chore: update CODEOWNERS * chore: change version * chore(env_example): add list of available stream strategy * chore(app.json): synchronize 'env' values * chore(readme): update content * chore(deps-dev): bump eslint from 8.6.0 to 8.8.0 (#721) Bumps [eslint](https://github.com/eslint/eslint) from 8.6.0 to 8.8.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.6.0...v8.8.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mzrtamp * chore(deps): bump i18n from 0.13.4 to 0.14.1 (#723) Bumps [i18n](https://github.com/mashpie/i18n-node) from 0.13.4 to 0.14.1. - [Release notes](https://github.com/mashpie/i18n-node/releases) - [Changelog](https://github.com/mashpie/i18n-node/blob/master/CHANGELOG.md) - [Commits](https://github.com/mashpie/i18n-node/compare/0.13.4...0.14.1) --- updated-dependencies: - dependency-name: i18n dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mzrtamp * chore(deps): bump dotenv from 10.0.0 to 16.0.0 (#728) Bumps [dotenv](https://github.com/motdotla/dotenv) from 10.0.0 to 16.0.0. - [Release notes](https://github.com/motdotla/dotenv/releases) - [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md) - [Commits](https://github.com/motdotla/dotenv/compare/v10.0.0...v16.0.0) --- updated-dependencies: - dependency-name: dotenv dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mzrtamp * chore(deps-dev): bump @types/node from 17.0.8 to 17.0.15 (#729) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.8 to 17.0.15. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mzrtamp * chore(deps): bump discord.js from 13.5.0 to 13.6.0 (#731) Bumps [discord.js](https://github.com/discordjs/discord.js) from 13.5.0 to 13.6.0. - [Release notes](https://github.com/discordjs/discord.js/releases) - [Changelog](https://github.com/discordjs/discord.js/blob/13.6.0/CHANGELOG.md) - [Commits](https://github.com/discordjs/discord.js/compare/13.5.0...13.6.0) --- updated-dependencies: - dependency-name: discord.js dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mzrtamp * chore(deps): update lockfile * chore(deps-dev): bump @typescript-eslint/eslint-plugin and @typescript-eslint/parser * chore(*): Rename (#736) Disc 11 => Rawon disc-11 => rawon * chore(readme): put splash image on the center of x axis * chore(deps): bump youtubei from 0.0.1-rc.27 to 0.0.1-rc.28 (#737) Bumps [youtubei](https://github.com/SuspiciousLookingOwl/youtubei) from 0.0.1-rc.27 to 0.0.1-rc.28. - [Release notes](https://github.com/SuspiciousLookingOwl/youtubei/releases) - [Changelog](https://github.com/SuspiciousLookingOwl/youtubei/blob/main/CHANGELOG.md) - [Commits](https://github.com/SuspiciousLookingOwl/youtubei/commits) --- updated-dependencies: - dependency-name: youtubei dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mzrtamp * chore(glitch): update string * chore(HelpCommand): respect eslint * chore(release): version 2.4.0 Co-authored-by: Ahmad Yaqdhan Co-authored-by: KagChi <59391215+KagChi@users.noreply.github.com> Co-authored-by: 21Z <69188068+21Z@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mzrtamp --- .env_example | 7 + .github/CODEOWNERS | 2 +- .github/FUNDING.yml | 4 +- .github/ISSUE_TEMPLATE/config.yml | 4 - .github/images/disc-11.png | Bin 10854 -> 0 bytes .github/images/rawon.png | Bin 0 -> 324501 bytes LICENSE | 2 +- README.md | 30 +- app.json | 15 +- index.js | 102 +- package-lock.json | 1224 ++++++++----------- package.json | 44 +- src/bot.ts | 6 +- src/commands/developers/EvalCommand.ts | 11 +- src/commands/general/AboutCommand.ts | 11 +- src/commands/general/HelpCommand.ts | 23 +- src/commands/general/InviteCommand.ts | 2 +- src/commands/general/PingCommand.ts | 5 +- src/commands/moderation/BanCommand.ts | 2 +- src/commands/moderation/KickCommand.ts | 2 +- src/commands/moderation/MuteCommand.ts | 2 +- src/commands/moderation/PurgeCommand.ts | 4 +- src/commands/moderation/UnBanCommand.ts | 4 +- src/commands/moderation/UnMuteCommand.ts | 2 +- src/commands/moderation/WarnCommand.ts | 2 +- src/commands/music/LyricsCommand.ts | 19 +- src/commands/music/NowPlayingCommand.ts | 8 +- src/commands/music/PauseCommand.ts | 2 +- src/commands/music/PlayCommand.ts | 8 +- src/commands/music/QueueCommand.ts | 4 +- src/commands/music/RemoveCommand.ts | 4 +- src/commands/music/RepeatCommand.ts | 7 +- src/commands/music/ResumeCommand.ts | 2 +- src/commands/music/SearchCommand.ts | 15 +- src/commands/music/ShuffleCommand.ts | 2 +- src/commands/music/SkipCommand.ts | 14 +- src/commands/music/SkipToCommand.ts | 2 +- src/commands/music/StayInQueueCommand.ts | 4 +- src/commands/music/VolumeCommand.ts | 4 +- src/config.ts | 17 +- src/events/ChannelUpdateEvent.ts | 2 +- src/events/InteractionCreateEvent.ts | 4 +- src/events/MessageCreateEvent.ts | 12 +- src/events/ReadyEvent.ts | 10 +- src/events/VoiceStateUpdateEvent.ts | 13 +- src/index.ts | 4 +- src/structures/BaseCommand.ts | 4 +- src/structures/BaseEvent.ts | 4 +- src/structures/CommandContext.ts | 38 +- src/structures/{Disc.ts => Rawon.ts} | 14 +- src/structures/ServerQueue.ts | 38 +- src/typings/enum.ts | 5 +- src/typings/index.d.ts | 45 +- src/utils/ButtonPagination.ts | 6 +- src/utils/ClientUtils.ts | 13 +- src/utils/CommandManager.ts | 17 +- src/utils/EventsLoader.ts | 4 +- src/utils/OperationManager.ts | 4 +- src/utils/{DiscLogger.ts => RawonLogger.ts} | 11 +- src/utils/SongManager.ts | 2 +- src/utils/chunk.ts | 2 +- src/utils/createEmbed.ts | 2 +- src/utils/functions/createTable.ts | 16 + src/utils/handlers/GeneralUtil.ts | 46 +- src/utils/handlers/SpotifyUtil.ts | 11 +- src/utils/handlers/YTDLUtil.ts | 33 +- 66 files changed, 998 insertions(+), 984 deletions(-) delete mode 100644 .github/images/disc-11.png create mode 100644 .github/images/rawon.png rename src/structures/{Disc.ts => Rawon.ts} (79%) rename src/utils/{DiscLogger.ts => RawonLogger.ts} (50%) create mode 100644 src/utils/functions/createTable.ts diff --git a/.env_example b/.env_example index eb104ce15..2b0eb6eba 100644 --- a/.env_example +++ b/.env_example @@ -62,6 +62,13 @@ DEV_GUILD=[""] # Default: production NODE_ENV="" +#============================================================================== +# Which youtube downloader do you want to use? Note: if you use play-dl, it will support a few sites. +# Example: STREAM_STRATEGY="youtube-dl" +# Available: play-dl, youtube-dl +# Default: youtube-dl +STREAM_STRATEGY="" + #============================================================================== # Do you want to enable slash command support? # Example: ENABLE_SLASH_COMMAND="yes" diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 66b2ea76a..f84585367 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,2 +1,2 @@ # Global -* @mzrtamp @Mednoob @ZenShibata +* @mzrtamp @Mednoob diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 5b0052b05..44261fdff 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,2 @@ -patreon: zhycorp -custom: ["https://karyakarsa.com/zhycorp"] +patreon: mzrtamp +custom: ["https://karyakarsa.com/mozartrafi"] diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index b46e286b2..0086358db 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,5 +1 @@ blank_issues_enabled: true -contact_links: - - name: Discord Server - url: https://zhycorp.net/discord - about: Visit our Discord server for easier and faster respond. diff --git a/.github/images/disc-11.png b/.github/images/disc-11.png deleted file mode 100644 index 72f1febe0e5d2cb753269131db3eb76c52967db5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10854 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 diff --git a/.github/images/rawon.png b/.github/images/rawon.png new file mode 100644 index 0000000000000000000000000000000000000000..de100182f5a9c64e4c6051e59036084b7bfb04f0 GIT binary patch literal 324501 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≷SQ62^~ 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

oW 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 + Splash + -# Disc 11 by Zhycorp +# Rawon -> A dedicated open-source Discord bot for Zhycorp based from [our Discord bot template](https://github.com/zhycorp/discord-bot-template) with more features. Easy to use, and with no coding required. +> A dedicated open-source music and moderation Discord bot. Easy to use, and with no coding required. -Discord Server - + -CI Status +CI Status ## Features - Interaction support. @@ -41,24 +42,23 @@ $ npm start ### Heroku You can host this bot to make it stay online on Heroku. -Deploy to Heroku +Deploy to Heroku ### Glitch You can use Glitch too for this project, featured with its code editor. -> Watch the tutorial video on YouTube! -> -> ▶️ **https://youtu.be/ILutlBl_Xyk** - 1. Star and fork this project 2. Go to [glitch.com](https://glitch.com) and make an account -3. Click **New Project** then **Import from GitHub**, specify the pop-up field with `https://github.com//disc-11` (without `<>`) +3. Click **New Project** then **Import from GitHub**, specify the pop-up field with `https://github.com//rawon` (without `<>`) 4. Please wait for a while, this process takes some minutes 5. Find `.env` file and delete it, find `.env_example` file and rename it back to `.env` 6. After specifying `.env`, open **Tools** > **Terminal** 7. Type `refresh`, and track the process from **Logs** -8. To make the bot stay online, please watch [this video](https://youtu.be/K2nqthN1xKQ?t=551) carefully. -Remix on Glitch +Remix on Glitch + +## Project Maintainer +- [@Mednoob](https://github.com/Mednoob) +- [@mzrtamp](https://github.com/mzrtamp) -> © 2021 Zhycorp Development +> © 2022 RB Project diff --git a/app.json b/app.json index d68569f75..c3895c6de 100644 --- a/app.json +++ b/app.json @@ -1,7 +1,7 @@ { - "name": "Disc 11", - "description": "A dedicated open-source Discord bot for Zhycorp based on our Discord bot template with more features. Easy to use, and with no coding required.", - "logo": "https://raw.githubusercontent.com/zhycorp/disc-11/main/.github/images/disc-11.png", + "name": "Rawon", + "description": "A dedicated open-sourced Discord bot with many features of utilization. Easy to use, and with no coding required.", + "logo": "https://raw.githubusercontent.com/mzrtamp/rawon/main/.github/images/rawon.png", "env": { "DISCORD_TOKEN": { "description": "What is your Discord bot's token? | Example: NTE5NjQ2MjIxNTU2Nzc2OTcw.XAcEQQ.0gjhNbGeWBsKP6FVuIyZWlG2cMd", @@ -52,6 +52,11 @@ "required": false, "value": "production" }, + "STREAM_STRATEGY": { + "description": "Which youtube downloader do you want to use? Note: if you use play-dl, it will support a few sites. | Example: \"play-dl\" | Available: \"play-dl\", \"youtube-dl\"", + "required": false, + "value": "youtube-dl" + }, "ENABLE_SLASH_COMMAND": { "description": "Do you want to enable slash command support? | Example: yes", "required": false, @@ -93,8 +98,8 @@ "value": "❌" } }, - "repository": "https://github.com/zhycorp/disc-11", - "website": "https://disc-11.zhycorp.net", + "repository": "https://github.com/mzrtamp/rawon", + "website": "https://rawon.tiramitzu.me", "formation": { "worker": { "quantity": 1, diff --git a/index.js b/index.js index c9b88b628..f952a3e0f 100644 --- a/index.js +++ b/index.js @@ -3,17 +3,6 @@ const { existsSync, rmSync } = require("fs"); const { resolve } = require("path"); const { Server } = require("https"); -try { - require("dotenv/config"); -} catch (err) { - console.info("[INFO] It seems dotenv hasn't been installed, trying to re-install all modules..."); - if (existsSync(resolve(process.cwd(), "node_modules"))) rmSync(resolve(process.cwd(), "node_modules"), { recursive: true }); - execSync("npm i --only=prod dotenv"); - console.info("[INFO] dotenv has been installed, trying to retrieve environment data..."); - require("dotenv/config"); - console.info("[INFO] Environment data has been retrieved."); -} - const isGlitch = ( process.env.PROJECT_DOMAIN !== undefined && process.env.PROJECT_INVITE_TOKEN !== undefined && @@ -57,36 +46,70 @@ const isGitHub = ( process.env.GITHUB_SERVER_URL !== undefined ) +function npmInstall(deleteDir = false, forceInstall = false, additionalArgs = []) { + if (deleteDir) { + const modulesPath = resolve(process.cwd(), "node_modules"); + + if (existsSync(modulesPath)) { + rmSync(modulesPath, { recursive: true }); + } + } + + execSync(`npm install${isGlitch ? " --only=prod" : ""}${forceInstall ? " --force" : ""} ${additionalArgs.join(" ")}`); +} + if (isGlitch) { - execSync("npm i --only=prod"); + try { + console.info("[INFO] Trying to re-install modules..."); + npmInstall(); + console.info("[INFO] Modules successfully re-installed."); + } catch (err) { + console.info("[INFO] Failed to re-install modules, trying to delete node_modules and re-install..."); + try { + npmInstall(true); + console.info("[INFO] Modules successfully re-installed."); + } catch { + console.info("[INFO] Failed to re-install modules, trying to delete node_modules and install modules forcefully..."); + try { + npmInstall(true, true); + console.info("[INFO] Modules successfully re-installed."); + } catch { + console.warn("[WARN] Failed to re-install modules, please re-install manually."); + } + } + } } if (isReplit) { console.warn("[WARN] We haven't added stable support for running this bot using Replit, bugs and errors may come up."); + + if (Number(process.versions.node.split(".")[0]) < 16) { + console.info("[INFO] This Replit doesn't use Node.js v16 or newer, trying to install Node.js v16..."); + execSync(`npm i --save-dev node@16.6.1 && npm config set prefix=$(pwd)/node_modules/node && export PATH=$(pwd)/node_modules/node/bin:$PATH`); + console.info("[INFO] Node.js v16 has been installed, please restart the bot."); + process.exit(0); + } } if (isGitHub) { console.warn("[WARN] Running this bot using GitHub is not recommended."); } -if (isReplit && (Number(process.versions.node.split(".")[0]) < 16)) { - console.info("[INFO] This Replit doesn't use Node.js v16 or newer, trying to install Node.js v16..."); - execSync(`npm i --save-dev node@16.6.1 && npm config set prefix=$(pwd)/node_modules/node && export PATH=$(pwd)/node_modules/node/bin:$PATH`); - console.info("[INFO] Node.js v16 has been installed, please restart the bot."); - process.exit(0); -} - if (!isGlitch) { - console.info("[INFO] This bot is not running on Glitch, trying to install ffmpeg-static..."); - execSync("npm i --no-save ffmpeg-static"); - console.info("[INFO] ffmpeg-static has been installed."); + try { + require("ffmpeg-static"); + } catch { + console.info("[INFO] This bot is not running on Glitch, trying to install ffmpeg-static..."); + npmInstall(false, false, ["--no-save", "ffmpeg-static"]); + console.info("[INFO] ffmpeg-static has been installed."); + } } if (isGlitch || isReplit) { new Server((req, res) => { const now = new Date().toLocaleString("en-US"); res.end(`OK (200) - ${now}`); - }).listen(Number(process.env.PORT) || 3000); + }).listen(Number(process.env.PORT || 3000) || 3000); console.info(`[INFO] ${isGlitch ? "Glitch" : "Replit"} environment detected, trying to compile...`); execSync(`npm run compile`); @@ -94,18 +117,37 @@ if (isGlitch || isReplit) { } (async () => { + const streamStrategy = process.env.STREAM_STRATEGY; const isUnix = ["aix", "android", "darwin", "freebsd", "linux", "openbsd", "sunos"].includes(process.platform.toLowerCase()); process.env.YOUTUBE_DL_HOST = "https://api.github.com/repos/yt-dlp/yt-dlp/releases?per_page=1"; process.env.YOUTUBE_DL_FILENAME = "yt-dlp"; - const ytdlBinaryDir = resolve(__dirname, "node_modules", "youtube-dl-exec", "bin") - if (!existsSync(resolve(ytdlBinaryDir, isUnix ? "yt-dlp" : "yt-dlp.exe"))) { - console.info("[INFO] Yt-dlp couldn't be found, trying to download..."); - if (existsSync(resolve(ytdlBinaryDir, isUnix ? "youtube-dl" : "youtube-dl.exe"))) rmSync(resolve(ytdlBinaryDir, isUnix ? "youtube-dl" : "youtube-dl.exe")); - await require("youtube-dl-exec/scripts/postinstall"); - console.info("[INFO] Yt-dlp has been downloaded."); - } + if (streamStrategy !== "play-dl") { + try { + require("youtube-dl-exec"); + } catch { + console.info("[INFO] Installing youtube-dl-exec..."); + npmInstall(false, false, ["youtube-dl-exec"]); + console.info("[INFO] Youtube-dl-exec has been installed."); + } + const ytdlBinaryDir = resolve(__dirname, "node_modules", "youtube-dl-exec", "bin") + if (!existsSync(resolve(ytdlBinaryDir, isUnix ? "yt-dlp" : "yt-dlp.exe"))) { + console.info("[INFO] Yt-dlp couldn't be found, trying to download..."); + if (existsSync(resolve(ytdlBinaryDir, isUnix ? "youtube-dl" : "youtube-dl.exe"))) rmSync(resolve(ytdlBinaryDir, isUnix ? "youtube-dl" : "youtube-dl.exe")); + await require("youtube-dl-exec/scripts/postinstall"); + console.info("[INFO] Yt-dlp has been downloaded."); + } + } + if (streamStrategy === "play-dl") { + try { + require("play-dl"); + } catch { + console.info("[INFO] Installing play-dl..."); + npmInstall(false, false, ["play-dl"]); + console.info("[INFO] Play-dl has been installed."); + } + } console.info("[INFO] Starting the bot..."); require("./dist/index.js"); })(); diff --git a/package-lock.json b/package-lock.json index d2ea24dfc..b4ebbeaef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,40 +1,43 @@ { - "name": "disc-11", - "version": "2.3.0", + "name": "rawon", + "version": "2.4.0", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "disc-11", - "version": "2.3.0", + "name": "rawon", + "version": "2.4.0", "license": "BSD-3-Clause", "dependencies": { - "@discordjs/voice": "^0.7.5", + "@discordjs/voice": "^0.8.0", "date-fns": "^2.28.0", - "discord.js": "^13.5.0", - "dotenv": "^10.0.0", + "discord.js": "^13.6.0", + "dotenv": "^16.0.0", "got": "^11.8.3", - "i18n": "0.13.4", + "i18n": "0.14.1", "opusscript": "^0.0.8", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.1", "sucrase": "^3.20.3", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", - "youtube-dl-exec": "^2.0.2", - "youtubei": "^0.0.1-rc.23" + "youtubei": "^0.0.1-rc.28" }, "devDependencies": { "@types/i18n": "^0.13.2", - "@types/node": "^17.0.8", - "@typescript-eslint/eslint-plugin": "^5.9.0", - "@typescript-eslint/parser": "^5.9.0", - "@zhycorp/eslint-config": "^6.0.2", - "eslint": "^8.5.0", - "typescript": "^4.5.4" + "@types/node": "^17.0.15", + "@typescript-eslint/eslint-plugin": "^5.10.2", + "@typescript-eslint/parser": "^5.10.2", + "@zhycorp/eslint-config": "^7.1.0", + "eslint": "^8.8.0", + "typescript": "^4.5.5" }, "engines": { "node": ">=16.6.0" + }, + "optionalDependencies": { + "play-dl": "^1.8.1", + "youtube-dl-exec": "^2.0.2" } }, "node_modules/@discordjs/builders": { @@ -53,14 +56,6 @@ "npm": ">=7.0.0" } }, - "node_modules/@discordjs/builders/node_modules/discord-api-types": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.26.1.tgz", - "integrity": "sha512-T5PdMQ+Y1MEECYMV5wmyi9VEYPagEDEi4S0amgsszpWY0VB9JJ/hEvM6BgLhbdnKky4gfmZEXtEEtojN8ZKJQQ==", - "engines": { - "node": ">=12" - } - }, "node_modules/@discordjs/collection": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.4.0.tgz", @@ -71,20 +66,19 @@ } }, "node_modules/@discordjs/voice": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.7.5.tgz", - "integrity": "sha512-lUk+CmIXNKslT6DkC9IF9rpsqhzlTiedauUCPBzepjd4XWxwBZiyVIzR6QpbAirxkAwCoAbbje+3Ho71PGLEAw==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.8.0.tgz", + "integrity": "sha512-o0JfVLMs3eLjUzPf6oxMydEeum40I7xzfUc66SLN+RrKpSAsTbngf5qnCF53nm+KDNSvrwg1AZqNm4LEAdxJIA==", "dependencies": { "@types/ws": "^8.2.0", - "discord-api-types": "^0.24.0", + "discord-api-types": "^0.26.1", "prism-media": "^1.3.2", "tiny-typed-emitter": "^2.1.0", "tslib": "^2.3.1", - "ws": "^8.2.3" + "ws": "^8.4.2" }, "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": ">=16.9.0" } }, "node_modules/@eslint/eslintrc": { @@ -136,6 +130,55 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "node_modules/@messageformat/core": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.0.0.tgz", + "integrity": "sha512-mzMCyADGweNmnMwV/xjKxtXtkXJNVcK5ATOHx4Q0GVr2Z3++in1VfrB/y6jM43nleK27tFO0Y/9pds5vxWqDvQ==", + "dependencies": { + "@messageformat/date-skeleton": "^1.0.0", + "@messageformat/number-skeleton": "^1.0.0", + "@messageformat/parser": "^5.0.0", + "@messageformat/runtime": "^3.0.0", + "make-plural": "^6.2.1", + "safe-identifier": "^0.4.1" + } + }, + "node_modules/@messageformat/core/node_modules/make-plural": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-6.2.2.tgz", + "integrity": "sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA==" + }, + "node_modules/@messageformat/date-skeleton": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/date-skeleton/-/date-skeleton-1.0.0.tgz", + "integrity": "sha512-vvj5Sd3VyXUHGbYpiFsPsSQ8pkdUM9vrR/NUbyP6ga3UqJH4p9eCwzfwaCAZatZMYMTyiKG/8QbUyGKHeTZ5kw==" + }, + "node_modules/@messageformat/number-skeleton": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/number-skeleton/-/number-skeleton-1.0.0.tgz", + "integrity": "sha512-Pe1HX/VG0q7tclM/ri85I4FKYd7Uc3gluSZbRaK1+jcXdT9Biw2hLAKyMsiz2tM6zLiK1xX+K0NMDO4RIstQig==" + }, + "node_modules/@messageformat/parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/parser/-/parser-5.0.0.tgz", + "integrity": "sha512-WiDKhi8F0zQaFU8cXgqq69eYFarCnTVxKcvhAONufKf0oUxbqLMW6JX6rV4Hqh+BEQWGyKKKHY4g1XA6bCLylA==", + "dependencies": { + "moo": "^0.5.1" + } + }, + "node_modules/@messageformat/runtime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/runtime/-/runtime-3.0.0.tgz", + "integrity": "sha512-boV0oH8jnJM/qoynQKnIbnKK5M7JPpKM0y9QUB9nQMMt16qSlgi5FfUo8usgoq6wEYqxDmIqtUfBewcj2VP+yQ==", + "dependencies": { + "make-plural": "^6.2.1" + } + }, + "node_modules/@messageformat/runtime/node_modules/make-plural": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-6.2.2.tgz", + "integrity": "sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA==" + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -181,9 +224,9 @@ } }, "node_modules/@sindresorhus/is": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", - "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.3.0.tgz", + "integrity": "sha512-wwOvh0eO3PiTEivGJWiZ+b946SlMSb4pe+y+Ur/4S87cwo09pYi+FWHHnbrM3W9W7cBYKDqQXcrFYjYUCOJUEQ==", "engines": { "node": ">=10" }, @@ -239,9 +282,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.8.tgz", - "integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==" + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.15.tgz", + "integrity": "sha512-zWt4SDDv1S9WRBNxLFxFRHxdD9tvH8f5/kg5/IaLFdnSNXsDY4eL3Q3XXN+VxUnWIhyVFDwcsmAprvwXoM/ClA==" }, "node_modules/@types/node-fetch": { "version": "2.5.12", @@ -282,14 +325,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.9.0.tgz", - "integrity": "sha512-qT4lr2jysDQBQOPsCCvpPUZHjbABoTJW8V9ZzIYKHMfppJtpdtzszDYsldwhFxlhvrp7aCHeXD1Lb9M1zhwWwQ==", + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.10.2.tgz", + "integrity": "sha512-4W/9lLuE+v27O/oe7hXJKjNtBLnZE8tQAFpapdxwSVHqtmIoPB1gph3+ahNwVuNL37BX7YQHyGF9Xv6XCnIX2Q==", "dev": true, "dependencies": { - "@typescript-eslint/experimental-utils": "5.9.0", - "@typescript-eslint/scope-manager": "5.9.0", - "@typescript-eslint/type-utils": "5.9.0", + "@typescript-eslint/scope-manager": "5.10.2", + "@typescript-eslint/type-utils": "5.10.2", + "@typescript-eslint/utils": "5.10.2", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -314,65 +357,16 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.9.0.tgz", - "integrity": "sha512-DKtdIL49Qxk2a8icF6whRk7uThuVz4A6TCXfjdJSwOsf+9ree7vgQWcx0KOyCdk0i9ETX666p4aMhrRhxhUkyg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.9.0", - "@typescript-eslint/visitor-keys": "5.9.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.0.tgz", - "integrity": "sha512-mWp6/b56Umo1rwyGCk8fPIzb9Migo8YOniBGPAQDNC6C52SeyNGN4gsVwQTAR+RS2L5xyajON4hOLwAGwPtUwg==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.0.tgz", - "integrity": "sha512-6zq0mb7LV0ThExKlecvpfepiB+XEtFv/bzx7/jKSgyXTFD7qjmSu1FoiS0x3OZaiS+UIXpH2vd9O89f02RCtgw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.9.0", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.9.0.tgz", - "integrity": "sha512-ZnLVjBrf26dn7ElyaSKa6uDhqwvAi4jBBmHK1VxuFGPRAxhdi18ubQYSGA7SRiFiES3q9JiBOBHEBStOFkwD2g==", + "node_modules/@typescript-eslint/parser": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.10.2.tgz", + "integrity": "sha512-JaNYGkaQVhP6HNF+lkdOr2cAs2wdSZBoalE22uYWq8IEv/OVH0RksSGydk+sW8cLoSeYmC+OHvRyv2i4AQ7Czg==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.9.0", - "@typescript-eslint/types": "5.9.0", - "@typescript-eslint/typescript-estree": "5.9.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "@typescript-eslint/scope-manager": "5.10.2", + "@typescript-eslint/types": "5.10.2", + "@typescript-eslint/typescript-estree": "5.10.2", + "debug": "^4.3.2" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -383,58 +377,6 @@ }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.9.0.tgz", - "integrity": "sha512-DKtdIL49Qxk2a8icF6whRk7uThuVz4A6TCXfjdJSwOsf+9ree7vgQWcx0KOyCdk0i9ETX666p4aMhrRhxhUkyg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.9.0", - "@typescript-eslint/visitor-keys": "5.9.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/@typescript-eslint/types": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.0.tgz", - "integrity": "sha512-mWp6/b56Umo1rwyGCk8fPIzb9Migo8YOniBGPAQDNC6C52SeyNGN4gsVwQTAR+RS2L5xyajON4hOLwAGwPtUwg==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.9.0.tgz", - "integrity": "sha512-kxo3xL2mB7XmiVZcECbaDwYCt3qFXz99tBSuVJR4L/sR7CJ+UNAPrYILILktGj1ppfZ/jNt/cWYbziJUlHl1Pw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.9.0", - "@typescript-eslint/visitor-keys": "5.9.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" }, "peerDependenciesMeta": { "typescript": { @@ -442,14 +384,14 @@ } } }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.0.tgz", - "integrity": "sha512-6zq0mb7LV0ThExKlecvpfepiB+XEtFv/bzx7/jKSgyXTFD7qjmSu1FoiS0x3OZaiS+UIXpH2vd9O89f02RCtgw==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.10.2.tgz", + "integrity": "sha512-39Tm6f4RoZoVUWBYr3ekS75TYgpr5Y+X0xLZxXqcZNDWZdJdYbKd3q2IR4V9y5NxxiPu/jxJ8XP7EgHiEQtFnw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.9.0", - "eslint-visitor-keys": "^3.0.0" + "@typescript-eslint/types": "5.10.2", + "@typescript-eslint/visitor-keys": "5.10.2" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -459,16 +401,15 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.9.0.tgz", - "integrity": "sha512-/6pOPz8yAxEt4PLzgbFRDpZmHnXCeZgPDrh/1DaVKOjvn/UPMlWhbx/gA96xRi2JxY1kBl2AmwVbyROUqys5xQ==", + "node_modules/@typescript-eslint/type-utils": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.10.2.tgz", + "integrity": "sha512-uRKSvw/Ccs5FYEoXW04Z5VfzF2iiZcx8Fu7DGIB7RHozuP0VbKNzP1KfZkHBTM75pCpsWxIthEH1B33dmGBKHw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.9.0", - "@typescript-eslint/types": "5.9.0", - "@typescript-eslint/typescript-estree": "5.9.0", - "debug": "^4.3.2" + "@typescript-eslint/utils": "5.10.2", + "debug": "^4.3.2", + "tsutils": "^3.21.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -478,7 +419,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "*" }, "peerDependenciesMeta": { "typescript": { @@ -486,15 +427,11 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.9.0.tgz", - "integrity": "sha512-DKtdIL49Qxk2a8icF6whRk7uThuVz4A6TCXfjdJSwOsf+9ree7vgQWcx0KOyCdk0i9ETX666p4aMhrRhxhUkyg==", + "node_modules/@typescript-eslint/types": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.10.2.tgz", + "integrity": "sha512-Qfp0qk/5j2Rz3p3/WhWgu4S1JtMcPgFLnmAKAW061uXxKSa7VWKZsDXVaMXh2N60CX9h6YLaBoy9PJAfCOjk3w==", "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.9.0", - "@typescript-eslint/visitor-keys": "5.9.0" - }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -503,27 +440,14 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.0.tgz", - "integrity": "sha512-mWp6/b56Umo1rwyGCk8fPIzb9Migo8YOniBGPAQDNC6C52SeyNGN4gsVwQTAR+RS2L5xyajON4hOLwAGwPtUwg==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.9.0.tgz", - "integrity": "sha512-kxo3xL2mB7XmiVZcECbaDwYCt3qFXz99tBSuVJR4L/sR7CJ+UNAPrYILILktGj1ppfZ/jNt/cWYbziJUlHl1Pw==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.10.2.tgz", + "integrity": "sha512-WHHw6a9vvZls6JkTgGljwCsMkv8wu8XU8WaYKeYhxhWXH/atZeiMW6uDFPLZOvzNOGmuSMvHtZKd6AuC8PrwKQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.9.0", - "@typescript-eslint/visitor-keys": "5.9.0", + "@typescript-eslint/types": "5.10.2", + "@typescript-eslint/visitor-keys": "5.10.2", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -543,14 +467,18 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.0.tgz", - "integrity": "sha512-6zq0mb7LV0ThExKlecvpfepiB+XEtFv/bzx7/jKSgyXTFD7qjmSu1FoiS0x3OZaiS+UIXpH2vd9O89f02RCtgw==", + "node_modules/@typescript-eslint/utils": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.10.2.tgz", + "integrity": "sha512-vuJaBeig1NnBRkf7q9tgMLREiYD7zsMrsN1DA3wcoMDvr3BTFiIpKjGiYZoKPllfEwN7spUjv7ZqD+JhbVjEPg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.9.0", - "eslint-visitor-keys": "^3.0.0" + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.10.2", + "@typescript-eslint/types": "5.10.2", + "@typescript-eslint/typescript-estree": "5.10.2", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -558,17 +486,19 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.9.0.tgz", - "integrity": "sha512-uVCb9dJXpBrK1071ri5aEW7ZHdDHAiqEjYznF3HSSvAJXyrkxGOw2Ejibz/q6BXdT8lea8CMI0CzKNFTNI6TEQ==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.10.2.tgz", + "integrity": "sha512-zHIhYGGGrFJvvyfwHk5M08C5B5K4bewkm+rrvNTKk1/S15YHR+SA/QUF8ZWscXSfEaB8Nn2puZj+iHcoxVOD/Q==", "dev": true, "dependencies": { - "@typescript-eslint/experimental-utils": "5.9.0", - "debug": "^4.3.2", - "tsutils": "^3.21.0" + "@typescript-eslint/types": "5.10.2", + "eslint-visitor-keys": "^3.0.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -576,26 +506,22 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } } }, "node_modules/@zhycorp/eslint-config": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@zhycorp/eslint-config/-/eslint-config-6.0.2.tgz", - "integrity": "sha512-V0jtxese5hixzzz5UTA+hl/uKzYbkdc/EcGVc3RD2WipiayuPVgt+zTjNlQxS+xE4vUeHqLEFGIA+dBTD+1z+g==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@zhycorp/eslint-config/-/eslint-config-7.1.0.tgz", + "integrity": "sha512-KtiTkDduw8l0ctbEp+bzXISLyRmiGvCblgl7lhW0L0pjw2kXmKar03cVH+v8ULLICw6vTSCn6k0O3jp+8zgwbg==", "dev": true, + "dependencies": { + "strip-json-comments": "^3.1.1" + }, "peerDependencies": { - "@typescript-eslint/eslint-plugin": ">=5.0.0", - "@typescript-eslint/parser": ">=5.0.0", - "eslint": ">=8.0.0", - "typescript": ">=3.3.1 <4.5.0" + "@types/node": "^17.0.9", + "@typescript-eslint/eslint-plugin": ">=5.10.0", + "@typescript-eslint/parser": ">=5.10.0", + "eslint": ">=8.7.0", + "typescript": ">=3.3.1 <4.6.0" }, "peerDependenciesMeta": { "@typescript-eslint/eslint-plugin": { @@ -646,15 +572,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -717,6 +634,11 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/boolean": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz", + "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==" + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -842,6 +764,7 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "devOptional": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -855,6 +778,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "optional": true, "engines": { "node": ">=8" } @@ -947,17 +871,17 @@ } }, "node_modules/discord-api-types": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.24.0.tgz", - "integrity": "sha512-X0uA2a92cRjowUEXpLZIHWl4jiX1NsUpDhcEOpa1/hpO1vkaokgZ8kkPtPih9hHth5UVQ3mHBu/PpB4qjyfJ4A==", + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.26.1.tgz", + "integrity": "sha512-T5PdMQ+Y1MEECYMV5wmyi9VEYPagEDEi4S0amgsszpWY0VB9JJ/hEvM6BgLhbdnKky4gfmZEXtEEtojN8ZKJQQ==", "engines": { "node": ">=12" } }, "node_modules/discord.js": { - "version": "13.5.0", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.5.0.tgz", - "integrity": "sha512-K+ZcB0f+wA1ZzDhz3hlaAi4Ap7jSvVEUZ+U29T4DMoiNNUv22F4vu1byrOq8GyyLLDFiZ3iSudea0MvSHu3fQA==", + "version": "13.6.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.6.0.tgz", + "integrity": "sha512-tXNR8zgsEPxPBvGk3AQjJ9ljIIC6/LOPjzKwpwz8Y1Q2X66Vi3ZqFgRHYwnHKC0jC0F+l4LzxlhmOJsBZDNg9g==", "dependencies": { "@discordjs/builders": "^0.11.0", "@discordjs/collection": "^0.4.0", @@ -974,14 +898,6 @@ "npm": ">=7.0.0" } }, - "node_modules/discord.js/node_modules/discord-api-types": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.26.1.tgz", - "integrity": "sha512-T5PdMQ+Y1MEECYMV5wmyi9VEYPagEDEi4S0amgsszpWY0VB9JJ/hEvM6BgLhbdnKky4gfmZEXtEEtojN8ZKJQQ==", - "engines": { - "node": ">=12" - } - }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -995,11 +911,11 @@ } }, "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz", + "integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==", "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/end-of-stream": { @@ -1010,18 +926,6 @@ "once": "^1.4.0" } }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -1035,9 +939,9 @@ } }, "node_modules/eslint": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.6.0.tgz", - "integrity": "sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.8.0.tgz", + "integrity": "sha512-H3KXAzQGBH1plhYS3okDix2ZthuYJlQQEGE5k0IKuEqUSiyu4AmxxlJ2MtTYeJ3xB4jDhcYCwGOg2TXYdnDXlQ==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.0.5", @@ -1047,11 +951,10 @@ "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.0", "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.1.0", + "eslint-visitor-keys": "^3.2.0", "espree": "^9.3.0", "esquery": "^1.4.0", "esutils": "^2.0.2", @@ -1060,7 +963,7 @@ "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.6.0", - "ignore": "^4.0.6", + "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", @@ -1071,9 +974,7 @@ "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "progress": "^2.0.0", "regexpp": "^3.2.0", - "semver": "^7.2.1", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0", @@ -1130,9 +1031,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", - "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", + "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1160,15 +1061,6 @@ "node": ">=4.0" } }, - "node_modules/eslint/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/espree": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", @@ -1247,6 +1139,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "optional": true, "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -1269,6 +1162,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "optional": true, "engines": { "node": ">=10" }, @@ -1283,9 +1177,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -1295,7 +1189,7 @@ "micromatch": "^4.0.4" }, "engines": { - "node": ">=8" + "node": ">=8.6.0" } }, "node_modules/fast-glob/node_modules/glob-parent": { @@ -1322,6 +1216,17 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "node_modules/fast-printf": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/fast-printf/-/fast-printf-1.6.9.tgz", + "integrity": "sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==", + "dependencies": { + "boolean": "^3.1.4" + }, + "engines": { + "node": ">=10.0" + } + }, "node_modules/fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -1375,9 +1280,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.14.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz", - "integrity": "sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==", + "version": "1.14.7", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", + "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==", "funding": [ { "type": "individual", @@ -1479,16 +1384,16 @@ } }, "node_modules/globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" }, "engines": { @@ -1552,24 +1457,25 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "optional": true, "engines": { "node": ">=10.17.0" } }, "node_modules/i18n": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.13.4.tgz", - "integrity": "sha512-GZnXWeA15jTi9gc1jfgrJcSrNYDg7qbJXSYMuibqPYb1ThORmGCeM+gL6LrDagYRHh87/q/D0jRSOhAfv6wAow==", + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.14.1.tgz", + "integrity": "sha512-Mu7JS17Fv52jwBJ6q7ssIBlYi+ARkeBTehTV/brlVH0x5u6YzsK8l9fANE8CqUjVBoSEdVa+2vYPB0RF/QF58g==", "dependencies": { + "@messageformat/core": "^3.0.0", "debug": "^4.3.3", + "fast-printf": "^1.6.9", "make-plural": "^7.0.0", "math-interval-parser": "^2.0.1", - "messageformat": "^2.3.0", - "mustache": "^4.2.0", - "sprintf-js": "^1.1.2" + "mustache": "^4.2.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/mashpie" @@ -1657,6 +1563,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "optional": true, "engines": { "node": ">=8" }, @@ -1668,6 +1575,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-unix/-/is-unix-2.0.1.tgz", "integrity": "sha512-RyKp5JtlRnfOvnKtfBMPLw9ocqDe1NlPQ8Bt+geVzKGfMnLGj8z/Y2HOmk/aMf47P4EbrEt9dN6YGTT1fx4mZA==", + "optional": true, "engines": { "node": ">= 12" } @@ -1675,7 +1583,8 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "devOptional": true }, "node_modules/js-yaml": { "version": "4.1.0", @@ -1707,9 +1616,9 @@ "dev": true }, "node_modules/keyv": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.4.tgz", - "integrity": "sha512-vqNHbAc8BBsxk+7QBYLW0Y219rWcClspR6WSeoHYKG5mnsSoOH+BL1pWq02DDCVdvvuUny5rkBlzMRzoqc+GIg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.5.tgz", + "integrity": "sha512-531pkGLqV3BMg0eDqqJFI0R1mkK1Nm5xIP2mM6keP5P8WfFtCkg2IOwplTUmlGoTgIg9yQYZ/kdihhz89XH3vA==", "dependencies": { "json-buffer": "3.0.1" } @@ -1774,7 +1683,8 @@ "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "optional": true }, "node_modules/merge2": { "version": "1.4.1", @@ -1785,38 +1695,6 @@ "node": ">= 8" } }, - "node_modules/messageformat": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/messageformat/-/messageformat-2.3.0.tgz", - "integrity": "sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w==", - "deprecated": "Package renamed as '@messageformat/core', see messageformat.github.io for more details. 'messageformat' will eventually provide a polyfill for Intl.MessageFormat, once it's been defined by Unicode & ECMA.", - "dependencies": { - "make-plural": "^4.3.0", - "messageformat-formatters": "^2.0.1", - "messageformat-parser": "^4.1.2" - } - }, - "node_modules/messageformat-formatters": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz", - "integrity": "sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg==" - }, - "node_modules/messageformat-parser": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/messageformat-parser/-/messageformat-parser-4.1.3.tgz", - "integrity": "sha512-2fU3XDCanRqeOCkn7R5zW5VQHWf+T3hH65SzuqRvjatBK7r4uyFa5mEX+k6F9Bd04LVM5G4/BHBTUJsOdW7uyg==" - }, - "node_modules/messageformat/node_modules/make-plural": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-4.3.0.tgz", - "integrity": "sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA==", - "bin": { - "make-plural": "bin/make-plural" - }, - "optionalDependencies": { - "minimist": "^1.2.0" - } - }, "node_modules/micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", @@ -1853,6 +1731,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "optional": true, "engines": { "node": ">=6" } @@ -1876,16 +1755,11 @@ "node": "*" } }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "optional": true - }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "optional": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -1893,6 +1767,11 @@ "node": ">=10" } }, + "node_modules/moo": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz", + "integrity": "sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==" + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -1923,14 +1802,22 @@ "dev": true }, "node_modules/node-fetch": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", - "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", + "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": { @@ -1948,6 +1835,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "optional": true, "dependencies": { "path-key": "^3.0.0" }, @@ -1975,6 +1863,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "optional": true, "dependencies": { "mimic-fn": "^2.1.0" }, @@ -2039,6 +1928,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "devOptional": true, "engines": { "node": ">=8" } @@ -2053,9 +1943,9 @@ } }, "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { "node": ">=8.6" @@ -2072,6 +1962,24 @@ "node": ">= 6" } }, + "node_modules/play-audio": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/play-audio/-/play-audio-0.4.9.tgz", + "integrity": "sha512-An88OAvbCcFZH00n9eq6+t2LmJUPJgBCz8ycKXdvUWQz3GcZ3U4o1ZsSHfVFIuoiKuovX+ue5gKNcfSs4ophew==", + "optional": true + }, + "node_modules/play-dl": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.8.1.tgz", + "integrity": "sha512-lUoxDJlPmZhcUv0LW1xg/uoQx0uxdGLppSDr8xM/oasfC/FUadA98JQzJMB6stri1ReFF96ftPQP+ZqhpVBVdQ==", + "optional": true, + "dependencies": { + "play-audio": "^0.4.3" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -2106,15 +2014,6 @@ } } }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -2246,6 +2145,11 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/safe-identifier": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", + "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==" + }, "node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -2265,6 +2169,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "devOptional": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -2276,6 +2181,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "devOptional": true, "engines": { "node": ">=8" } @@ -2283,7 +2189,8 @@ "node_modules/signal-exit": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "optional": true }, "node_modules/slash": { "version": "3.0.0", @@ -2302,11 +2209,6 @@ "axios": "^0.21.1" } }, - "node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -2323,6 +2225,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "optional": true, "engines": { "node": ">=6" } @@ -2503,9 +2406,9 @@ } }, "node_modules/typescript": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", - "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", + "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -2548,6 +2451,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "devOptional": true, "dependencies": { "isexe": "^2.0.0" }, @@ -2573,9 +2477,9 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/ws": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.0.tgz", - "integrity": "sha512-IHVsKe2pjajSUIl4KYMQOdlyliovpEPquKkqbwswulszzI7r0SfQrxnXdWAEqOlDCLrVSJzo+O1hAwdog2sKSQ==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz", + "integrity": "sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==", "engines": { "node": ">=10.0.0" }, @@ -2603,6 +2507,7 @@ "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.2.tgz", "integrity": "sha512-sRRjq+eifuqloLMb3OWdpIMZzeYf19iv+4ZFICZYPOeZR2AkawOOve9uCUtmRa1gc6pFBkh4+MMgPiIJUwk+Sg==", "hasInstallScript": true, + "optional": true, "dependencies": { "dargs": "~7.0.0", "execa": "~5.1.0", @@ -2615,9 +2520,9 @@ } }, "node_modules/youtubei": { - "version": "0.0.1-rc.27", - "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.27.tgz", - "integrity": "sha512-4pbKr6F9RpWQ/XLstD9KNTBd5dGkzXNm8sx2ooQFleCka/wknZQhu9HEoGbvJMb4izvfSs2e5TAAK+l6fYwxJQ==" + "version": "0.0.1-rc.28", + "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.28.tgz", + "integrity": "sha512-oWR1hK0C/TN7i34MrMAT/MGfTjP52LYuP13VD2rhxTO6Ia+jRw+bI+/gn65h6qxSxg7QC8LleSiNGWwEWkw4FA==" }, "node_modules/zod": { "version": "3.11.6", @@ -2639,13 +2544,6 @@ "ts-mixer": "^6.0.0", "tslib": "^2.3.1", "zod": "^3.11.6" - }, - "dependencies": { - "discord-api-types": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.26.1.tgz", - "integrity": "sha512-T5PdMQ+Y1MEECYMV5wmyi9VEYPagEDEi4S0amgsszpWY0VB9JJ/hEvM6BgLhbdnKky4gfmZEXtEEtojN8ZKJQQ==" - } } }, "@discordjs/collection": { @@ -2654,16 +2552,16 @@ "integrity": "sha512-zmjq+l/rV35kE6zRrwe8BHqV78JvIh2ybJeZavBi5NySjWXqN3hmmAKg7kYMMXSeiWtSsMoZ/+MQi0DiQWy2lw==" }, "@discordjs/voice": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.7.5.tgz", - "integrity": "sha512-lUk+CmIXNKslT6DkC9IF9rpsqhzlTiedauUCPBzepjd4XWxwBZiyVIzR6QpbAirxkAwCoAbbje+3Ho71PGLEAw==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.8.0.tgz", + "integrity": "sha512-o0JfVLMs3eLjUzPf6oxMydEeum40I7xzfUc66SLN+RrKpSAsTbngf5qnCF53nm+KDNSvrwg1AZqNm4LEAdxJIA==", "requires": { "@types/ws": "^8.2.0", - "discord-api-types": "^0.24.0", + "discord-api-types": "^0.26.1", "prism-media": "^1.3.2", "tiny-typed-emitter": "^2.1.0", "tslib": "^2.3.1", - "ws": "^8.2.3" + "ws": "^8.4.2" } }, "@eslint/eslintrc": { @@ -2708,6 +2606,59 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "@messageformat/core": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.0.0.tgz", + "integrity": "sha512-mzMCyADGweNmnMwV/xjKxtXtkXJNVcK5ATOHx4Q0GVr2Z3++in1VfrB/y6jM43nleK27tFO0Y/9pds5vxWqDvQ==", + "requires": { + "@messageformat/date-skeleton": "^1.0.0", + "@messageformat/number-skeleton": "^1.0.0", + "@messageformat/parser": "^5.0.0", + "@messageformat/runtime": "^3.0.0", + "make-plural": "^6.2.1", + "safe-identifier": "^0.4.1" + }, + "dependencies": { + "make-plural": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-6.2.2.tgz", + "integrity": "sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA==" + } + } + }, + "@messageformat/date-skeleton": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/date-skeleton/-/date-skeleton-1.0.0.tgz", + "integrity": "sha512-vvj5Sd3VyXUHGbYpiFsPsSQ8pkdUM9vrR/NUbyP6ga3UqJH4p9eCwzfwaCAZatZMYMTyiKG/8QbUyGKHeTZ5kw==" + }, + "@messageformat/number-skeleton": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/number-skeleton/-/number-skeleton-1.0.0.tgz", + "integrity": "sha512-Pe1HX/VG0q7tclM/ri85I4FKYd7Uc3gluSZbRaK1+jcXdT9Biw2hLAKyMsiz2tM6zLiK1xX+K0NMDO4RIstQig==" + }, + "@messageformat/parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/parser/-/parser-5.0.0.tgz", + "integrity": "sha512-WiDKhi8F0zQaFU8cXgqq69eYFarCnTVxKcvhAONufKf0oUxbqLMW6JX6rV4Hqh+BEQWGyKKKHY4g1XA6bCLylA==", + "requires": { + "moo": "^0.5.1" + } + }, + "@messageformat/runtime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/runtime/-/runtime-3.0.0.tgz", + "integrity": "sha512-boV0oH8jnJM/qoynQKnIbnKK5M7JPpKM0y9QUB9nQMMt16qSlgi5FfUo8usgoq6wEYqxDmIqtUfBewcj2VP+yQ==", + "requires": { + "make-plural": "^6.2.1" + }, + "dependencies": { + "make-plural": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-6.2.2.tgz", + "integrity": "sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA==" + } + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2740,9 +2691,9 @@ "integrity": "sha512-CbXaGwwlEMq+l1TRu01FJCvySJ1CEFKFclHT48nIfNeZXaAAmmwwy7scUKmYHPUa3GhoMp6Qr1B3eAJux6XgOQ==" }, "@sindresorhus/is": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", - "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.3.0.tgz", + "integrity": "sha512-wwOvh0eO3PiTEivGJWiZ+b946SlMSb4pe+y+Ur/4S87cwo09pYi+FWHHnbrM3W9W7cBYKDqQXcrFYjYUCOJUEQ==" }, "@szmarczak/http-timer": { "version": "4.0.6", @@ -2789,9 +2740,9 @@ } }, "@types/node": { - "version": "17.0.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.8.tgz", - "integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==" + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.15.tgz", + "integrity": "sha512-zWt4SDDv1S9WRBNxLFxFRHxdD9tvH8f5/kg5/IaLFdnSNXsDY4eL3Q3XXN+VxUnWIhyVFDwcsmAprvwXoM/ClA==" }, "@types/node-fetch": { "version": "2.5.12", @@ -2831,179 +2782,108 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.9.0.tgz", - "integrity": "sha512-qT4lr2jysDQBQOPsCCvpPUZHjbABoTJW8V9ZzIYKHMfppJtpdtzszDYsldwhFxlhvrp7aCHeXD1Lb9M1zhwWwQ==", + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.10.2.tgz", + "integrity": "sha512-4W/9lLuE+v27O/oe7hXJKjNtBLnZE8tQAFpapdxwSVHqtmIoPB1gph3+ahNwVuNL37BX7YQHyGF9Xv6XCnIX2Q==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "5.9.0", - "@typescript-eslint/scope-manager": "5.9.0", - "@typescript-eslint/type-utils": "5.9.0", + "@typescript-eslint/scope-manager": "5.10.2", + "@typescript-eslint/type-utils": "5.10.2", + "@typescript-eslint/utils": "5.10.2", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", "regexpp": "^3.2.0", "semver": "^7.3.5", "tsutils": "^3.21.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.9.0.tgz", - "integrity": "sha512-DKtdIL49Qxk2a8icF6whRk7uThuVz4A6TCXfjdJSwOsf+9ree7vgQWcx0KOyCdk0i9ETX666p4aMhrRhxhUkyg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.9.0", - "@typescript-eslint/visitor-keys": "5.9.0" - } - }, - "@typescript-eslint/types": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.0.tgz", - "integrity": "sha512-mWp6/b56Umo1rwyGCk8fPIzb9Migo8YOniBGPAQDNC6C52SeyNGN4gsVwQTAR+RS2L5xyajON4hOLwAGwPtUwg==", - "dev": true - }, - "@typescript-eslint/visitor-keys": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.0.tgz", - "integrity": "sha512-6zq0mb7LV0ThExKlecvpfepiB+XEtFv/bzx7/jKSgyXTFD7qjmSu1FoiS0x3OZaiS+UIXpH2vd9O89f02RCtgw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.9.0", - "eslint-visitor-keys": "^3.0.0" - } - } } }, - "@typescript-eslint/experimental-utils": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.9.0.tgz", - "integrity": "sha512-ZnLVjBrf26dn7ElyaSKa6uDhqwvAi4jBBmHK1VxuFGPRAxhdi18ubQYSGA7SRiFiES3q9JiBOBHEBStOFkwD2g==", + "@typescript-eslint/parser": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.10.2.tgz", + "integrity": "sha512-JaNYGkaQVhP6HNF+lkdOr2cAs2wdSZBoalE22uYWq8IEv/OVH0RksSGydk+sW8cLoSeYmC+OHvRyv2i4AQ7Czg==", "dev": true, "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.9.0", - "@typescript-eslint/types": "5.9.0", - "@typescript-eslint/typescript-estree": "5.9.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.9.0.tgz", - "integrity": "sha512-DKtdIL49Qxk2a8icF6whRk7uThuVz4A6TCXfjdJSwOsf+9ree7vgQWcx0KOyCdk0i9ETX666p4aMhrRhxhUkyg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.9.0", - "@typescript-eslint/visitor-keys": "5.9.0" - } - }, - "@typescript-eslint/types": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.0.tgz", - "integrity": "sha512-mWp6/b56Umo1rwyGCk8fPIzb9Migo8YOniBGPAQDNC6C52SeyNGN4gsVwQTAR+RS2L5xyajON4hOLwAGwPtUwg==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.9.0.tgz", - "integrity": "sha512-kxo3xL2mB7XmiVZcECbaDwYCt3qFXz99tBSuVJR4L/sR7CJ+UNAPrYILILktGj1ppfZ/jNt/cWYbziJUlHl1Pw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.9.0", - "@typescript-eslint/visitor-keys": "5.9.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.0.tgz", - "integrity": "sha512-6zq0mb7LV0ThExKlecvpfepiB+XEtFv/bzx7/jKSgyXTFD7qjmSu1FoiS0x3OZaiS+UIXpH2vd9O89f02RCtgw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.9.0", - "eslint-visitor-keys": "^3.0.0" - } - } + "@typescript-eslint/scope-manager": "5.10.2", + "@typescript-eslint/types": "5.10.2", + "@typescript-eslint/typescript-estree": "5.10.2", + "debug": "^4.3.2" } }, - "@typescript-eslint/parser": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.9.0.tgz", - "integrity": "sha512-/6pOPz8yAxEt4PLzgbFRDpZmHnXCeZgPDrh/1DaVKOjvn/UPMlWhbx/gA96xRi2JxY1kBl2AmwVbyROUqys5xQ==", + "@typescript-eslint/scope-manager": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.10.2.tgz", + "integrity": "sha512-39Tm6f4RoZoVUWBYr3ekS75TYgpr5Y+X0xLZxXqcZNDWZdJdYbKd3q2IR4V9y5NxxiPu/jxJ8XP7EgHiEQtFnw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.9.0", - "@typescript-eslint/types": "5.9.0", - "@typescript-eslint/typescript-estree": "5.9.0", - "debug": "^4.3.2" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.9.0.tgz", - "integrity": "sha512-DKtdIL49Qxk2a8icF6whRk7uThuVz4A6TCXfjdJSwOsf+9ree7vgQWcx0KOyCdk0i9ETX666p4aMhrRhxhUkyg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.9.0", - "@typescript-eslint/visitor-keys": "5.9.0" - } - }, - "@typescript-eslint/types": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.0.tgz", - "integrity": "sha512-mWp6/b56Umo1rwyGCk8fPIzb9Migo8YOniBGPAQDNC6C52SeyNGN4gsVwQTAR+RS2L5xyajON4hOLwAGwPtUwg==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.9.0.tgz", - "integrity": "sha512-kxo3xL2mB7XmiVZcECbaDwYCt3qFXz99tBSuVJR4L/sR7CJ+UNAPrYILILktGj1ppfZ/jNt/cWYbziJUlHl1Pw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.9.0", - "@typescript-eslint/visitor-keys": "5.9.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.0.tgz", - "integrity": "sha512-6zq0mb7LV0ThExKlecvpfepiB+XEtFv/bzx7/jKSgyXTFD7qjmSu1FoiS0x3OZaiS+UIXpH2vd9O89f02RCtgw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.9.0", - "eslint-visitor-keys": "^3.0.0" - } - } + "@typescript-eslint/types": "5.10.2", + "@typescript-eslint/visitor-keys": "5.10.2" } }, "@typescript-eslint/type-utils": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.9.0.tgz", - "integrity": "sha512-uVCb9dJXpBrK1071ri5aEW7ZHdDHAiqEjYznF3HSSvAJXyrkxGOw2Ejibz/q6BXdT8lea8CMI0CzKNFTNI6TEQ==", + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.10.2.tgz", + "integrity": "sha512-uRKSvw/Ccs5FYEoXW04Z5VfzF2iiZcx8Fu7DGIB7RHozuP0VbKNzP1KfZkHBTM75pCpsWxIthEH1B33dmGBKHw==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "5.9.0", + "@typescript-eslint/utils": "5.10.2", "debug": "^4.3.2", "tsutils": "^3.21.0" } }, + "@typescript-eslint/types": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.10.2.tgz", + "integrity": "sha512-Qfp0qk/5j2Rz3p3/WhWgu4S1JtMcPgFLnmAKAW061uXxKSa7VWKZsDXVaMXh2N60CX9h6YLaBoy9PJAfCOjk3w==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.10.2.tgz", + "integrity": "sha512-WHHw6a9vvZls6JkTgGljwCsMkv8wu8XU8WaYKeYhxhWXH/atZeiMW6uDFPLZOvzNOGmuSMvHtZKd6AuC8PrwKQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.10.2", + "@typescript-eslint/visitor-keys": "5.10.2", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.10.2.tgz", + "integrity": "sha512-vuJaBeig1NnBRkf7q9tgMLREiYD7zsMrsN1DA3wcoMDvr3BTFiIpKjGiYZoKPllfEwN7spUjv7ZqD+JhbVjEPg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.10.2", + "@typescript-eslint/types": "5.10.2", + "@typescript-eslint/typescript-estree": "5.10.2", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.10.2.tgz", + "integrity": "sha512-zHIhYGGGrFJvvyfwHk5M08C5B5K4bewkm+rrvNTKk1/S15YHR+SA/QUF8ZWscXSfEaB8Nn2puZj+iHcoxVOD/Q==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.10.2", + "eslint-visitor-keys": "^3.0.0" + } + }, "@zhycorp/eslint-config": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@zhycorp/eslint-config/-/eslint-config-6.0.2.tgz", - "integrity": "sha512-V0jtxese5hixzzz5UTA+hl/uKzYbkdc/EcGVc3RD2WipiayuPVgt+zTjNlQxS+xE4vUeHqLEFGIA+dBTD+1z+g==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@zhycorp/eslint-config/-/eslint-config-7.1.0.tgz", + "integrity": "sha512-KtiTkDduw8l0ctbEp+bzXISLyRmiGvCblgl7lhW0L0pjw2kXmKar03cVH+v8ULLICw6vTSCn6k0O3jp+8zgwbg==", "dev": true, - "requires": {} + "requires": { + "strip-json-comments": "^3.1.1" + } }, "acorn": { "version": "8.7.0", @@ -3030,12 +2910,6 @@ "uri-js": "^4.2.2" } }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -3086,6 +2960,11 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "boolean": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz", + "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==" + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3184,6 +3063,7 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "devOptional": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -3193,7 +3073,8 @@ "dargs": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==" + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "optional": true }, "date-fns": { "version": "2.28.0", @@ -3249,14 +3130,14 @@ } }, "discord-api-types": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.24.0.tgz", - "integrity": "sha512-X0uA2a92cRjowUEXpLZIHWl4jiX1NsUpDhcEOpa1/hpO1vkaokgZ8kkPtPih9hHth5UVQ3mHBu/PpB4qjyfJ4A==" + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.26.1.tgz", + "integrity": "sha512-T5PdMQ+Y1MEECYMV5wmyi9VEYPagEDEi4S0amgsszpWY0VB9JJ/hEvM6BgLhbdnKky4gfmZEXtEEtojN8ZKJQQ==" }, "discord.js": { - "version": "13.5.0", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.5.0.tgz", - "integrity": "sha512-K+ZcB0f+wA1ZzDhz3hlaAi4Ap7jSvVEUZ+U29T4DMoiNNUv22F4vu1byrOq8GyyLLDFiZ3iSudea0MvSHu3fQA==", + "version": "13.6.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.6.0.tgz", + "integrity": "sha512-tXNR8zgsEPxPBvGk3AQjJ9ljIIC6/LOPjzKwpwz8Y1Q2X66Vi3ZqFgRHYwnHKC0jC0F+l4LzxlhmOJsBZDNg9g==", "requires": { "@discordjs/builders": "^0.11.0", "@discordjs/collection": "^0.4.0", @@ -3267,13 +3148,6 @@ "form-data": "^4.0.0", "node-fetch": "^2.6.1", "ws": "^8.4.0" - }, - "dependencies": { - "discord-api-types": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.26.1.tgz", - "integrity": "sha512-T5PdMQ+Y1MEECYMV5wmyi9VEYPagEDEi4S0amgsszpWY0VB9JJ/hEvM6BgLhbdnKky4gfmZEXtEEtojN8ZKJQQ==" - } } }, "doctrine": { @@ -3286,9 +3160,9 @@ } }, "dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz", + "integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==" }, "end-of-stream": { "version": "1.4.4", @@ -3298,15 +3172,6 @@ "once": "^1.4.0" } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -3314,9 +3179,9 @@ "dev": true }, "eslint": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.6.0.tgz", - "integrity": "sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.8.0.tgz", + "integrity": "sha512-H3KXAzQGBH1plhYS3okDix2ZthuYJlQQEGE5k0IKuEqUSiyu4AmxxlJ2MtTYeJ3xB4jDhcYCwGOg2TXYdnDXlQ==", "dev": true, "requires": { "@eslint/eslintrc": "^1.0.5", @@ -3326,11 +3191,10 @@ "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.0", "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.1.0", + "eslint-visitor-keys": "^3.2.0", "espree": "^9.3.0", "esquery": "^1.4.0", "esutils": "^2.0.2", @@ -3339,7 +3203,7 @@ "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.6.0", - "ignore": "^4.0.6", + "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", @@ -3350,9 +3214,7 @@ "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "progress": "^2.0.0", "regexpp": "^3.2.0", - "semver": "^7.2.1", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0", @@ -3374,12 +3236,6 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true } } }, @@ -3411,9 +3267,9 @@ } }, "eslint-visitor-keys": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", - "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", + "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", "dev": true }, "espree": { @@ -3477,6 +3333,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "optional": true, "requires": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -3492,7 +3349,8 @@ "get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "optional": true } } }, @@ -3503,9 +3361,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -3538,6 +3396,14 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fast-printf": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/fast-printf/-/fast-printf-1.6.9.tgz", + "integrity": "sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==", + "requires": { + "boolean": "^3.1.4" + } + }, "fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -3582,9 +3448,9 @@ "dev": true }, "follow-redirects": { - "version": "1.14.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz", - "integrity": "sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==" + "version": "1.14.7", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", + "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==" }, "form-data": { "version": "4.0.0", @@ -3648,16 +3514,16 @@ } }, "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" } }, @@ -3702,19 +3568,20 @@ "human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "optional": true }, "i18n": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.13.4.tgz", - "integrity": "sha512-GZnXWeA15jTi9gc1jfgrJcSrNYDg7qbJXSYMuibqPYb1ThORmGCeM+gL6LrDagYRHh87/q/D0jRSOhAfv6wAow==", + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.14.1.tgz", + "integrity": "sha512-Mu7JS17Fv52jwBJ6q7ssIBlYi+ARkeBTehTV/brlVH0x5u6YzsK8l9fANE8CqUjVBoSEdVa+2vYPB0RF/QF58g==", "requires": { + "@messageformat/core": "^3.0.0", "debug": "^4.3.3", + "fast-printf": "^1.6.9", "make-plural": "^7.0.0", "math-interval-parser": "^2.0.1", - "messageformat": "^2.3.0", - "mustache": "^4.2.0", - "sprintf-js": "^1.1.2" + "mustache": "^4.2.0" } }, "ignore": { @@ -3777,17 +3644,20 @@ "is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "optional": true }, "is-unix": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-unix/-/is-unix-2.0.1.tgz", - "integrity": "sha512-RyKp5JtlRnfOvnKtfBMPLw9ocqDe1NlPQ8Bt+geVzKGfMnLGj8z/Y2HOmk/aMf47P4EbrEt9dN6YGTT1fx4mZA==" + "integrity": "sha512-RyKp5JtlRnfOvnKtfBMPLw9ocqDe1NlPQ8Bt+geVzKGfMnLGj8z/Y2HOmk/aMf47P4EbrEt9dN6YGTT1fx4mZA==", + "optional": true }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "devOptional": true }, "js-yaml": { "version": "4.1.0", @@ -3816,9 +3686,9 @@ "dev": true }, "keyv": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.4.tgz", - "integrity": "sha512-vqNHbAc8BBsxk+7QBYLW0Y219rWcClspR6WSeoHYKG5mnsSoOH+BL1pWq02DDCVdvvuUny5rkBlzMRzoqc+GIg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.5.tgz", + "integrity": "sha512-531pkGLqV3BMg0eDqqJFI0R1mkK1Nm5xIP2mM6keP5P8WfFtCkg2IOwplTUmlGoTgIg9yQYZ/kdihhz89XH3vA==", "requires": { "json-buffer": "3.0.1" } @@ -3871,7 +3741,8 @@ "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "optional": true }, "merge2": { "version": "1.4.1", @@ -3879,36 +3750,6 @@ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true }, - "messageformat": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/messageformat/-/messageformat-2.3.0.tgz", - "integrity": "sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w==", - "requires": { - "make-plural": "^4.3.0", - "messageformat-formatters": "^2.0.1", - "messageformat-parser": "^4.1.2" - }, - "dependencies": { - "make-plural": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-4.3.0.tgz", - "integrity": "sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA==", - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "messageformat-formatters": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz", - "integrity": "sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg==" - }, - "messageformat-parser": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/messageformat-parser/-/messageformat-parser-4.1.3.tgz", - "integrity": "sha512-2fU3XDCanRqeOCkn7R5zW5VQHWf+T3hH65SzuqRvjatBK7r4uyFa5mEX+k6F9Bd04LVM5G4/BHBTUJsOdW7uyg==" - }, "micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", @@ -3935,7 +3776,8 @@ "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "optional": true }, "mimic-response": { "version": "1.0.1", @@ -3950,16 +3792,16 @@ "brace-expansion": "^1.1.7" } }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "optional": true - }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "optional": true + }, + "moo": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz", + "integrity": "sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==" }, "ms": { "version": "2.1.2", @@ -3988,9 +3830,9 @@ "dev": true }, "node-fetch": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", - "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", + "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" } @@ -4004,6 +3846,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "optional": true, "requires": { "path-key": "^3.0.0" } @@ -4025,6 +3868,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "optional": true, "requires": { "mimic-fn": "^2.1.0" } @@ -4070,7 +3914,8 @@ "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "devOptional": true }, "path-type": { "version": "4.0.0", @@ -4079,9 +3924,9 @@ "dev": true }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pirates": { @@ -4089,6 +3934,21 @@ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.4.tgz", "integrity": "sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw==" }, + "play-audio": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/play-audio/-/play-audio-0.4.9.tgz", + "integrity": "sha512-An88OAvbCcFZH00n9eq6+t2LmJUPJgBCz8ycKXdvUWQz3GcZ3U4o1ZsSHfVFIuoiKuovX+ue5gKNcfSs4ophew==", + "optional": true + }, + "play-dl": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.8.1.tgz", + "integrity": "sha512-lUoxDJlPmZhcUv0LW1xg/uoQx0uxdGLppSDr8xM/oasfC/FUadA98JQzJMB6stri1ReFF96ftPQP+ZqhpVBVdQ==", + "optional": true, + "requires": { + "play-audio": "^0.4.3" + } + }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -4101,12 +3961,6 @@ "integrity": "sha512-L6UsGHcT6i4wrQhFF1aPK+MNYgjRqR2tUoIqEY+CG1NqVkMjPRKzS37j9f8GiYPlD6wG9ruBj+q5Ax+bH8Ik1g==", "requires": {} }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -4182,6 +4036,11 @@ "queue-microtask": "^1.2.2" } }, + "safe-identifier": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", + "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==" + }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -4195,6 +4054,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "devOptional": true, "requires": { "shebang-regex": "^3.0.0" } @@ -4202,12 +4062,14 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "devOptional": true }, "signal-exit": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "optional": true }, "slash": { "version": "3.0.0", @@ -4223,11 +4085,6 @@ "axios": "^0.21.1" } }, - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -4240,7 +4097,8 @@ "strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "optional": true }, "strip-json-comments": { "version": "3.1.1", @@ -4379,9 +4237,9 @@ "dev": true }, "typescript": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", - "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", + "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", "dev": true }, "uri-js": { @@ -4417,6 +4275,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "devOptional": true, "requires": { "isexe": "^2.0.0" } @@ -4433,9 +4292,9 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.0.tgz", - "integrity": "sha512-IHVsKe2pjajSUIl4KYMQOdlyliovpEPquKkqbwswulszzI7r0SfQrxnXdWAEqOlDCLrVSJzo+O1hAwdog2sKSQ==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz", + "integrity": "sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==", "requires": {} }, "yallist": { @@ -4448,6 +4307,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.2.tgz", "integrity": "sha512-sRRjq+eifuqloLMb3OWdpIMZzeYf19iv+4ZFICZYPOeZR2AkawOOve9uCUtmRa1gc6pFBkh4+MMgPiIJUwk+Sg==", + "optional": true, "requires": { "dargs": "~7.0.0", "execa": "~5.1.0", @@ -4457,9 +4317,9 @@ } }, "youtubei": { - "version": "0.0.1-rc.27", - "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.27.tgz", - "integrity": "sha512-4pbKr6F9RpWQ/XLstD9KNTBd5dGkzXNm8sx2ooQFleCka/wknZQhu9HEoGbvJMb4izvfSs2e5TAAK+l6fYwxJQ==" + "version": "0.0.1-rc.28", + "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.28.tgz", + "integrity": "sha512-oWR1hK0C/TN7i34MrMAT/MGfTjP52LYuP13VD2rhxTO6Ia+jRw+bI+/gn65h6qxSxg7QC8LleSiNGWwEWkw4FA==" }, "zod": { "version": "3.11.6", diff --git a/package.json b/package.json index f4b33359a..a4322eb3d 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { - "name": "disc-11", - "version": "2.3.0", + "name": "rawon", + "version": "2.4.0", "private": true, - "description": "A dedicated open-source Discord bot for Zhycorp based from our Discord bot template with more features. Easy to use, and with no coding required.", - "repository": "https://github.com/zhycorp/disc-11", + "description": "A dedicated open-sourced Discord bot with many features of utilization. Easy to use, and with no coding required.", + "repository": "https://github.com/mzrtamp/rawon", "license": "BSD-3-Clause", - "author": "Zhycorp ", + "author": "mzrtamp ", "main": "index.js", "scripts": { "build": "npm run lint && npm run compile", @@ -13,40 +13,46 @@ "tscompile": "tsc --build tsconfig.json", "lint": "eslint . --ext .ts", "lint:fix": "eslint . --ext .ts --fix", - "start": "node ." + "start": "node -r dotenv/config ." }, "eslintConfig": { "parserOptions": { "project": "./tsconfig.json" }, - "extends": "@zhycorp/eslint-config/typescript" + "extends": "@zhycorp/eslint-config/typescript", + "rules": { + "@typescript-eslint/no-extra-parens": "off" + } }, "dependencies": { - "@discordjs/voice": "^0.7.5", + "@discordjs/voice": "^0.8.0", "date-fns": "^2.28.0", - "discord.js": "^13.5.0", - "dotenv": "^10.0.0", + "discord.js": "^13.6.0", + "dotenv": "^16.0.0", "got": "^11.8.3", - "i18n": "0.13.4", + "i18n": "0.14.1", "opusscript": "^0.0.8", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.1", "sucrase": "^3.20.3", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", - "youtube-dl-exec": "^2.0.2", - "youtubei": "^0.0.1-rc.23" + "youtubei": "^0.0.1-rc.28" }, "devDependencies": { "@types/i18n": "^0.13.2", - "@types/node": "^17.0.8", - "@typescript-eslint/eslint-plugin": "^5.9.0", - "@typescript-eslint/parser": "^5.9.0", - "@zhycorp/eslint-config": "^6.0.2", - "eslint": "^8.5.0", - "typescript": "^4.5.4" + "@types/node": "^17.0.15", + "@typescript-eslint/eslint-plugin": "^5.10.2", + "@typescript-eslint/parser": "^5.10.2", + "@zhycorp/eslint-config": "^7.1.0", + "eslint": "^8.8.0", + "typescript": "^4.5.5" }, "engines": { "node": ">=16.6.0" + }, + "optionalDependencies": { + "play-dl": "^1.8.1", + "youtube-dl-exec": "^2.0.2" } } diff --git a/src/bot.ts b/src/bot.ts index c77e5f847..74e79f54d 100644 --- a/src/bot.ts +++ b/src/bot.ts @@ -1,8 +1,8 @@ import { NoStackError } from "./utils/NoStackError"; import { clientOptions } from "./config"; -import { Disc } from "./structures/Disc"; +import { Rawon } from "./structures/Rawon"; -const client = new Disc(clientOptions); +const client = new Rawon(clientOptions); process.on("exit", code => { client.logger.info(`NodeJS process exited with code ${code}`); @@ -15,7 +15,7 @@ process.on("uncaughtException", err => { process.on("unhandledRejection", reason => { client.logger.error("UNHANDLED_REJECTION:", (reason as Error).stack ? reason : new NoStackError(reason as string)); }); -process.on("warning", client.logger.warn); +process.on("warning", (...args) => client.logger.warn(...args)); client.build() .catch(e => client.logger.error("PROMISE_ERR:", e)); diff --git a/src/commands/developers/EvalCommand.ts b/src/commands/developers/EvalCommand.ts index a1f7f7c41..b5379b8cf 100644 --- a/src/commands/developers/EvalCommand.ts +++ b/src/commands/developers/EvalCommand.ts @@ -18,7 +18,7 @@ export class EvalCommand extends BaseCommand { }); } - public async execute(ctx: CommandContext): Promise { + public async execute(ctx: CommandContext): Promise { const msg = ctx; const client = this.client; @@ -27,7 +27,7 @@ export class EvalCommand extends BaseCommand { try { let code = ctx.args.join(" "); - if (!code) return ctx.send({ embeds: [createEmbed("error", i18n.__("commands.developers.eval.noCode"), true)] }); + if (!code) return await ctx.send({ embeds: [createEmbed("error", i18n.__("commands.developers.eval.noCode"), true)] }); let evaled; if (code.includes("--silent") && code.includes("--async")) { code = code.replace("--async", "").replace("--silent", ""); @@ -75,10 +75,11 @@ export class EvalCommand extends BaseCommand { reference: ctx.author.id }, embeds: [embed] - }).catch(e => this.client.logger.error("PROMISE_ERR:", e)); + }).catch(er => this.client.logger.error("PROMISE_ERR:", er)); } } + // eslint-disable-next-line class-methods-use-this private clean(text: string): string { if (typeof text === "string") { return text @@ -90,10 +91,10 @@ export class EvalCommand extends BaseCommand { } private async hastebin(text: string): Promise { - const result = await this.client.request.post("https://bin.zhycorp.net/documents", { + const result = await this.client.request.post("https://bin.tiramitzu.me/documents", { body: text }).json<{ key: string }>(); - return `https://bin.zhycorp.net/${result.key}`; + return `https://bin.tiramitzu.me/${result.key}`; } } diff --git a/src/commands/general/AboutCommand.ts b/src/commands/general/AboutCommand.ts index f208df705..b39b05cd7 100644 --- a/src/commands/general/AboutCommand.ts +++ b/src/commands/general/AboutCommand.ts @@ -3,6 +3,7 @@ import { version as BotVersion } from "../../../package.json"; import { BaseCommand } from "../../structures/BaseCommand"; import { createEmbed } from "../../utils/createEmbed"; import { formatMS } from "../../utils/formatMS"; +import { createTable } from "../../utils/functions/createTable"; import i18n from "../../config"; import { version as DJSVersion } from "discord.js"; import { uptime } from "os"; @@ -31,13 +32,9 @@ export class AboutCommand extends BaseCommand { [i18n.__("commands.general.about.ffmpegVersionString"), this.client.utils.getFFmpegVersion()], [i18n.__("commands.general.about.botVersionString"), BotVersion], [""], - [i18n.__("commands.general.about.sourceCodeString"), "https://github.com/zhycorp/disc-11"] + [i18n.__("commands.general.about.sourceCodeString"), "https://github.com/mzrtamp/rawon"] ]; - const value = values.map(x => `${x.map((y, i) => { - const sortingArr = [...values]; - - return `${y}${" ".repeat(sortingArr.sort((a, b) => (b[i] ?? "").length - (a[i] ?? "").length)[0][i].length - y.length)}`; - }).join(" :: ")}`).join("\n"); + const value = createTable(values); void ctx.reply({ embeds: [ @@ -47,7 +44,7 @@ ${value} \`\`\` `) .setAuthor({ - name: i18n.__mf("commands.general.about.aboutFooter", { botname: this.client.user?.username as string }) + name: i18n.__mf("commands.general.about.aboutFooter", { botname: this.client.user?.username ?? "Unknown" }) }) ] }).catch(e => this.client.logger.error("ABOUT_CMD_ERR:", e)); diff --git a/src/commands/general/HelpCommand.ts b/src/commands/general/HelpCommand.ts index 0f41a22be..00cd25b1b 100644 --- a/src/commands/general/HelpCommand.ts +++ b/src/commands/general/HelpCommand.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/no-unnecessary-condition */ +/* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain, @typescript-eslint/no-unnecessary-condition */ import { CommandContext } from "../../structures/CommandContext"; import { BaseCommand } from "../../structures/BaseCommand"; import { createEmbed } from "../../utils/createEmbed"; @@ -9,15 +9,15 @@ export class HelpCommand extends BaseCommand { private readonly listEmbed = createEmbed("info") .setAuthor({ name: i18n.__mf("commands.general.help.authorString", { username: this.client.user!.username }), - iconURL: this.client.user?.displayAvatarURL() as string + iconURL: this.client.user?.displayAvatarURL()! }) .setFooter({ text: i18n.__mf("commands.general.help.footerString", { prefix: this.client.config.mainPrefix }), - iconURL: "https://raw.githubusercontent.com/zhycorp/disc-11/main/.github/images/info.png" + iconURL: "https://raw.githubusercontent.com/mzrtamp/rawon/main/.github/images/info.png" }); private readonly infoEmbed = createEmbed("info") - .setThumbnail("https://raw.githubusercontent.com/zhycorp/disc-11/main/.github/images/question_mark.png"); + .setThumbnail("https://raw.githubusercontent.com/mzrtamp/rawon/main/.github/images/question_mark.png"); public constructor(client: BaseCommand["client"]) { super(client, { @@ -37,10 +37,10 @@ export class HelpCommand extends BaseCommand { }); } - public async execute(ctx: CommandContext): Promise { + public async execute(ctx: CommandContext): Promise { if (ctx.isInteraction() && !ctx.deferred) await ctx.deferReply(); this.infoEmbed.fields = []; - const val = ctx.args[0] ?? ctx.options?.getString("command") ?? (ctx.additionalArgs.get("values") ? ctx.additionalArgs.get("values")[0] : null); + const val = ctx.args[0] ?? ctx.options?.getString("command") ?? (ctx.additionalArgs.get("values") ? (ctx.additionalArgs.get("values") as string[])[0] : null); const command = this.client.commands.get(val) ?? this.client.commands.get(this.client.commands.aliases.get(val)!); if (!val) { const embed = this.listEmbed @@ -53,9 +53,10 @@ export class HelpCommand extends BaseCommand { if (category.hide && !isDev) continue; embed.addField(`**${category.name}**`, cmds.join(", ")); } - return ctx.send({ embeds: [embed] }, "editReply").catch(e => { + ctx.send({ embeds: [embed] }, "editReply").catch(e => { this.client.logger.error("PROMISE_ERR:", e); }); + return; } if (!command) { const matching = this.generateSelectMenu(val, ctx.author.id); @@ -83,7 +84,7 @@ export class HelpCommand extends BaseCommand { } // Disable selection menu if (ctx.isSelectMenu()) { - const channel = await ctx.channel; + const channel = ctx.channel; const msg = await channel!.messages.fetch((ctx.context as SelectMenuInteraction).message.id).catch(() => undefined); if (msg !== undefined) { const selection = msg.components[0].components.find(x => x.type === "SELECT_MENU"); @@ -97,15 +98,15 @@ export class HelpCommand extends BaseCommand { this.infoEmbed .setAuthor({ name: i18n.__mf("commands.general.help.commandDetailTitle", { username: this.client.user!.username, command: command.meta.name }), - iconURL: this.client.user?.displayAvatarURL() as string + iconURL: this.client.user?.displayAvatarURL()! }) .addField(i18n.__("commands.general.help.nameString"), `**\`${command.meta.name}\`**`, false) .addField(i18n.__("commands.general.help.descriptionString"), `${command.meta.description!}`, true) - .addField(i18n.__("commands.general.help.aliasesString"), Number(command.meta.aliases?.length) > 0 ? command.meta.aliases?.map(c => `**\`${c}\`**`).join(", ") as string : "None.", false) + .addField(i18n.__("commands.general.help.aliasesString"), Number(command.meta.aliases?.length) > 0 ? command.meta.aliases?.map(c => `**\`${c}\`**`).join(", ")! : "None.", false) .addField(i18n.__("commands.general.help.usageString"), `**\`${command.meta.usage!.replace(/{prefix}/g, this.client.config.mainPrefix)}\`**`, true) .setFooter({ text: i18n.__mf("commands.general.help.commandUsageFooter", { devOnly: command.meta.devOnly ? "(developer-only command)" : "" }), - iconURL: "https://raw.githubusercontent.com/zhycorp/disc-11/main/.github/images/info.png" + iconURL: "https://raw.githubusercontent.com/mzrtamp/rawon/.github/images/info.png" }) ] }, "editReply"); diff --git a/src/commands/general/InviteCommand.ts b/src/commands/general/InviteCommand.ts index 198a9470d..e49e61826 100644 --- a/src/commands/general/InviteCommand.ts +++ b/src/commands/general/InviteCommand.ts @@ -18,7 +18,7 @@ export class InviteCommand extends BaseCommand { } public async execute(ctx: CommandContext): Promise { - const invite = await this.client.generateInvite({ + const invite = this.client.generateInvite({ permissions: [ Permissions.FLAGS.VIEW_CHANNEL, Permissions.FLAGS.SEND_MESSAGES, diff --git a/src/commands/general/PingCommand.ts b/src/commands/general/PingCommand.ts index 1401e1032..1b466ad0a 100644 --- a/src/commands/general/PingCommand.ts +++ b/src/commands/general/PingCommand.ts @@ -51,7 +51,8 @@ export class PingCommand extends BaseCommand { msg.edit({ content: " ", embeds: [embed] }).catch(e => this.client.logger.error("PROMISE_ERR:", e)); } - private searchHex(ms: string | number): ColorResolvable { + // eslint-disable-next-line class-methods-use-this + private searchHex(ms: number | string): ColorResolvable { const listColorHex = [ [0, 20, "GREEN"], [21, 50, "GREEN"], @@ -65,7 +66,7 @@ export class PingCommand extends BaseCommand { const min = listColorHex.map(e => e[0]); const max = listColorHex.map(e => e[1]); const hex = listColorHex.map(e => e[2]); - let ret: string | number = "#000000"; + let ret: number | string = "#000000"; for (let i = 0; i < listColorHex.length; i++) { if (min[i] <= ms && ms <= max[i]) { diff --git a/src/commands/moderation/BanCommand.ts b/src/commands/moderation/BanCommand.ts index abb755af3..04dac4387 100644 --- a/src/commands/moderation/BanCommand.ts +++ b/src/commands/moderation/BanCommand.ts @@ -61,7 +61,7 @@ export class BanCommand extends BaseCommand { const ban = await ctx.guild.members.ban(user, { reason - }).catch(err => new Error(err as string|undefined)); + }).catch(err => new Error(err as string | undefined)); if (ban instanceof Error) return ctx.reply({ embeds: [createEmbed("error", i18n.__mf("commands.moderation.ban.banFail", { message: ban.message }), true)] }); return ctx.reply({ embeds: [createEmbed("success", i18n.__mf("commands.moderation.ban.banSuccess", { user: user.tag }), true)] }); diff --git a/src/commands/moderation/KickCommand.ts b/src/commands/moderation/KickCommand.ts index 10c1399c4..8d0111bba 100644 --- a/src/commands/moderation/KickCommand.ts +++ b/src/commands/moderation/KickCommand.ts @@ -56,7 +56,7 @@ export class KickCommand extends BaseCommand { }); } - const kick = await member.kick(reason).catch(err => new Error(err as string|undefined)); + const kick = await member.kick(reason).catch(err => new Error(err as string | undefined)); if (kick instanceof Error) return ctx.reply({ embeds: [createEmbed("error", i18n.__mf("commands.moderation.kick.kickFail", { message: kick.message }), true)] }); return ctx.reply({ embeds: [createEmbed("success", i18n.__mf("commands.moderation.kick.kickSuccess", { user: member.user.tag }), true)] }); diff --git a/src/commands/moderation/MuteCommand.ts b/src/commands/moderation/MuteCommand.ts index 28d018b5f..62f34c4c7 100644 --- a/src/commands/moderation/MuteCommand.ts +++ b/src/commands/moderation/MuteCommand.ts @@ -61,7 +61,7 @@ export class MuteCommand extends BaseCommand { }); } - const mute = await member.roles.add(muteRole, reason).catch(err => new Error(err as string|undefined)); + const mute = await member.roles.add(muteRole, reason).catch(err => new Error(err as string | undefined)); if (mute instanceof Error) return ctx.reply({ embeds: [createEmbed("error", i18n.__mf("commands.moderation.mute.muteFail", { message: mute.message }), true)] }); return ctx.reply({ embeds: [createEmbed("success", i18n.__mf("commands.moderation.mute.muteSuccess", { user: member.user.tag }), true)] }); diff --git a/src/commands/moderation/PurgeCommand.ts b/src/commands/moderation/PurgeCommand.ts index 173909d46..a3365d531 100644 --- a/src/commands/moderation/PurgeCommand.ts +++ b/src/commands/moderation/PurgeCommand.ts @@ -23,7 +23,7 @@ export class PurgeCommand extends BaseCommand { }); } - public async execute(ctx: CommandContext): Promise { + public async execute(ctx: CommandContext): Promise { if (!ctx.member?.permissions.has("MANAGE_MESSAGES")) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.moderation.purge.userNoPermission"), true)] }); if (!ctx.guild?.me?.permissions.has("MANAGE_MESSAGES")) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.moderation.purge.botNoPermission"), true)] }); @@ -31,7 +31,7 @@ export class PurgeCommand extends BaseCommand { if (isNaN(amount)) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.purge.invalidAmount"))] }); const purge = await (ctx.channel as TextChannel).bulkDelete(amount + 1, true) - .catch(err => new Error(err as string|undefined)); + .catch(err => new Error(err as string | undefined)); if (purge instanceof Error) return ctx.reply({ embeds: [createEmbed("warn", i18n.__mf("commands.moderation.purge.purgeFail", { message: purge.message }), true)] }); return ctx.reply({ embeds: [createEmbed("success", `🧹 **|** ${i18n.__mf("commands.moderation.purge.purgeSuccess", { amount: purge.size })}`)] }); diff --git a/src/commands/moderation/UnBanCommand.ts b/src/commands/moderation/UnBanCommand.ts index e4159b343..d9b324acc 100644 --- a/src/commands/moderation/UnBanCommand.ts +++ b/src/commands/moderation/UnBanCommand.ts @@ -35,13 +35,13 @@ export class UnBanCommand extends BaseCommand { const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? ctx.options?.getUser("user")?.id ?? ctx.options?.getString("memberid"); const user = await this.client.users.fetch(memberId!, { force: false }).catch(() => undefined); - const resolved = ctx.guild.bans.resolve(user?.id as string); + const resolved = ctx.guild.bans.resolve(user?.id ?? ""); if (!user) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified"))] }); if (!resolved) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.unban.alreadyUnban"))] }); const unban = await ctx.guild.bans.remove(user.id, ctx.options?.getString("reason") ?? (ctx.args.length ? ctx.args.join(" ") : i18n.__("commands.moderation.common.noReasonString"))) - .catch(err => new Error(err as string|undefined)); + .catch(err => new Error(err as string | undefined)); if (unban instanceof Error) return ctx.reply({ embeds: [createEmbed("error", i18n.__mf("commands.moderation.unban.unbanFail", { message: unban.message }), true)] }); return ctx.reply({ embeds: [createEmbed("success", i18n.__mf("commands.moderation.unban.ubanSuccess", { user: user.tag }), true)] }); diff --git a/src/commands/moderation/UnMuteCommand.ts b/src/commands/moderation/UnMuteCommand.ts index 2b527ec88..4daf97421 100644 --- a/src/commands/moderation/UnMuteCommand.ts +++ b/src/commands/moderation/UnMuteCommand.ts @@ -59,7 +59,7 @@ export class UnMuteCommand extends BaseCommand { }); } - const unmute = await member.roles.remove(muteRole, reason).catch(err => new Error(err as string|undefined)); + const unmute = await member.roles.remove(muteRole, reason).catch(err => new Error(err as string | undefined)); if (unmute instanceof Error) return ctx.reply({ embeds: [createEmbed("error", i18n.__mf("commands.moderation.unmute.unmuteFail", { message: unmute.message }), true)] }); return ctx.reply({ embeds: [createEmbed("success", i18n.__mf("commands.moderation.unmute.unmuteSuccess", { user: member.user.tag }), true)] }); diff --git a/src/commands/moderation/WarnCommand.ts b/src/commands/moderation/WarnCommand.ts index cb3178191..8da6c2f68 100644 --- a/src/commands/moderation/WarnCommand.ts +++ b/src/commands/moderation/WarnCommand.ts @@ -32,7 +32,7 @@ export class WarnCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise { if (!ctx.member?.permissions.has("MANAGE_GUILD")) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.moderation.warn.userNoPermission"), true)] }); - const member = ctx.guild?.members.resolve(ctx.args.shift()?.replace(/[^0-9]/g, "") as string)?.user ?? ctx.options?.getUser("member", true); + const member = ctx.guild?.members.resolve(ctx.args.shift()?.replace(/[^0-9]/g, "") ?? "")?.user ?? ctx.options?.getUser("member", true); if (!member) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified"))] }); const dm = await member.createDM().catch(() => undefined); diff --git a/src/commands/music/LyricsCommand.ts b/src/commands/music/LyricsCommand.ts index 8b9d7f809..99e645d4a 100644 --- a/src/commands/music/LyricsCommand.ts +++ b/src/commands/music/LyricsCommand.ts @@ -28,32 +28,33 @@ export class LyricsCommand extends BaseCommand { }); } - public execute(ctx: CommandContext): Promise { - const query = ctx.args.length >= 1 ? ctx.args.join(" ") : ctx.options?.getString("query") ? ctx.options.getString("query") : ((((ctx.guild?.queue?.player?.state as AudioPlayerPlayingState).resource as AudioResource | undefined)?.metadata as IQueueSong | undefined)?.song.title); + public execute(ctx: CommandContext): Promise | undefined { + // eslint-disable-next-line no-nested-ternary + const query = ctx.args.length >= 1 ? ctx.args.join(" ") : ctx.options?.getString("query") ? ctx.options.getString("query") : (((ctx.guild?.queue?.player?.state as AudioPlayerPlayingState).resource as AudioResource | undefined)?.metadata as IQueueSong | undefined)?.song.title; if (!query) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.lyrics.noQuery"), true)] }); - return this.getLyrics(ctx, query); + this.getLyrics(ctx, query); } - private async getLyrics(ctx: CommandContext, song: string): Promise { + private getLyrics(ctx: CommandContext, song: string): void { const url = `https://api.lxndr.dev/lyrics/?song=${encodeURI(song)}&from=${encodeURI(this.client.user!.id)}`; this.client.request.get(url).json>() .then(async data => { if ((data as { error: boolean }).error) { - return ctx.reply({ embeds: [createEmbed("error", i18n.__mf("commands.music.lyrics.apiError", { song: `\`${song}\``, message: `\`${(data as {message?: string}).message!}\`` }), true)] }); + return ctx.reply({ embeds: [createEmbed("error", i18n.__mf("commands.music.lyrics.apiError", { song: `\`${song}\``, message: `\`${(data as { message?: string }).message!}\`` }), true)] }); } - const albumArt = data.album_art ?? "https://api.zhycorp.net/assets/images/icon.png"; - const pages: string[] = chunk(data.lyrics as string, 2048); + const albumArt = data.album_art ?? "https://api.tiramitzu.me/assets/images/icon.png"; + const pages: string[] = chunk(data.lyrics!, 2048); const embed = createEmbed("info", pages[0]).setAuthor({ name: data.song && data.artist ? `${data.song} - ${data.artist}` : song.toUpperCase() }).setThumbnail(albumArt); const msg = await ctx.reply({ embeds: [embed] }); - return (new ButtonPagination(msg, { + return new ButtonPagination(msg, { author: ctx.author.id, edit: (i, e, p) => e.setDescription(p).setFooter({ text: i18n.__mf("reusable.pageFooter", { actual: i + 1, total: pages.length }) }), embed, pages - })).start(); + }).start(); }) .catch(error => console.error(error)); } diff --git a/src/commands/music/NowPlayingCommand.ts b/src/commands/music/NowPlayingCommand.ts index f30f2fcea..b9b3a1ea3 100644 --- a/src/commands/music/NowPlayingCommand.ts +++ b/src/commands/music/NowPlayingCommand.ts @@ -24,9 +24,11 @@ export class NowPlayingCommand extends BaseCommand { if (!haveQueue(ctx)) return; function getEmbed(): MessageEmbed { - const song = ((ctx.guild?.queue?.player?.state as (AudioPlayerState & { resource: AudioResource|undefined })|undefined)?.resource?.metadata as IQueueSong|undefined)?.song; + const song = ((ctx.guild?.queue?.player?.state as (AudioPlayerState & { + resource: AudioResource | undefined; + }) | undefined)?.resource?.metadata as IQueueSong | undefined)?.song; - return createEmbed("info", `${ctx.guild?.queue?.playing ? "▶" : "⏸"} **|** ${song ? `**[${song.title}](${song.url})**` : i18n.__("commands.music.nowplaying.emptyQueue")}`).setThumbnail(song?.thumbnail ?? "https://api.zhycorp.net/assets/images/icon.png"); + return createEmbed("info", `${ctx.guild?.queue?.playing ? "▶" : "⏸"} **|** ${song ? `**[${song.title}](${song.url})**` : i18n.__("commands.music.nowplaying.emptyQueue")}`).setThumbnail(song?.thumbnail ?? "https://api.tiramitzu.me/assets/images/icon.png"); } const buttons = new MessageActionRow() @@ -55,7 +57,7 @@ export class NowPlayingCommand extends BaseCommand { const msg = await ctx.reply({ embeds: [getEmbed()], components: [buttons] }); const collector = msg.createMessageComponentCollector({ - filter: i => i.isButton() && (i.user.id === ctx.author.id), + filter: i => i.isButton() && i.user.id === ctx.author.id, idle: 30000 }); diff --git a/src/commands/music/PauseCommand.ts b/src/commands/music/PauseCommand.ts index 32f9d8256..79c5735e9 100644 --- a/src/commands/music/PauseCommand.ts +++ b/src/commands/music/PauseCommand.ts @@ -17,7 +17,7 @@ export class PauseCommand extends BaseCommand { }); } - public execute(ctx: CommandContext): Promise|void { + public execute(ctx: CommandContext): Promise | undefined { if (!inVC(ctx)) return; if (!haveQueue(ctx)) return; if (!sameVC(ctx)) return; diff --git a/src/commands/music/PlayCommand.ts b/src/commands/music/PlayCommand.ts index 387a09d1b..b294ee6a7 100644 --- a/src/commands/music/PlayCommand.ts +++ b/src/commands/music/PlayCommand.ts @@ -28,7 +28,7 @@ export class PlayCommand extends BaseCommand { }); } - public async execute(ctx: CommandContext): Promise { + public async execute(ctx: CommandContext): Promise { if (!inVC(ctx)) return; if (!validVC(ctx)) return; if (!sameVC(ctx)) return; @@ -45,6 +45,7 @@ export class PlayCommand extends BaseCommand { } return handleVideos(this.client, ctx, toQueue, voiceChannel); } + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access const query = (ctx.args.join(" ") || ctx.options?.getString("query")) ?? (ctx.additionalArgs.get("values") ? ctx.additionalArgs.get("values")[0] : undefined) as string | undefined; if (!query) { @@ -53,15 +54,16 @@ export class PlayCommand extends BaseCommand { }); } + // eslint-disable-next-line prefer-named-capture-group const url = query.replace(/<(.+)>/g, "$1"); if (ctx.guild?.queue && voiceChannel.id !== ctx.guild.queue.connection?.joinConfig.channelId) { - return ctx.reply({ embeds: [createEmbed("warn", i18n.__mf("commands.music.play.alreadyPlaying", { voiceChannel: ctx.guild.channels.cache.get(ctx.guild.queue.connection?.joinConfig.channelId as string)?.name ?? "#unknown-channel" }))] }); + return ctx.reply({ embeds: [createEmbed("warn", i18n.__mf("commands.music.play.alreadyPlaying", { voiceChannel: ctx.guild.channels.cache.get((ctx.guild.queue.connection?.joinConfig as { channelId: string }).channelId)?.name ?? "#unknown-channel" }))] }); } const queryCheck = checkQuery(url); const songs = await searchTrack(this.client, url).catch(() => undefined); - if (!songs || (songs.items.length <= 0)) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.play.noSongData"), true)] }); + if (!songs || songs.items.length <= 0) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.play.noSongData"), true)] }); return handleVideos(this.client, ctx, queryCheck.type === "playlist" ? songs.items : [songs.items[0]], voiceChannel); } diff --git a/src/commands/music/QueueCommand.ts b/src/commands/music/QueueCommand.ts index 2175a5f54..310dcadf4 100644 --- a/src/commands/music/QueueCommand.ts +++ b/src/commands/music/QueueCommand.ts @@ -40,11 +40,11 @@ export class QueueCommand extends BaseCommand { const embed = createEmbed("info", pages[0]); const msg = await ctx.reply({ embeds: [embed] }); - return (new ButtonPagination(msg, { + return new ButtonPagination(msg, { author: ctx.author.id, edit: (i, e, p) => e.setDescription(p).setFooter({ text: i18n.__mf("reusable.pageFooter", { actual: i + 1, total: pages.length }) }), embed, pages - })).start(); + }).start(); } } diff --git a/src/commands/music/RemoveCommand.ts b/src/commands/music/RemoveCommand.ts index 8b4ca9f7e..bdcffb52f 100644 --- a/src/commands/music/RemoveCommand.ts +++ b/src/commands/music/RemoveCommand.ts @@ -52,8 +52,8 @@ export class RemoveCommand extends BaseCommand { ctx.guild!.queue!.songs.delete(song.key); } - const np = (ctx.guild?.queue?.player?.state as (AudioPlayerState & { resource: AudioResource|undefined })|undefined)?.resource?.metadata as IQueueSong|undefined; - const isSkip = songs.map(x => x.key).includes(np?.key as string); + const np = (ctx.guild?.queue?.player?.state as (AudioPlayerState & { resource: AudioResource | undefined }) | undefined)?.resource?.metadata as IQueueSong | undefined; + const isSkip = songs.map(x => x.key).includes(np?.key ?? ""); if (isSkip) { this.client.commands.get("skip")?.execute(ctx); } diff --git a/src/commands/music/RepeatCommand.ts b/src/commands/music/RepeatCommand.ts index 81c93fa0f..950ecbe8a 100644 --- a/src/commands/music/RepeatCommand.ts +++ b/src/commands/music/RepeatCommand.ts @@ -35,7 +35,7 @@ export class RepeatCommand extends BaseCommand { }); } - public execute(ctx: CommandContext): Promise|void { + public execute(ctx: CommandContext): Promise | undefined { if (!inVC(ctx)) return; if (!haveQueue(ctx)) return; if (!sameVC(ctx)) return; @@ -54,7 +54,10 @@ export class RepeatCommand extends BaseCommand { emoji: "🔂" } }; - const selection = ctx.options?.getSubcommand() || ctx.args[0] ? Object.keys(mode).find(key => mode[key as LoopMode].aliases.includes(ctx.args[0] ?? ctx.options!.getSubcommand())) : undefined; + const selection = ctx.options?.getSubcommand() || + ctx.args[0] + ? Object.keys(mode).find(key => mode[key as LoopMode].aliases.includes(ctx.args[0] ?? ctx.options!.getSubcommand())) + : undefined; if (!selection) return ctx.reply({ embeds: [createEmbed("info", `${mode[ctx.guild!.queue!.loopMode].emoji} **|** ${i18n.__mf("commands.music.repeat.actualMode", { mode: `\`${ctx.guild!.queue!.loopMode}\`` })}`)] }); ctx.guild!.queue!.loopMode = selection as LoopMode; diff --git a/src/commands/music/ResumeCommand.ts b/src/commands/music/ResumeCommand.ts index 148d7283e..1fb3c41db 100644 --- a/src/commands/music/ResumeCommand.ts +++ b/src/commands/music/ResumeCommand.ts @@ -17,7 +17,7 @@ export class ResumeCommand extends BaseCommand { }); } - public execute(ctx: CommandContext): Promise|void { + public execute(ctx: CommandContext): Promise | undefined { if (!inVC(ctx)) return; if (!haveQueue(ctx)) return; if (!sameVC(ctx)) return; diff --git a/src/commands/music/SearchCommand.ts b/src/commands/music/SearchCommand.ts index 63e194d1a..eb6001875 100644 --- a/src/commands/music/SearchCommand.ts +++ b/src/commands/music/SearchCommand.ts @@ -45,7 +45,7 @@ export class SearchCommand extends BaseCommand { }); } - public async execute(ctx: CommandContext): Promise { + public async execute(ctx: CommandContext): Promise { if (!inVC(ctx)) return; if (!validVC(ctx)) return; if (!sameVC(ctx)) return; @@ -67,7 +67,7 @@ export class SearchCommand extends BaseCommand { return; } const source = ctx.options?.getString("source") ?? (["youtube", "soundcloud"].includes(ctx.args.slice(-1)[0]?.toLowerCase()) ? ctx.args.pop()! : "youtube"); - const query = (ctx.args.join(" ") || ctx.options?.getString("query")) ?? (ctx.options as CommandInteractionOptionResolver<"present">|null)?.getMessage("message")?.content; + const query = (ctx.args.join(" ") || ctx.options?.getString("query")) ?? (ctx.options as CommandInteractionOptionResolver<"present"> | null)?.getMessage("message")?.content; if (!query) { return ctx.send({ @@ -81,8 +81,8 @@ export class SearchCommand extends BaseCommand { return this.client.commands.get("play")!.execute(newCtx); } - const tracks = await searchTrack(this.client, query, source as "youtube" | "soundcloud").then(x => ({ items: x.items.slice(0, 10), type: x.type })).catch(() => undefined); - if (!tracks || (tracks.items.length <= 0)) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.search.noTracks"), true)] }); + const tracks = await searchTrack(this.client, query, source as "soundcloud" | "youtube").then(x => ({ items: x.items.slice(0, 10), type: x.type })).catch(() => undefined); + if (!tracks || tracks.items.length <= 0) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.search.noTracks"), true)] }); if (this.client.config.musicSelectionType === "selectmenu") { return ctx.send({ content: i18n.__("commands.music.search.interactionContent"), @@ -102,7 +102,7 @@ export class SearchCommand extends BaseCommand { const msg = await ctx.send({ embeds: [ - createEmbed("info", `${i18n.__mf("commands.music.search.queueEmbed", { separator: `\`,\``, example: `\`1, 2, 3\`` })}\`\`\`\n${tracks.items.map((x, i) => `${i + 1} - ${Util.escapeMarkdown(parseHTMLElements(x.title))}`).join("\n")}\`\`\``) + createEmbed("info", `${i18n.__mf("commands.music.search.queueEmbed", { separator: "`,`", example: "`1, 2, 3`" })}\`\`\`\n${tracks.items.map((x, i) => `${i + 1} - ${Util.escapeMarkdown(parseHTMLElements(x.title))}`).join("\n")}\`\`\``) .setAuthor({ name: i18n.__("commands.music.search.trackSelectionMessage"), iconURL: this.client.user?.displayAvatarURL() }) .setFooter({ text: i18n.__mf("commands.music.search.cancelMessage", { cancel: "cancel", c: "c" }) }) ] @@ -112,7 +112,7 @@ export class SearchCommand extends BaseCommand { filter: m => { const nums = m.content.split(/, /).filter(x => Number(x) > 0 && Number(x) <= tracks.items.length); - return (m.author.id === ctx.author.id) && (["c", "cancel"].includes(m.content.toLowerCase()) || (nums.length >= 1)); + return m.author.id === ctx.author.id && (["c", "cancel"].includes(m.content.toLowerCase()) || nums.length >= 1); }, max: 1 }).catch(() => undefined); @@ -120,7 +120,7 @@ export class SearchCommand extends BaseCommand { msg.delete().catch(err => this.client.logger.error("SEARCH_SELECTION_DELETE_MSG_ERR:", err)); return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.search.noSelection"), true)] }); } - if (["c", "cancel"].includes(respond.first()?.content.toLowerCase() as string)) { + if (["c", "cancel"].includes(respond.first()?.content.toLowerCase() ?? "")) { msg.delete().catch(err => this.client.logger.error("SEARCH_SELECTION_DELETE_MSG_ERR:", err)); return ctx.reply({ embeds: [createEmbed("info", i18n.__("commands.music.search.canceledMessage"), true)] }); } @@ -137,6 +137,7 @@ export class SearchCommand extends BaseCommand { this.client.commands.get("play")!.execute(newCtx); } + // eslint-disable-next-line class-methods-use-this private generateSelectMenu(tracks: ISong[]): MessageSelectOptionData[] { const emojis = ["1️⃣", "2️⃣", "3️⃣", "4️⃣", "5️⃣", "6️⃣", "7️⃣", "8️⃣", "9️⃣", "🔟"]; diff --git a/src/commands/music/ShuffleCommand.ts b/src/commands/music/ShuffleCommand.ts index 6ff3b121a..e82c51144 100644 --- a/src/commands/music/ShuffleCommand.ts +++ b/src/commands/music/ShuffleCommand.ts @@ -43,7 +43,7 @@ export class ShuffleCommand extends BaseCommand { return; } - ctx.guild!.queue!.shuffle = (newState === "enable"); + ctx.guild!.queue!.shuffle = newState === "enable"; const isShuffle = ctx.guild?.queue?.shuffle; void ctx.reply({ embeds: [createEmbed("success", `${isShuffle ? "🔀" : "▶"} **|** ${i18n.__mf("commands.music.shuffle.newState", { state: `\`${isShuffle ? "ENABLED" : "DISABLED"}\`` })}`)] }); diff --git a/src/commands/music/SkipCommand.ts b/src/commands/music/SkipCommand.ts index e98d1349c..7f9709c49 100644 --- a/src/commands/music/SkipCommand.ts +++ b/src/commands/music/SkipCommand.ts @@ -32,20 +32,28 @@ export class SkipCommand extends BaseCommand { const song = (ctx.guild!.queue!.player!.state as AudioPlayerPlayingState).resource.metadata as IQueueSong; function ableToSkip(member: GuildMember): boolean { - return member.roles.cache.has(djRole?.id as string) || member.permissions.has("MANAGE_GUILD") || (song.requester.id === member.id); + return member.roles.cache.has(djRole?.id ?? "") || member.permissions.has("MANAGE_GUILD") || song.requester.id === member.id; } if (!ableToSkip(ctx.member!)) { const required = this.client.utils.requiredVoters(ctx.guild!.me!.voice.channel!.members.size); if (ctx.guild?.queue?.skipVoters.includes(ctx.author.id)) { - this.manager.add(() => ctx.guild!.queue!.skipVoters = ctx.guild!.queue!.skipVoters.filter(x => x !== ctx.author.id)); + this.manager.add(() => { + ctx.guild!.queue!.skipVoters = ctx.guild!.queue!.skipVoters.filter(x => x !== ctx.author.id); + + return undefined; + }); await ctx.reply(i18n.__mf("commands.music.skip.voteResultMessage", { length: ctx.guild.queue.skipVoters.length, required })); return; } - this.manager.add(() => ctx.guild?.queue?.skipVoters.push(ctx.author.id)); + this.manager.add(() => { + ctx.guild?.queue?.skipVoters.push(ctx.author.id); + + return undefined; + }); const length = ctx.guild!.queue!.skipVoters.length; await ctx.reply(i18n.__mf("commands.music.skip.voteResultMessage", { length, required })); diff --git a/src/commands/music/SkipToCommand.ts b/src/commands/music/SkipToCommand.ts index d1ddbab66..94c9ded0d 100644 --- a/src/commands/music/SkipToCommand.ts +++ b/src/commands/music/SkipToCommand.ts @@ -45,7 +45,7 @@ export class SkipToCommand extends BaseCommand { }); } - public async execute(ctx: CommandContext): Promise { + public async execute(ctx: CommandContext): Promise { if (!inVC(ctx)) return; if (!haveQueue(ctx)) return; if (!sameVC(ctx)) return; diff --git a/src/commands/music/StayInQueueCommand.ts b/src/commands/music/StayInQueueCommand.ts index e7e31c4ec..0deb988e6 100644 --- a/src/commands/music/StayInQueueCommand.ts +++ b/src/commands/music/StayInQueueCommand.ts @@ -35,7 +35,7 @@ export class StayInQueueCommand extends BaseCommand { }); } - public execute(ctx: CommandContext): Promise|void { + public execute(ctx: CommandContext): Promise | undefined { if (!inVC(ctx)) return; if (!haveQueue(ctx)) return; if (!sameVC(ctx)) return; @@ -45,7 +45,7 @@ export class StayInQueueCommand extends BaseCommand { if (!newState) return ctx.reply({ embeds: [createEmbed("info", i18n.__mf("commands.music.stayInQueue.actualState", { state: `\`${ctx.guild?.queue?.stayInVC ? "ENABLED" : "DISABLED"}\`` }))] }); - ctx.guild!.queue!.stayInVC = (newState === "enable"); + ctx.guild!.queue!.stayInVC = newState === "enable"; return ctx.reply({ embeds: [createEmbed("success", i18n.__mf("commands.music.stayInQueue.newState", { state: `\`${ctx.guild?.queue?.stayInVC ? "ENABLED" : "DISABLED"}\`` }), true)] }); } diff --git a/src/commands/music/VolumeCommand.ts b/src/commands/music/VolumeCommand.ts index 3969a7f75..aa5e1fbe8 100644 --- a/src/commands/music/VolumeCommand.ts +++ b/src/commands/music/VolumeCommand.ts @@ -26,7 +26,7 @@ export class VolumeCommand extends BaseCommand { }); } - public execute(ctx: CommandContext): Promise|void { + public execute(ctx: CommandContext): Promise | undefined { if (!inVC(ctx)) return; if (!validVC(ctx)) return; if (!sameVC(ctx)) return; @@ -36,7 +36,7 @@ export class VolumeCommand extends BaseCommand { if (isNaN(volume)) return ctx.reply({ embeds: [createEmbed("info", `🔊 **|** ${i18n.__mf("commands.music.volume.currentVolume", { volume: `\`${resVolume.volume * 100}\`` })}`).setFooter({ text: i18n.__("commands.music.volume.changeVolume") })] }); if (volume <= 0) return ctx.reply({ embeds: [createEmbed("warn", i18n.__mf("commands.music.volume.plsPause", { volume: `\`${volume}\`` }))] }); - if (volume > 100) return ctx.reply({ embeds: [createEmbed("error", i18n.__mf("commands.music.volume.volumeLimit", { maxVol: `\`100\`` }), true)] }); + if (volume > 100) return ctx.reply({ embeds: [createEmbed("error", i18n.__mf("commands.music.volume.volumeLimit", { maxVol: "`100`" }), true)] }); resVolume.setVolume(volume / 100); return ctx.reply({ embeds: [createEmbed("success", `🔊 **|** ${i18n.__mf("commands.music.volume.newVolume", { volume })}`)] }); diff --git a/src/config.ts b/src/config.ts index 9d49f3b52..bd0b2d17b 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,5 +1,5 @@ import { IpresenceData } from "./typings"; -import { ActivityType, ClientOptions, ClientPresenceStatus, Intents, LimitedCollection, Options, ShardingManagerMode } from "discord.js"; +import { ActivityType, ClientOptions, ClientPresenceStatus, Intents, Options, ShardingManagerMode, Sweepers } from "discord.js"; import { join } from "path"; import i18n from "i18n"; @@ -10,14 +10,14 @@ export const clientOptions: ClientOptions = { MessageManager: { maxSize: Infinity, sweepInterval: 300, - sweepFilter: LimitedCollection.filterByLifetime({ + sweepFilter: Sweepers.filterByLifetime({ lifetime: 10800 }) }, ThreadManager: { maxSize: Infinity, sweepInterval: 300, - sweepFilter: LimitedCollection.filterByLifetime({ + sweepFilter: Sweepers.filterByLifetime({ lifetime: 10800, getComparisonTimestamp: e => e.archiveTimestamp!, excludeFromSweep: e => !e.archived @@ -28,22 +28,23 @@ export const clientOptions: ClientOptions = { }; export const shardsCount: number | "auto" = "auto"; export const shardingMode: ShardingManagerMode = "worker"; -export const embedColor = process.env.EMBED_COLOR?.toUpperCase() as string || "3CAAFF"; -export const lang = process.env.LOCALE?.toLowerCase() as string || "en"; +export const embedColor = (process.env.EMBED_COLOR?.toUpperCase() ?? "") || "3CAAFF"; +export const lang = (process.env.LOCALE?.toLowerCase() ?? "") || "en"; export const owners: string[] = JSON.parse(process.env.OWNERS ?? "[]"); export const devGuild = JSON.parse(process.env.DEV_GUILD ?? "[]"); export const isDev = process.env.NODE_ENV?.toLowerCase() === "development"; export const isProd = !isDev; -export const mainPrefix = isDev ? "d!" : (process.env.MAIN_PREFIX as string || "!"); -export const altPrefixes: string[] = (JSON.parse(process.env.ALT_PREFIX as string || "[\"{mention}\"]") as string[]).filter((x, i, a) => (a.indexOf(x) === i) && x !== mainPrefix); +export const mainPrefix = isDev ? "d!" : process.env.MAIN_PREFIX! || "!"; +export const altPrefixes: string[] = (JSON.parse(process.env.ALT_PREFIX! || "[\"{mention}\"]") as string[]).filter((x, i, a) => a.indexOf(x) === i && x !== mainPrefix); export const enableSlashCommand = process.env.ENABLE_SLASH_COMMAND?.toLowerCase() !== "no"; -export const musicSelectionType = process.env.MUSIC_SELECTION_TYPE?.toLowerCase() as string || "message"; +export const musicSelectionType = (process.env.MUSIC_SELECTION_TYPE?.toLowerCase() ?? "") || "message"; export const is247Allowed = process.env.ENABLE_24_7_COMMAND?.toLowerCase() === "yes"; export const stayInVCAfterFinished = process.env.STAY_IN_VC_AFTER_FINISHED?.toLowerCase() === "yes"; export const djRoleName = process.env.DJ_ROLE_NAME! || "DJ"; export const muteRoleName = process.env.MUTE_ROLE_NAME! || "Muted"; export const yesEmoji = process.env.YES_EMOJI! || "✅"; export const noEmoji = process.env.NO_EMOJI! || "❌"; +export const streamStrategy = process.env.STREAM_STRATEGY! || "youtube-dl"; export const presenceData: IpresenceData = { activities: (JSON.parse(process.env.ACTIVITIES! || "[]") as string[]).map((x, i) => ({ diff --git a/src/events/ChannelUpdateEvent.ts b/src/events/ChannelUpdateEvent.ts index 9be927b87..d3b8238a1 100644 --- a/src/events/ChannelUpdateEvent.ts +++ b/src/events/ChannelUpdateEvent.ts @@ -10,7 +10,7 @@ export class ChannelUpdateEvent extends BaseEvent { } public async execute(oldChannel: GuildChannel, newChannel: GuildChannel): Promise { - if (!newChannel.guild.queue || (newChannel.id !== newChannel.guild.queue.connection?.joinConfig.channelId) || (oldChannel.type !== "GUILD_VOICE" && oldChannel.type !== "GUILD_STAGE_VOICE") || (newChannel.type !== "GUILD_VOICE" && newChannel.type !== "GUILD_STAGE_VOICE")) return; + if (!newChannel.guild.queue || newChannel.id !== newChannel.guild.queue.connection?.joinConfig.channelId || (oldChannel.type !== "GUILD_VOICE" && oldChannel.type !== "GUILD_STAGE_VOICE") || (newChannel.type !== "GUILD_VOICE" && newChannel.type !== "GUILD_STAGE_VOICE")) return; if ((oldChannel as VoiceChannel).rtcRegion !== (newChannel as VoiceChannel).rtcRegion) { const queue = newChannel.guild.queue; diff --git a/src/events/InteractionCreateEvent.ts b/src/events/InteractionCreateEvent.ts index cc71d3c5a..8aa6c1e09 100644 --- a/src/events/InteractionCreateEvent.ts +++ b/src/events/InteractionCreateEvent.ts @@ -16,7 +16,7 @@ export class InteractionCreateEvent extends BaseEvent { const user = val.split("_")[0] ?? ""; const cmd = val.split("_")[1] ?? ""; if (cmd === "delete-msg") { - if (interaction.user.id !== user && !new Permissions(interaction.member.permissions as BitFieldResolvable|undefined).has("MANAGE_MESSAGES")) { + if (interaction.user.id !== user && !new Permissions(interaction.member.permissions as BitFieldResolvable | undefined).has("MANAGE_MESSAGES")) { void interaction.reply({ ephemeral: true, embeds: [ @@ -34,7 +34,7 @@ export class InteractionCreateEvent extends BaseEvent { const context = new CommandContext(interaction); if (interaction.isContextMenu()) { const data = interaction.options.getUser("user") ?? interaction.options.getMessage("message"); - const cmd = this.client.commands.find(x => (data as any).type === "MESSAGE" ? x.meta.contextChat === interaction.commandName : x.meta.contextUser === interaction.commandName); + const cmd = this.client.commands.find(x => (data as { type: string }).type === "MESSAGE" ? x.meta.contextChat === interaction.commandName : x.meta.contextUser === interaction.commandName); if (cmd) { context.additionalArgs.set("options", data); void cmd.execute(context); diff --git a/src/events/MessageCreateEvent.ts b/src/events/MessageCreateEvent.ts index eee790daa..baf34aa52 100644 --- a/src/events/MessageCreateEvent.ts +++ b/src/events/MessageCreateEvent.ts @@ -8,7 +8,7 @@ export class MessageCreateEvent extends BaseEvent { super(client, "messageCreate"); } - public async execute(message: Message): Promise { + public execute(message: Message): Message | undefined { if (message.author.bot || message.channel.type === "DM" || !this.client.commands.isReady) return message; if (this.getUserFromMention(message.content)?.id === this.client.user?.id) { @@ -17,7 +17,8 @@ export class MessageCreateEvent extends BaseEvent { const pref = this.client.config.altPrefixes.concat(this.client.config.mainPrefix).find(p => { if (p === "{mention}") { - const userMention = /<@(!)?\d*?>/.exec(message.content); + // eslint-disable-next-line prefer-named-capture-group + const userMention = (/<@(!)?\d*?>/).exec(message.content); if (userMention?.index !== 0) return false; const user = this.getUserFromMention(userMention[0]); @@ -27,11 +28,14 @@ export class MessageCreateEvent extends BaseEvent { return message.content.startsWith(p); }); - if (pref) return this.client.commands.handle(message, pref); + if (pref) { + this.client.commands.handle(message, pref); + } } private getUserFromMention(mention: string): User | undefined { - const matches = /^<@!?(\d+)>$/.exec(mention); + // eslint-disable-next-line prefer-named-capture-group + const matches = (/^<@!?(\d+)>$/).exec(mention); if (!matches) return undefined; const id = matches[1]; diff --git a/src/events/ReadyEvent.ts b/src/events/ReadyEvent.ts index 769fc37b5..706846b21 100644 --- a/src/events/ReadyEvent.ts +++ b/src/events/ReadyEvent.ts @@ -40,23 +40,25 @@ export class ReadyEvent extends BaseEvent { return newText .replace(/{prefix}/g, this.client.config.mainPrefix) - .replace(/{username}/g, this.client.user?.username as string); + .replace(/{username}/g, this.client.user!.username); } private async setPresence(random: boolean): Promise { const activityNumber = random ? Math.floor(Math.random() * this.client.config.presenceData.activities.length) : 0; const statusNumber = random ? Math.floor(Math.random() * this.client.config.presenceData.status.length) : 0; - const activity = (await Promise.all(this.client.config.presenceData.activities.map(async a => Object.assign(a, { name: await this.formatString(a.name) }))))[activityNumber]; + const activity = (await Promise.all( + this.client.config.presenceData.activities.map(async a => Object.assign(a, { name: await this.formatString(a.name) })) + ))[activityNumber]; return this.client.user!.setPresence({ - activities: (activity as { name: string }|undefined) ? [activity] : [], + activities: (activity as { name: string } | undefined) ? [activity] : [], status: this.client.config.presenceData.status[statusNumber] }); } private async doPresence(): Promise { try { - return this.setPresence(false); + return await this.setPresence(false); } catch (e) { if ((e as Error).message !== "Shards are still being spawned.") this.client.logger.error(String(e)); return undefined; diff --git a/src/events/VoiceStateUpdateEvent.ts b/src/events/VoiceStateUpdateEvent.ts index e0041d1b5..a3fa1e346 100644 --- a/src/events/VoiceStateUpdateEvent.ts +++ b/src/events/VoiceStateUpdateEvent.ts @@ -12,7 +12,7 @@ export class VoiceStateUpdateEvent extends BaseEvent { super(client, "voiceStateUpdate"); } - public async execute(oldState: VoiceState, newState: VoiceState): Promise { + public async execute(oldState: VoiceState, newState: VoiceState): Promise { const queue = newState.guild.queue; if (!queue) return; @@ -20,7 +20,7 @@ export class VoiceStateUpdateEvent extends BaseEvent { const oldVC = oldState.channel; const newID = newVC?.id; const oldID = oldVC?.id; - const queueVC = newState.guild.channels.cache.get(queue.connection!.joinConfig.channelId!)! as VoiceChannel | StageChannel; + const queueVC = newState.guild.channels.cache.get(queue.connection!.joinConfig.channelId!)! as StageChannel | VoiceChannel; const member = newState.member; const oldMember = oldState.member; const newVCMembers = newVC?.members.filter(m => !m.user.bot); @@ -50,7 +50,7 @@ export class VoiceStateUpdateEvent extends BaseEvent { try { await entersState(queue.connection!, VoiceConnectionStatus.Ready, 20000); void msg.edit({ embeds: [createEmbed("success", i18n.__("events.voiceStateUpdate.connectionReconfigured"), true)] }); - } catch (err) { + } catch { queue.destroy(); this.client.logger.info(`${this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : ""} Unable to re-configure networking on ${newState.guild.name} voice channel, the queue was deleted.`); void msg.edit({ embeds: [createEmbed("error", i18n.__("events.voiceStateUpdate.unableReconfigureConnection"), true)] }); @@ -61,13 +61,14 @@ export class VoiceStateUpdateEvent extends BaseEvent { const msg = await queue.textChannel.send({ embeds: [createEmbed("info", i18n.__("events.voiceStateUpdate.joiningAsSpeaker"))] }); const suppress = await newState.setSuppressed(false).catch(err => ({ error: err })); - if (suppress && ("error" in suppress)) { + if (suppress && "error" in suppress) { queue.destroy(); this.client.logger.info(`${this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : ""} Unable to join as Speaker at ${newState.guild.name} stage channel, the queue was deleted.`); - return queue.textChannel.send({ embeds: [createEmbed("error", i18n.__("events.voiceStateUpdate.unableJoinStageMessage"), true)] }) + void queue.textChannel.send({ embeds: [createEmbed("error", i18n.__("events.voiceStateUpdate.unableJoinStageMessage"), true)] }) .catch(e => { this.client.logger.error("VOICE_STATE_UPDATE_EVENT_ERR:", e); }); + return; } await msg.edit({ embeds: [createEmbed("success", i18n.__("events.voiceStateUpdate.joinStageMessage"), true)] }); @@ -87,6 +88,7 @@ export class VoiceStateUpdateEvent extends BaseEvent { if (newID === queueVC.id && !member?.user.bot && queue.timeout) this.resume(queueVCMembers, queue, newState); } + // eslint-disable-next-line class-methods-use-this private timeout(vcMembers: VoiceChannel["members"], queue: ServerQueue, state: VoiceState): void { if (vcMembers.size !== 0) return; @@ -106,6 +108,7 @@ export class VoiceStateUpdateEvent extends BaseEvent { .then(msg => queue.lastVSUpdateMsg = msg.id); } + // eslint-disable-next-line class-methods-use-this private resume(vcMembers: VoiceChannel["members"], queue: ServerQueue, state: VoiceState): void { if (vcMembers.size <= 0) return; diff --git a/src/index.ts b/src/index.ts index fc72840f5..df8fc7d19 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,10 +1,10 @@ import "dotenv/config"; import { isProd, shardingMode, shardsCount } from "./config"; -import { DiscLogger } from "./utils/DiscLogger"; +import { RawonLogger } from "./utils/RawonLogger"; import { ShardingManager } from "discord.js"; import { resolve } from "path"; -const log = new DiscLogger({ prod: isProd }); +const log = new RawonLogger({ prod: isProd }); const manager = new ShardingManager(resolve(__dirname, "bot.js"), { totalShards: shardsCount, diff --git a/src/structures/BaseCommand.ts b/src/structures/BaseCommand.ts index 20cc0ca50..1788f388a 100644 --- a/src/structures/BaseCommand.ts +++ b/src/structures/BaseCommand.ts @@ -1,11 +1,11 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ import { CommandContext } from "./CommandContext"; import { ICommandComponent } from "../typings"; -import { Disc } from "./Disc"; +import { Rawon } from "./Rawon"; import { CommandInteraction, Message, SelectMenuInteraction } from "discord.js"; export abstract class BaseCommand implements ICommandComponent { - public constructor(public client: Disc, public meta: ICommandComponent["meta"]) {} + public constructor(public client: Rawon, public meta: ICommandComponent["meta"]) {} public abstract execute(ctx: CommandContext): any; } diff --git a/src/structures/BaseEvent.ts b/src/structures/BaseEvent.ts index cc9760d0f..7674a8e74 100644 --- a/src/structures/BaseEvent.ts +++ b/src/structures/BaseEvent.ts @@ -1,8 +1,8 @@ import { IEvent } from "../typings"; -import { Disc } from "./Disc"; +import { Rawon } from "./Rawon"; export abstract class BaseEvent implements IEvent { - public constructor(public client: Disc, public readonly name: IEvent["name"]) {} + public constructor(public client: Rawon, public readonly name: IEvent["name"]) {} public abstract execute(...args: any): any; } diff --git a/src/structures/CommandContext.ts b/src/structures/CommandContext.ts index 9098eef7e..304936874 100644 --- a/src/structures/CommandContext.ts +++ b/src/structures/CommandContext.ts @@ -5,10 +5,10 @@ import { ButtonInteraction, Collection, CommandInteraction, ContextMenuInteracti export class CommandContext { public additionalArgs: Collection = new Collection(); - public channel: TextBasedChannel|null = this.context.channel; + public channel: TextBasedChannel | null = this.context.channel; public guild = this.context.guild; - public constructor(public readonly context: Interaction|CommandInteraction|SelectMenuInteraction|ContextMenuInteraction|Message, public args: string[] = []) {} + public constructor(public readonly context: CommandInteraction | ContextMenuInteraction | Interaction | Message | SelectMenuInteraction, public args: string[] = []) {} public async deferReply(): Promise { if (this.isInteraction()) { @@ -17,33 +17,41 @@ export class CommandContext { return Promise.resolve(undefined); } - public async reply(options: { askDeletion?: { reference: string } }|string|MessagePayload|MessageOptions|InteractionReplyOptions, autoedit?: boolean): Promise { + public async reply(options: InteractionReplyOptions + | MessageOptions + | MessagePayload + | string + | { askDeletion?: { reference: string } }, autoedit?: boolean): Promise { if (this.isInteraction()) { if ((this.context as Interaction).isCommand() && (this.context as CommandInteraction).replied && !autoedit) throw new Error("Interaction is already replied."); } - const context = this.context as Message|CommandInteraction; - const rep = await this.send(options, this.isInteraction() ? ((context as Interaction).isCommand() ? (((context as CommandInteraction).replied || (context as CommandInteraction).deferred) ? "editReply" : "reply") : "reply") : "reply").catch(e => ({ error: e })); + const context = this.context as CommandInteraction | Message; + // eslint-disable-next-line no-nested-ternary + const rep = await this.send(options, this.isInteraction() ? (context as Interaction).isCommand() ? (context as CommandInteraction).replied || (context as CommandInteraction).deferred ? "editReply" : "reply" : "reply" : "reply").catch(e => ({ error: e })); if (!rep || "error" in rep) throw new Error(`Unable to reply context, because: ${rep ? (rep.error as Error).message : "Unknown"}`); // @ts-expect-error-next-line - return (rep instanceof Message ? rep : new Message(this.context.client, rep)); + return rep instanceof Message ? rep : new Message(this.context.client, rep); } - public async send(options: { askDeletion?: { reference: string } }|string|MessagePayload|MessageOptions|InteractionReplyOptions, type: MessageInteractionAction = "editReply"): Promise { + public async send(options: InteractionReplyOptions | MessageOptions | MessagePayload | string | { askDeletion?: { reference: string } }, type: MessageInteractionAction = "editReply"): Promise { const deletionBtn = new MessageActionRow() .addComponents( new MessageButton() .setEmoji("🗑️") .setStyle("DANGER") ); - if ((options as any).askDeletion) { - deletionBtn.components[0].setCustomId(Buffer.from(`${(options as any).askDeletion.reference}_delete-msg`).toString("base64")); - (options as InteractionReplyOptions).components ? (options as InteractionReplyOptions).components!.push(deletionBtn) : (options as InteractionReplyOptions).components = [deletionBtn]; + if ((options as { askDeletion?: { reference: string } }).askDeletion) { + deletionBtn.components[0].setCustomId(Buffer.from(`${(options as { askDeletion: { reference: string } }).askDeletion.reference}_delete-msg`).toString("base64")); + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + (options as InteractionReplyOptions).components + ? (options as InteractionReplyOptions).components!.push(deletionBtn) + : (options as InteractionReplyOptions).components = [deletionBtn]; } if (this.isInteraction()) { (options as InteractionReplyOptions).fetchReply = true; - const msg = await (this.context as CommandInteraction)[type](options as string|MessagePayload|InteractionReplyOptions) as Message; + const msg = await (this.context as CommandInteraction)[type](options as InteractionReplyOptions | MessagePayload | string) as Message; const channel = this.context.channel; const res = await channel!.messages.fetch(msg.id).catch(() => null); return res ?? msg; @@ -51,7 +59,7 @@ export class CommandContext { if ((options as InteractionReplyOptions).ephemeral) { throw new Error("Cannot send ephemeral message in a non-interaction context."); } - return this.context.channel!.send(options as string|MessagePayload|MessageOptions); + return this.context.channel!.send(options as MessageOptions | MessagePayload | string); } public isInteraction(): boolean { @@ -84,7 +92,7 @@ export class CommandContext { ); } - public get mentions(): MessageMentions|null { + public get mentions(): MessageMentions | null { return this.context instanceof Message ? this.context.mentions : null; } @@ -92,7 +100,7 @@ export class CommandContext { return this.context instanceof Interaction ? (this.context as CommandInteraction).deferred : false; } - public get options(): CommandInteraction["options"]|null { + public get options(): CommandInteraction["options"] | null { return this.context instanceof Interaction ? (this.context as CommandInteraction).options : null; } @@ -100,7 +108,7 @@ export class CommandContext { return this.context instanceof Interaction ? this.context.user : this.context.author; } - public get member(): GuildMember|null { + public get member(): GuildMember | null { return this.guild!.members.resolve(this.author.id); } } diff --git a/src/structures/Disc.ts b/src/structures/Rawon.ts similarity index 79% rename from src/structures/Disc.ts rename to src/structures/Rawon.ts index 11070b11b..1e449d56f 100644 --- a/src/structures/Disc.ts +++ b/src/structures/Rawon.ts @@ -2,7 +2,7 @@ import { soundcloud } from "../utils/handlers/SoundCloudUtil"; import { CommandManager } from "../utils/CommandManager"; import { EventsLoader } from "../utils/EventsLoader"; import { ClientUtils } from "../utils/ClientUtils"; -import { DiscLogger } from "../utils/DiscLogger"; +import { RawonLogger } from "../utils/RawonLogger"; import { formatMS } from "../utils/formatMS"; import * as config from "../config"; import { Client, ClientOptions } from "discord.js"; @@ -10,9 +10,9 @@ import { resolve } from "path"; import got from "got"; import { SpotifyUtil } from "../utils/handlers/SpotifyUtil"; -export class Disc extends Client { +export class Rawon extends Client { public readonly config = config; - public readonly logger = new DiscLogger({ prod: this.config.isProd }); + public readonly logger = new RawonLogger({ prod: this.config.isProd }); public readonly request = got; public readonly commands = new CommandManager(this, resolve(__dirname, "..", "commands")); public readonly events = new EventsLoader(this, resolve(__dirname, "..", "events")); @@ -22,14 +22,14 @@ export class Disc extends Client { public constructor(opt: ClientOptions) { super(opt); } - public async build(): Promise { + public build: () => Promise = async () => { const start = Date.now(); this.events.load(); - this.on("ready", async () => { - await this.commands.load(); + this.on("ready", () => { + this.commands.load(); this.logger.info(`Ready took ${formatMS(Date.now() - start)}`); }); await this.login(); return this; - } + }; } diff --git a/src/structures/ServerQueue.ts b/src/structures/ServerQueue.ts index 9770326c6..96bad99a4 100644 --- a/src/structures/ServerQueue.ts +++ b/src/structures/ServerQueue.ts @@ -7,14 +7,14 @@ export class ServerQueue { public loopMode: LoopMode = "OFF"; public shuffle = false; public stayInVC = this.textChannel.client.config.stayInVCAfterFinished; - public connection: VoiceConnection|null = null; - public player: AudioPlayer|null = null; - public dcTimeout: NodeJS.Timeout|null = null; - public timeout: NodeJS.Timeout|null = null; + public connection: VoiceConnection | null = null; + public player: AudioPlayer | null = null; + public dcTimeout: NodeJS.Timeout | null = null; + public timeout: NodeJS.Timeout | null = null; public readonly songs = new SongManager(); private _skipVoters: Snowflake[] = []; - private _lastMusicMsg: Snowflake|null = null; - private _lastVSUpdateMsg: Snowflake|null = null; + private _lastMusicMsg: Snowflake | null = null; + private _lastVSUpdateMsg: Snowflake | null = null; public constructor(public readonly textChannel: TextBasedChannel) { Object.defineProperties(this, { @@ -45,15 +45,19 @@ export class ServerQueue { } } + public get skipVoters(): Snowflake[] { + return this._skipVoters; + } + public set skipVoters(value: Snowflake[]) { this._skipVoters = value; } - public get skipVoters(): Snowflake[] { - return this._skipVoters; + public get lastMusicMsg(): Snowflake | null { + return this._lastMusicMsg; } - public set lastMusicMsg(value: Snowflake|null) { + public set lastMusicMsg(value: Snowflake | null) { if (this._lastMusicMsg !== null) { this.textChannel.messages.fetch(this._lastMusicMsg, { cache: false }) .then(msg => { @@ -64,11 +68,11 @@ export class ServerQueue { this._lastMusicMsg = value; } - public get lastMusicMsg(): Snowflake|null { - return this._lastMusicMsg; + public get lastVSUpdateMsg(): Snowflake | null { + return this._lastVSUpdateMsg; } - public set lastVSUpdateMsg(value: Snowflake|null) { + public set lastVSUpdateMsg(value: Snowflake | null) { if (this._lastVSUpdateMsg !== null) { this.textChannel.messages.fetch(this._lastVSUpdateMsg, { cache: false }) .then(msg => { @@ -79,8 +83,8 @@ export class ServerQueue { this._lastVSUpdateMsg = value; } - public get lastVSUpdateMsg(): Snowflake|null { - return this._lastVSUpdateMsg; + public get playing(): boolean { + return this.player?.state.status === AudioPlayerStatus.Playing; } public set playing(value: boolean) { @@ -91,11 +95,7 @@ export class ServerQueue { } } - public get playing(): boolean { - return this.player?.state.status === AudioPlayerStatus.Playing; - } - public get idle(): boolean { - return (this.player?.state.status === AudioPlayerStatus.Idle) && (this.songs.size === 0); + return this.player?.state.status === AudioPlayerStatus.Idle && this.songs.size === 0; } } diff --git a/src/typings/enum.ts b/src/typings/enum.ts index 124ad59c6..d7d1caccc 100644 --- a/src/typings/enum.ts +++ b/src/typings/enum.ts @@ -1,11 +1,12 @@ +/* eslint-disable @typescript-eslint/naming-convention */ export enum MessageComponentTypes { ACTION_ROW = 1, BUTTON = 2, - SELECT_MENU = 3, + SELECT_MENU = 3 } export enum InteractionTypes { PING = 1, APPLICATION_COMMAND = 2, - MESSAGE_COMPONENT = 3, + MESSAGE_COMPONENT = 3 } diff --git a/src/typings/index.d.ts b/src/typings/index.d.ts index b302deee0..35c472afe 100644 --- a/src/typings/index.d.ts +++ b/src/typings/index.d.ts @@ -1,19 +1,28 @@ +/* eslint-disable @typescript-eslint/naming-convention */ import { CommandContext } from "../structures/CommandContext"; import { ServerQueue } from "../structures/ServerQueue"; -import { Disc } from "../structures/Disc"; +import { Rawon } from "../structures/Rawon"; import { ActivityType, ApplicationCommandOptionData, ApplicationCommandType, ClientEvents, ClientPresenceStatus, Client as OClient, Collection, GuildMember, MessageEmbed } from "discord.js"; -export type MessageInteractionAction = "editReply" | "reply" | "followUp"; +export type MessageInteractionAction = "editReply" | "followUp" | "reply"; export interface QueryData { isURL: boolean; - sourceType?: "youtube" | "spotify" | "soundcloud" | "query" | "unknown"; - type?: "track" | "playlist" | "unknown"; + sourceType?: "query" | "soundcloud" | "spotify" | "unknown" | "youtube"; + type?: "playlist" | "track" | "unknown"; +} + +export interface basicYoutubeVideoInfo { + id: string; + url: string; + title: string; + thumbnails: { url: string; width: number; height: number }[]; + duration: number; } export interface SearchTrackResult { - type?: "selection"|"results"; + type?: "results" | "selection"; items: ISong[]; } @@ -22,10 +31,10 @@ export interface PaginationPayload { content?: string; pages: string[]; embed: MessageEmbed; - edit(index: number, embed: MessageEmbed, page: string): unknown; + edit: (index: number, embed: MessageEmbed, page: string) => unknown; } -export interface IDiscLoggerOptions { +export interface IRawonLoggerOptions { prod: boolean; } @@ -45,7 +54,7 @@ export interface IpresenceData { export interface IEvent { readonly name: keyof ClientEvents; - execute(...args: any): void; + execute: (...args: any) => void; } export interface ICommandComponent { @@ -63,7 +72,7 @@ export interface ICommandComponent { contextChat?: string; contextUser?: string; }; - execute(context: CommandContext): any; + execute: (context: CommandContext) => any; } export interface ICategoryMeta { @@ -75,17 +84,17 @@ export interface ICategoryMeta { declare module "discord.js" { // @ts-expect-error Override typings export interface Client extends OClient { - config: Disc["config"]; - logger: Disc["logger"]; - request: Disc["request"]; - commands: Disc["commands"]; - events: Disc["events"]; + config: Rawon["config"]; + logger: Rawon["logger"]; + request: Rawon["request"]; + commands: Rawon["commands"]; + events: Rawon["events"]; - build(token: string): Promise; + build: () => Promise; } export interface Guild { - client: Disc; + client: Rawon; queue?: ServerQueue; } } @@ -105,7 +114,7 @@ export interface IQueueSong { key: string; } -export type LoopMode = "OFF"|"SONG"|"QUEUE"; +export type LoopMode = "OFF" | "QUEUE" | "SONG"; export interface ILyricsAPIResult { error: E; @@ -115,7 +124,7 @@ export interface ILyricsAPIResult { lyrics?: E extends true ? null : string; url?: E extends true ? null : string; message?: E extends true ? string : never; - synced: E extends true ? never : boolean|string; + synced: E extends true ? never : boolean | string; } export interface ISpotifyAccessTokenAPIResult { diff --git a/src/utils/ButtonPagination.ts b/src/utils/ButtonPagination.ts index 78f9e5283..63db16195 100644 --- a/src/utils/ButtonPagination.ts +++ b/src/utils/ButtonPagination.ts @@ -30,7 +30,11 @@ const DATAS: InteractionButtonOptions[] = [ ]; export class ButtonPagination { - public constructor(public readonly msg: Interaction|CommandInteraction|SelectMenuInteraction|ContextMenuInteraction|Message, public readonly payload: PaginationPayload) {} + public constructor(public readonly msg: CommandInteraction + | ContextMenuInteraction + | Interaction + | Message + | SelectMenuInteraction, public readonly payload: PaginationPayload) {} public async start(): Promise { const embed = this.payload.embed; diff --git a/src/utils/ClientUtils.ts b/src/utils/ClientUtils.ts index ecd3dea78..b3eec178b 100644 --- a/src/utils/ClientUtils.ts +++ b/src/utils/ClientUtils.ts @@ -1,10 +1,11 @@ -import { Disc } from "../structures/Disc"; +/* eslint-disable class-methods-use-this */ +import { Rawon } from "../structures/Rawon"; import { Guild, Role } from "discord.js"; import { parse, resolve } from "path"; import { FFmpeg } from "prism-media"; export class ClientUtils { - public constructor(public readonly client: Disc) {} + public constructor(public readonly client: Rawon) {} public async fetchMuteRole(guild: Guild): Promise { return guild.roles.cache.find(x => x.name === this.client.config.muteRoleName) ?? guild.roles.create({ @@ -95,15 +96,15 @@ export class ClientUtils { } public async import(path: string, ...args: any[]): Promise { - const file = (await import(resolve(path)).then(m => m[parse(path).name])); - return file ? new file(...args) : undefined; + const file = await import(resolve(path)).then(m => (m as Record T) | undefined>)[parse(path).name]); + return file ? new file(...(args as unknown[])) : undefined; } public getFFmpegVersion(): string { try { const ffmpeg = FFmpeg.getInfo(); - return ffmpeg.version.split(/_|-| /).find(x => /[0-9.]/.test(x))?.replace(/[^0-9.]/g, "") ?? "Unknown"; - } catch (e) { + return ffmpeg.version.split(/_|-| /).find(x => (/[0-9.]/).test(x))?.replace(/[^0-9.]/g, "") ?? "Unknown"; + } catch { return "Unknown"; } } diff --git a/src/utils/CommandManager.ts b/src/utils/CommandManager.ts index e13e53b4d..a0a677d7a 100644 --- a/src/utils/CommandManager.ts +++ b/src/utils/CommandManager.ts @@ -1,7 +1,7 @@ import { CommandContext } from "../structures/CommandContext"; import { ICategoryMeta, ICommandComponent } from "../typings"; import { createEmbed } from "./createEmbed"; -import { Disc } from "../structures/Disc"; +import { Rawon } from "../structures/Rawon"; import i18n from "../config"; import { ApplicationCommandData, Collection, Message, Snowflake, TextChannel } from "discord.js"; import { promises as fs } from "fs"; @@ -13,7 +13,7 @@ export class CommandManager extends Collection { public readonly aliases: Collection = new Collection(); private readonly cooldowns: Collection> = new Collection(); - public constructor(public client: Disc, private readonly path: string) { super(); } + public constructor(public client: Rawon, private readonly path: string) { super(); } public load(): void { fs.readdir(resolve(this.path)) @@ -46,7 +46,7 @@ export class CommandManager extends Collection { if (command.meta.contextChat) { if (this.client.config.isDev) { - for (const guild of this.client.config.devGuild) { + for (const guild of this.client.config.devGuild as string) { const g = await this.client.guilds.fetch({ guild }); await g.commands.create({ @@ -66,7 +66,7 @@ export class CommandManager extends Collection { } if (command.meta.contextUser) { if (this.client.config.isDev) { - for (const guild of this.client.config.devGuild) { + for (const guild of this.client.config.devGuild as string) { const g = await this.client.guilds.fetch({ guild }); await g.commands.create({ @@ -89,7 +89,7 @@ export class CommandManager extends Collection { if (!command.meta.slash.description) Object.assign(command.meta.slash, { description: command.meta.description }); if (this.client.config.isDev) { - for (const guild of this.client.config.devGuild) { + for (const guild of this.client.config.devGuild as string) { const g = await this.client.guilds.fetch({ guild }); await g.commands.create(command.meta.slash as ApplicationCommandData) .catch(() => this.client.logger.info(`Missing access on ${guild} [SLASH_COMMAND]`)); @@ -109,7 +109,7 @@ export class CommandManager extends Collection { return { disabledCount, files }; }) .then(data => { - this.categories.set(category, Object.assign(meta, { cmds: this.filter(({ meta }) => meta.category === category) })); + this.categories.set(category, Object.assign(meta, { cmds: this.filter(c => c.meta.category === category) })); this.client.logger.info(`Done loading ${data.files.length} commands in ${category} category.`); if (data.disabledCount !== 0) this.client.logger.info(`${data.disabledCount} out of ${data.files.length} commands in ${category} category is disabled.`); }) @@ -125,8 +125,9 @@ export class CommandManager extends Collection { }); } - public async handle(message: Message, pref: string): Promise { - const prefix = pref === "{mention}" ? /<@(!)?\d*?>/.exec(message.content)![0] : pref; + public handle(message: Message, pref: string): void { + // eslint-disable-next-line prefer-named-capture-group + const prefix = pref === "{mention}" ? (/<@(!)?\d*?>/).exec(message.content)![0] : pref; const args = message.content.substring(prefix.length).trim().split(/ +/); const cmd = args.shift()?.toLowerCase(); const command = this.get(cmd!) ?? this.get(this.aliases.get(cmd!)!); diff --git a/src/utils/EventsLoader.ts b/src/utils/EventsLoader.ts index d01faf30c..979e8ddb8 100644 --- a/src/utils/EventsLoader.ts +++ b/src/utils/EventsLoader.ts @@ -1,10 +1,10 @@ -import { Disc } from "../structures/Disc"; +import { Rawon } from "../structures/Rawon"; import { IEvent } from "../typings"; import { promises as fs } from "fs"; import { resolve } from "path"; export class EventsLoader { - public constructor(public client: Disc, public path: string) {} + public constructor(public client: Rawon, public path: string) {} public load(): void { fs.readdir(resolve(this.path)) .then(async events => { diff --git a/src/utils/OperationManager.ts b/src/utils/OperationManager.ts index 27ea871c9..ec93ac7c8 100644 --- a/src/utils/OperationManager.ts +++ b/src/utils/OperationManager.ts @@ -1,6 +1,6 @@ export class OperationManager { private _runningOperation!: boolean; - private readonly operations: (() => void)[] = []; + private readonly operations: (() => Promise | undefined)[] = []; public constructor() { Object.defineProperty(this, "_runningOperation", { @@ -15,7 +15,7 @@ export class OperationManager { return this._runningOperation; } - public add(operation: () => void): void { + public add(operation: () => undefined): void { this.operations.push(operation); if (!this.runningOperation) { diff --git a/src/utils/DiscLogger.ts b/src/utils/RawonLogger.ts similarity index 50% rename from src/utils/DiscLogger.ts rename to src/utils/RawonLogger.ts index fcd79cec0..6c9619b69 100644 --- a/src/utils/DiscLogger.ts +++ b/src/utils/RawonLogger.ts @@ -1,4 +1,4 @@ -import { IDiscLoggerOptions } from "../typings"; +import { IRawonLoggerOptions } from "../typings"; import { format } from "date-fns"; enum Colors { @@ -9,8 +9,8 @@ enum Colors { Blue = "\x1b[34m" } -export class DiscLogger { - public constructor(public readonly options: IDiscLoggerOptions) {} +export class RawonLogger { + public constructor(public readonly options: IRawonLoggerOptions) {} public info(...messages: any[]): void { this.log(messages, "info"); @@ -28,9 +28,10 @@ export class DiscLogger { this.log(messages, "warn"); } - private log(messages: any[], level: "info"|"debug"|"error"|"warn" = "info"): void { + private log(messages: any[], level: "debug" | "error" | "info" | "warn" = "info"): void { if (this.options.prod && level === "debug") return; - console[level](`${this.options.prod ? "" : (level === "debug" ? Colors.Blue : (level === "error" ? Colors.Red : (level === "warn" ? Colors.Yellow : Colors.Green)))}[${format(Date.now(), "yyyy-MM-dd HH:mm:ss (x)")}] [${level}]: ${messages.map(x => String(x)).join(" ")} ${Colors.Reset}`); + // eslint-disable-next-line no-nested-ternary + console[level](`${this.options.prod ? "" : level === "debug" ? Colors.Blue : level === "error" ? Colors.Red : level === "warn" ? Colors.Yellow : Colors.Green}[${format(Date.now(), "yyyy-MM-dd HH:mm:ss (x)")}] [${level}]: ${messages.map(x => String(x)).join(" ")} ${Colors.Reset}`); } } diff --git a/src/utils/SongManager.ts b/src/utils/SongManager.ts index cb19fef89..5a17536c6 100644 --- a/src/utils/SongManager.ts +++ b/src/utils/SongManager.ts @@ -15,7 +15,7 @@ export class SongManager extends Collection { return key; } - public sortByIndex(): SongManager { + public sortByIndex(): this { return this.sort((a, b) => a.index - b.index); } } diff --git a/src/utils/chunk.ts b/src/utils/chunk.ts index aefbfe5e1..235e88a24 100644 --- a/src/utils/chunk.ts +++ b/src/utils/chunk.ts @@ -3,6 +3,6 @@ export function chunk(arr: string, len: number): string[]; export function chunk(...args: any[]): any[] { const [arr, len] = args as [any, number]; const rest: (typeof arr)[] = []; - for (let i = 0; i < arr.length; i += len) { rest.push(arr.slice(i, i + len)); } + for (let i = 0; i < (arr as string).length; i += len) { rest.push((arr as string).slice(i, i + len)); } return rest; } diff --git a/src/utils/createEmbed.ts b/src/utils/createEmbed.ts index 0e6205533..2d01e0ea0 100644 --- a/src/utils/createEmbed.ts +++ b/src/utils/createEmbed.ts @@ -1,7 +1,7 @@ import { embedColor, noEmoji, yesEmoji } from "../config"; import { ColorResolvable, MessageEmbed } from "discord.js"; -type hexColorsType = "info" | "warn" | "error" | "success"; +type hexColorsType = "error" | "info" | "success" | "warn"; const hexColors: Record = { error: "RED", info: embedColor, diff --git a/src/utils/functions/createTable.ts b/src/utils/functions/createTable.ts new file mode 100644 index 000000000..721890111 --- /dev/null +++ b/src/utils/functions/createTable.ts @@ -0,0 +1,16 @@ +export function createTable(values: string[][]): string { + const value = values.map(x => `${x.map((y, i) => { + const sortingArr = [...values]; + const spacing = " ".repeat( + sortingArr.sort( + (a, b) => (b[i] ?? "").length - (a[i] ?? "").length + )[0][i].length - y.length + ); + + return `${y}${spacing}`; + }) + .join(" :: ")}`) + .join("\n"); + + return value; +} diff --git a/src/utils/handlers/GeneralUtil.ts b/src/utils/handlers/GeneralUtil.ts index cda5bf2c4..766cc281e 100644 --- a/src/utils/handlers/GeneralUtil.ts +++ b/src/utils/handlers/GeneralUtil.ts @@ -5,7 +5,7 @@ import { parseHTMLElements } from "../parseHTMLElements"; import { ButtonPagination } from "../ButtonPagination"; import { getInfo, getStream } from "./YTDLUtil"; import { createEmbed } from "../createEmbed"; -import { Disc } from "../../structures/Disc"; +import { Rawon } from "../../structures/Rawon"; import { youtube } from "./YouTubeUtil"; import { chunk } from "../chunk"; import i18n from "../../config"; @@ -14,7 +14,7 @@ import { Guild, Message, StageChannel, Util, VoiceChannel } from "discord.js"; import { SearchResult, Video } from "youtubei"; import { URL } from "url"; -export async function searchTrack(client: Disc, query: string, source: "soundcloud" | "youtube" | undefined = "youtube"): Promise { +export async function searchTrack(client: Rawon, query: string, source: "soundcloud" | "youtube" | undefined = "youtube"): Promise { const result: SearchTrackResult = { items: [] }; @@ -61,7 +61,7 @@ export async function searchTrack(client: Disc, query: string, source: "soundclo } } else if (queryData.sourceType === "youtube") { if (queryData.type === "track") { - const track = await youtube.getVideo(url.toString()); + const track = await youtube.getVideo((/youtu\.be/g).exec(url.hostname) ? url.pathname.replace("/", "") : url.toString()); if (track) { result.items = [{ @@ -88,6 +88,7 @@ export async function searchTrack(client: Disc, query: string, source: "soundclo } } } else if (queryData.sourceType === "spotify") { + // eslint-disable-next-line no-inner-declarations function sortVideos(track: SpotifyTrack, videos: SearchResult<"video">): SearchResult<"video"> { return videos.sort((a, b) => { let aValue = 0; @@ -98,13 +99,13 @@ export async function searchTrack(client: Disc, query: string, source: "soundclo if (a.title.toLowerCase().includes(track.name.toLowerCase())) aValue--; if (track.artists.some(x => a.channel?.name.toLowerCase().includes(x.name))) aValue--; if (a.channel?.name.endsWith("- Topic")) aValue -= 2; - if (aDurationDiff ? (aDurationDiff <= 5000 && aDurationDiff >= -5000) : false) aValue -= 2; + if (aDurationDiff ? aDurationDiff <= 5000 && aDurationDiff >= -5000 : false) aValue -= 2; // "b" variable check if (b.title.toLowerCase().includes(track.name.toLowerCase())) bValue++; if (track.artists.some(x => b.channel?.name.toLowerCase().includes(x.name))) bValue++; if (b.channel?.name.endsWith(" - Topic")) bValue += 2; - if (bDurationDiff ? (bDurationDiff <= 5000 && bDurationDiff >= -5000) : false) bValue += 2; + if (bDurationDiff ? bDurationDiff <= 5000 && bDurationDiff >= -5000 : false) bValue += 2; return aValue + bValue; }); @@ -184,7 +185,7 @@ export function checkQuery(string: string): QueryData { let url: URL; try { url = new URL(string); - } catch (e) { + } catch { return { isURL: false, sourceType: "query" @@ -195,7 +196,7 @@ export function checkQuery(string: string): QueryData { isURL: true }; - if (/soundcloud|snd/g.exec(url.hostname)) { + if ((/soundcloud|snd/g).exec(url.hostname)) { result.sourceType = "soundcloud"; if (url.pathname.includes("/sets/")) { @@ -203,17 +204,17 @@ export function checkQuery(string: string): QueryData { } else { result.type = "track"; } - } else if (/youtube|youtu\.be/g.exec(url.hostname)) { + } else if ((/youtube|youtu\.be/g).exec(url.hostname)) { result.sourceType = "youtube"; - if (!/youtu\.be/g.exec(url.hostname) && url.pathname.startsWith("/playlist")) { + if (!(/youtu\.be/g).exec(url.hostname) && url.pathname.startsWith("/playlist")) { result.type = "playlist"; - } else if ((/youtube/g.exec(url.hostname) && url.pathname.startsWith("/watch")) || (/youtu\.be/g.exec(url.hostname) && (url.pathname !== ""))) { + } else if (((/youtube/g).exec(url.hostname) && url.pathname.startsWith("/watch")) || ((/youtu\.be/g).exec(url.hostname) && url.pathname !== "")) { result.type = "track"; } else { result.type = "unknown"; } - } else if (/spotify/g.exec(url.hostname)) { + } else if ((/spotify/g).exec(url.hostname)) { result.sourceType = "spotify"; if (url.pathname.startsWith("/playlist")) { @@ -231,7 +232,7 @@ export function checkQuery(string: string): QueryData { return result; } -export async function handleVideos(client: Disc, ctx: CommandContext, toQueue: ISong[], voiceChannel: VoiceChannel | StageChannel): Promise { +export async function handleVideos(client: Rawon, ctx: CommandContext, toQueue: ISong[], voiceChannel: StageChannel | VoiceChannel): Promise { const wasIdle = ctx.guild?.queue?.idle; async function sendPagination(): Promise { @@ -286,17 +287,18 @@ export async function handleVideos(client: Disc, ctx: CommandContext, toQueue: I delete ctx.guild!.queue; client.logger.error("PLAY_CMD_ERR:", error); - return ctx.channel!.send({ + void ctx.channel!.send({ embeds: [createEmbed("error", i18n.__mf("utils.generalHandler.errorJoining", { message: `\`${(error as Error).message}\`` }), true)] }).catch(e => { client.logger.error("PLAY_CMD_ERR:", e); }); + return; } void play(client, ctx.guild!); } -export async function play(client: Disc, guild: Guild, nextSong?: string, wasIdle?: boolean): Promise { +export async function play(client: Rawon, guild: Guild, nextSong?: string, wasIdle?: boolean): Promise { const queue = guild.queue; if (!queue) return; if (queue.player === null) queue.player = createAudioPlayer(); @@ -329,7 +331,7 @@ export async function play(client: Disc, guild: Guild, nextSong?: string, wasIdl async function playResource(): Promise { if (guild.channels.cache.get(queue!.connection!.joinConfig.channelId!)?.type === "GUILD_STAGE_VOICE") { const suppressed = await guild.me?.voice.setSuppressed(false).catch(err => ({ error: err })); - if (suppressed && ("error" in suppressed)) { + if (suppressed && "error" in suppressed) { queue?.player?.emit("error", new AudioPlayerError(suppressed.error as Error, resource)); return; } @@ -348,6 +350,7 @@ export async function play(client: Disc, guild: Guild, nextSong?: string, wasIdl if (wasIdle) { void playResource(); } else { + // eslint-disable-next-line max-lines entersState(queue.connection!, VoiceConnectionStatus.Ready, 15000) .then(async () => { await playResource(); @@ -358,8 +361,10 @@ export async function play(client: Disc, guild: Guild, nextSong?: string, wasIdl }); } + queue.player.removeAllListeners(); + queue.player.on("stateChange", (oldState, newState) => { - if ((newState.status === AudioPlayerStatus.Playing) && (oldState.status !== AudioPlayerStatus.Paused)) { + if (newState.status === AudioPlayerStatus.Playing && oldState.status !== AudioPlayerStatus.Paused) { const newSong = ((queue.player!.state as AudioPlayerPlayingState).resource.metadata as IQueueSong).song; sendStartPlayingMsg(newSong); } else if (newState.status === AudioPlayerStatus.Idle) { @@ -369,16 +374,17 @@ export async function play(client: Disc, guild: Guild, nextSong?: string, wasIdl queue.songs.delete(song.key); } - const nextSong = (queue.shuffle && (queue.loopMode !== "SONG")) ? queue.songs.random()?.key : (queue.loopMode === "SONG" ? song.key : queue.songs.sortByIndex().filter(x => x.index > song.index).first()?.key ?? (queue.loopMode === "QUEUE" ? (queue.songs.sortByIndex().first()?.key ?? "") : "")); + // eslint-disable-next-line no-nested-ternary + const nextS = queue.shuffle && queue.loopMode !== "SONG" ? queue.songs.random()?.key : queue.loopMode === "SONG" ? song.key : queue.songs.sortByIndex().filter(x => x.index > song.index).first()?.key ?? (queue.loopMode === "QUEUE" ? queue.songs.sortByIndex().first()?.key ?? "" : ""); queue.textChannel.send({ embeds: [createEmbed("info", `⏹ **|** ${i18n.__mf("utils.generalHandler.stopPlaying", { song: `[${song.song.title}](${song.song.url})` })}`).setThumbnail(song.song.thumbnail)] }) .then(m => queue.lastMusicMsg = m.id) .catch(e => client.logger.error("PLAY_ERR:", e)) .finally(() => { queue.player = null; - play(client, guild, nextSong).catch(e => { - queue.textChannel.send({ embeds: [createEmbed("error", i18n.__mf("utils.generalHandler.errorPlaying", { message: `\`${e}\`` }), true)] }) - .catch(e => client.logger.error("PLAY_ERR:", e)); + play(client, guild, nextS).catch(e => { + queue.textChannel.send({ embeds: [createEmbed("error", i18n.__mf("utils.generalHandler.errorPlaying", { message: `\`${e as string}\`` }), true)] }) + .catch(er => client.logger.error("PLAY_ERR:", er)); queue.connection?.disconnect(); return client.logger.error("PLAY_ERR:", e); }); diff --git a/src/utils/handlers/SpotifyUtil.ts b/src/utils/handlers/SpotifyUtil.ts index 3a04e78e3..c22023e33 100644 --- a/src/utils/handlers/SpotifyUtil.ts +++ b/src/utils/handlers/SpotifyUtil.ts @@ -1,12 +1,13 @@ -import { Disc } from "../../structures/Disc"; +import { Rawon } from "../../structures/Rawon"; import { ISpotifyAccessTokenAPIResult, SpotifyPlaylist, SpotifyTrack } from "../../typings"; export class SpotifyUtil { - public spotifyRegex = /(?:https:\/\/open\.spotify\.com\/|spotify:)(?:.+)?(track|playlist|album)[\/:]([A-Za-z0-9]+)/; + // eslint-disable-next-line prefer-named-capture-group + public spotifyRegex = /(?:https:\/\/open\.spotify\.com\/|spotify:)(?:.+)?(track|playlist|album)[/:]([A-Za-z0-9]+)/; public baseURI = "https://api.spotify.com/v1"; private token!: string; - public constructor(public client: Disc) {} + public constructor(public client: Rawon) {} public async fetchToken(): Promise { const { accessToken, accessTokenExpirationTimestampMs } = await this.client.request.get("https://open.spotify.com/get_access_token?reason=transport&productType=embed", { headers: { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" } }).json(); @@ -20,8 +21,8 @@ export class SpotifyUtil { setTimeout(() => this.renew(), lastRenew); } - public resolveTracks(url: string): Promise | Promise<{ track: SpotifyTrack }[]> | void { - const [, type, id] = url.match(this.spotifyRegex) ?? []; + public resolveTracks(url: string): Promise<{ track: SpotifyTrack }[]> | Promise | undefined { + const [, type, id] = this.spotifyRegex.exec(url) ?? []; switch (type) { case "track": { return this.getTrack(id); diff --git a/src/utils/handlers/YTDLUtil.ts b/src/utils/handlers/YTDLUtil.ts index f1bda7c16..ca76de8bb 100644 --- a/src/utils/handlers/YTDLUtil.ts +++ b/src/utils/handlers/YTDLUtil.ts @@ -1,7 +1,21 @@ -import ytdl, { exec, YtResponse } from "youtube-dl-exec"; +import { basicYoutubeVideoInfo } from "../../typings"; +import { soundcloud } from "./SoundCloudUtil"; +import { streamStrategy } from "../../config"; +import { checkQuery } from "./GeneralUtil"; +import { stream as pldlStream, video_basic_info } from "play-dl"; +import ytdl, { exec } from "youtube-dl-exec"; import { Readable } from "stream"; -export function getStream(url: string): Promise { +export async function getStream(url: string): Promise { + if (streamStrategy === "play-dl") { + const isSoundcloudUrl = checkQuery(url); + if (isSoundcloudUrl.sourceType === "soundcloud") { + return soundcloud.util.streamTrack(url) as unknown as Readable; + } + const rawPlayDlStream = await pldlStream(url, { discordPlayerCompatibility: true }); + return rawPlayDlStream.stream; + } + return new Promise((resolve, reject) => { const stream = exec( url, @@ -21,13 +35,22 @@ export function getStream(url: string): Promise { } void stream.on("spawn", () => { - resolve(stream.stdout as Readable); + resolve(stream.stdout!); }); }); } -export async function getInfo(url: string): Promise { - return ytdl(url, { +export async function getInfo(url: string): Promise { + if (streamStrategy === "play-dl") { + const rawPlayDlVideoInfo = await video_basic_info(url); + return { + duration: rawPlayDlVideoInfo.video_details.durationInSec * 1000, + id: rawPlayDlVideoInfo.video_details.id!, + thumbnails: rawPlayDlVideoInfo.video_details.thumbnails, + title: rawPlayDlVideoInfo.video_details.title!, + url: rawPlayDlVideoInfo.video_details.url + }; + } return ytdl(url, { dumpJson: true }); }