1
0
mirror of https://github.com/musix-org/musix-oss synced 2026-04-25 20:23:07 +00:00

440 Commits

Author SHA1 Message Date
github-actions[bot] 38f43287fd Merge pull request #244 from musix-org/dependabot/npm_and_yarn/v2/dotenv-17.2.2
Bump dotenv from 17.2.1 to 17.2.2
2025-09-03 18:45:04 +00:00
dependabot[bot] 72e11157ef Bump dotenv from 17.2.1 to 17.2.2
Bumps [dotenv](https://github.com/motdotla/dotenv) from 17.2.1 to 17.2.2.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v17.2.1...v17.2.2)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-version: 17.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-03 18:44:52 +00:00
github-actions[bot] b0e20ad7ca Merge pull request #241 from musix-org/dependabot/npm_and_yarn/v2/firebase-12.2.1
Bump firebase from 12.2.0 to 12.2.1
2025-08-29 23:07:57 +00:00
dependabot[bot] d8e4fc8aca Bump firebase from 12.2.0 to 12.2.1
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 12.2.0 to 12.2.1.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@12.2.0...firebase@12.2.1)

---
updated-dependencies:
- dependency-name: firebase
  dependency-version: 12.2.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-29 23:07:47 +00:00
github-actions[bot] 5a6fff33de Merge pull request #240 from musix-org/dependabot/npm_and_yarn/v2/firebase-admin-13.5.0
Bump firebase-admin from 13.4.0 to 13.5.0
2025-08-28 23:09:46 +00:00
dependabot[bot] 38020712cd Bump firebase-admin from 13.4.0 to 13.5.0
Bumps [firebase-admin](https://github.com/firebase/firebase-admin-node) from 13.4.0 to 13.5.0.
- [Release notes](https://github.com/firebase/firebase-admin-node/releases)
- [Changelog](https://github.com/firebase/firebase-admin-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-admin-node/compare/v13.4.0...v13.5.0)

---
updated-dependencies:
- dependency-name: firebase-admin
  dependency-version: 13.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-28 23:09:36 +00:00
github-actions[bot] 8fa481c6d7 Merge pull request #238 from musix-org/dependabot/npm_and_yarn/v2/firebase-12.2.0
Bump firebase from 12.1.0 to 12.2.0
2025-08-28 23:08:41 +00:00
dependabot[bot] 42be840c97 Bump firebase from 12.1.0 to 12.2.0
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 12.1.0 to 12.2.0.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@12.1.0...firebase@12.2.0)

---
updated-dependencies:
- dependency-name: firebase
  dependency-version: 12.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-28 23:08:30 +00:00
github-actions[bot] b3d7e1e00b Merge pull request #236 from musix-org/dependabot/npm_and_yarn/v2/discord.js-14.22.1
Bump discord.js from 14.22.0 to 14.22.1
2025-08-22 23:31:31 +00:00
dependabot[bot] 3e27d23b00 Bump discord.js from 14.22.0 to 14.22.1
Bumps [discord.js](https://github.com/discordjs/discord.js/tree/HEAD/packages/discord.js) from 14.22.0 to 14.22.1.
- [Release notes](https://github.com/discordjs/discord.js/releases)
- [Changelog](https://github.com/discordjs/discord.js/blob/14.22.1/packages/discord.js/CHANGELOG.md)
- [Commits](https://github.com/discordjs/discord.js/commits/14.22.1/packages/discord.js)

---
updated-dependencies:
- dependency-name: discord.js
  dependency-version: 14.22.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-22 23:31:20 +00:00
github-actions[bot] 2072a7a5a6 Merge pull request #233 from musix-org/dependabot/npm_and_yarn/v2/discord.js-14.22.0
Bump discord.js from 14.21.0 to 14.22.0
2025-08-20 23:52:26 +00:00
dependabot[bot] 3e1c72e588 Bump discord.js from 14.21.0 to 14.22.0
Bumps [discord.js](https://github.com/discordjs/discord.js/tree/HEAD/packages/discord.js) from 14.21.0 to 14.22.0.
- [Release notes](https://github.com/discordjs/discord.js/releases)
- [Changelog](https://github.com/discordjs/discord.js/blob/14.22.0/packages/discord.js/CHANGELOG.md)
- [Commits](https://github.com/discordjs/discord.js/commits/14.22.0/packages/discord.js)

---
updated-dependencies:
- dependency-name: discord.js
  dependency-version: 14.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-20 23:52:15 +00:00
github-actions[bot] a24a6cd146 Merge pull request #230 from musix-org/dependabot/npm_and_yarn/v2/discordjs/voice-0.19.0
Bump @discordjs/voice from 0.18.0 to 0.19.0
2025-08-19 11:01:29 +00:00
dependabot[bot] 071bd65bb3 Bump @discordjs/voice from 0.18.0 to 0.19.0
Bumps [@discordjs/voice](https://github.com/discordjs/discord.js/tree/HEAD/packages/voice) from 0.18.0 to 0.19.0.
- [Release notes](https://github.com/discordjs/discord.js/releases)
- [Changelog](https://github.com/discordjs/discord.js/blob/main/packages/voice/CHANGELOG.md)
- [Commits](https://github.com/discordjs/discord.js/commits/@discordjs/voice@0.19.0/packages/voice)

---
updated-dependencies:
- dependency-name: "@discordjs/voice"
  dependency-version: 0.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-19 11:01:18 +00:00
github-actions[bot] 28bcea36d8 Merge pull request #227 from musix-org/dependabot/npm_and_yarn/v2/firebase-12.1.0
Bump firebase from 12.0.0 to 12.1.0
2025-08-07 23:14:47 +00:00
dependabot[bot] cf206ff3c8 Bump firebase from 12.0.0 to 12.1.0
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 12.0.0 to 12.1.0.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@12.0.0...firebase@12.1.0)

---
updated-dependencies:
- dependency-name: firebase
  dependency-version: 12.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-07 23:14:37 +00:00
github-actions[bot] 7dd81665b9 Merge pull request #226 from musix-org/dependabot/npm_and_yarn/v2/dotenv-17.2.1
Bump dotenv from 17.2.0 to 17.2.1
2025-07-24 23:43:36 +00:00
dependabot[bot] 74866255eb Bump dotenv from 17.2.0 to 17.2.1
Bumps [dotenv](https://github.com/motdotla/dotenv) from 17.2.0 to 17.2.1.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v17.2.0...v17.2.1)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-version: 17.2.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-24 23:43:28 +00:00
github-actions[bot] 6639f4480f Merge pull request #223 from musix-org/dependabot/npm_and_yarn/v2/firebase-12.0.0
Bump firebase from 11.10.0 to 12.0.0
2025-07-17 23:41:24 +00:00
dependabot[bot] f671a99003 Bump firebase from 11.10.0 to 12.0.0
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 11.10.0 to 12.0.0.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@11.10.0...firebase@12.0.0)

---
updated-dependencies:
- dependency-name: firebase
  dependency-version: 12.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-17 23:41:13 +00:00
github-actions[bot] 6368af9644 Merge pull request #221 from musix-org/dependabot/npm_and_yarn/v2/dotenv-17.2.0
Bump dotenv from 17.1.0 to 17.2.0
2025-07-09 23:28:27 +00:00
dependabot[bot] cea67a51d5 Bump dotenv from 17.1.0 to 17.2.0
Bumps [dotenv](https://github.com/motdotla/dotenv) from 17.1.0 to 17.2.0.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v17.1.0...v17.2.0)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-version: 17.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-09 23:28:15 +00:00
github-actions[bot] 18a7e75a5b Merge pull request #220 from musix-org/dependabot/npm_and_yarn/v2/dotenv-17.1.0
Bump dotenv from 17.0.1 to 17.1.0
2025-07-08 23:38:47 +00:00
dependabot[bot] d116b64871 Bump dotenv from 17.0.1 to 17.1.0
Bumps [dotenv](https://github.com/motdotla/dotenv) from 17.0.1 to 17.1.0.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v17.0.1...v17.1.0)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-version: 17.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-08 23:38:37 +00:00
github-actions[bot] fe7348b76b Merge pull request #217 from musix-org/dependabot/npm_and_yarn/v2/dotenv-17.0.1
Bump dotenv from 17.0.0 to 17.0.1
2025-07-01 23:30:28 +00:00
dependabot[bot] 33871023f0 Bump dotenv from 17.0.0 to 17.0.1
Bumps [dotenv](https://github.com/motdotla/dotenv) from 17.0.0 to 17.0.1.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v17.0.0...v17.0.1)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-version: 17.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-01 23:30:19 +00:00
github-actions[bot] e314759945 Merge pull request #216 from musix-org/dependabot/npm_and_yarn/v2/firebase-11.10.0
Bump firebase from 11.9.1 to 11.10.0
2025-07-01 03:06:41 +00:00
dependabot[bot] b0597afc68 Bump firebase from 11.9.1 to 11.10.0
---
updated-dependencies:
- dependency-name: firebase
  dependency-version: 11.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-01 03:06:31 +00:00
github-actions[bot] 462c9eb533 Merge pull request #213 from musix-org/dependabot/npm_and_yarn/v2/dotenv-17.0.0
Bump dotenv from 16.6.0 to 17.0.0
2025-06-27 23:19:30 +00:00
dependabot[bot] c2bf4f4620 Bump dotenv from 16.6.0 to 17.0.0
Bumps [dotenv](https://github.com/motdotla/dotenv) from 16.6.0 to 17.0.0.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v16.6.0...v17.0.0)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-version: 17.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-27 23:19:21 +00:00
github-actions[bot] a20f71d9b5 Merge pull request #211 from musix-org/dependabot/npm_and_yarn/v2/dotenv-16.6.0
Bump dotenv from 16.5.0 to 16.6.0
2025-06-26 23:12:50 +00:00
dependabot[bot] 24d37eb215 Bump dotenv from 16.5.0 to 16.6.0
Bumps [dotenv](https://github.com/motdotla/dotenv) from 16.5.0 to 16.6.0.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v16.5.0...v16.6.0)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-version: 16.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-26 23:12:42 +00:00
github-actions[bot] 0390682fe7 Merge pull request #208 from musix-org/dependabot/npm_and_yarn/v2/discord.js-14.21.0
Bump discord.js from 14.20.0 to 14.21.0
2025-06-25 23:10:20 +00:00
dependabot[bot] 9de7781ba4 Bump discord.js from 14.20.0 to 14.21.0
Bumps [discord.js](https://github.com/discordjs/discord.js/tree/HEAD/packages/discord.js) from 14.20.0 to 14.21.0.
- [Release notes](https://github.com/discordjs/discord.js/releases)
- [Changelog](https://github.com/discordjs/discord.js/blob/14.21.0/packages/discord.js/CHANGELOG.md)
- [Commits](https://github.com/discordjs/discord.js/commits/14.21.0/packages/discord.js)

---
updated-dependencies:
- dependency-name: discord.js
  dependency-version: 14.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-25 23:10:10 +00:00
github-actions[bot] ac377ca5da Merge pull request #207 from musix-org/dependabot/npm_and_yarn/v2/discord.js-14.20.0
Bump discord.js from 14.19.3 to 14.20.0
2025-06-17 01:49:25 +00:00
dependabot[bot] 2237685e99 Bump discord.js from 14.19.3 to 14.20.0
Bumps [discord.js](https://github.com/discordjs/discord.js/tree/HEAD/packages/discord.js) from 14.19.3 to 14.20.0.
- [Release notes](https://github.com/discordjs/discord.js/releases)
- [Changelog](https://github.com/discordjs/discord.js/blob/14.20.0/packages/discord.js/CHANGELOG.md)
- [Commits](https://github.com/discordjs/discord.js/commits/14.20.0/packages/discord.js)

---
updated-dependencies:
- dependency-name: discord.js
  dependency-version: 14.20.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-17 01:49:15 +00:00
github-actions[bot] 2304719891 Merge pull request #203 from musix-org/dependabot/npm_and_yarn/v2/firebase-11.9.1
Bump firebase from 11.9.0 to 11.9.1
2025-06-10 23:49:55 +00:00
dependabot[bot] fc3620af3f Bump firebase from 11.9.0 to 11.9.1
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 11.9.0 to 11.9.1.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@11.9.0...firebase@11.9.1)

---
updated-dependencies:
- dependency-name: firebase
  dependency-version: 11.9.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-10 23:49:44 +00:00
github-actions[bot] e024b871fc Merge pull request #201 from musix-org/dependabot/npm_and_yarn/v2/firebase-11.9.0
Bump firebase from 11.8.1 to 11.9.0
2025-06-05 23:09:44 +00:00
dependabot[bot] 04d3ea5040 Bump firebase from 11.8.1 to 11.9.0
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 11.8.1 to 11.9.0.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@11.8.1...firebase@11.9.0)

---
updated-dependencies:
- dependency-name: firebase
  dependency-version: 11.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-05 23:09:34 +00:00
github-actions[bot] 72f1afff24 Merge pull request #200 from musix-org/dependabot/npm_and_yarn/v2/firebase-11.8.1
Bump firebase from 11.8.0 to 11.8.1
2025-05-23 00:02:08 +00:00
dependabot[bot] 4e9f78baf5 Bump firebase from 11.8.0 to 11.8.1
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 11.8.0 to 11.8.1.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@11.8.0...firebase@11.8.1)

---
updated-dependencies:
- dependency-name: firebase
  dependency-version: 11.8.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-23 00:02:00 +00:00
github-actions[bot] 967537d6bf Merge pull request #197 from musix-org/dependabot/npm_and_yarn/v2/firebase-11.8.0
Bump firebase from 11.7.3 to 11.8.0
2025-05-20 23:16:27 +00:00
dependabot[bot] b5331b32ef Bump firebase from 11.7.3 to 11.8.0
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 11.7.3 to 11.8.0.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@11.7.3...firebase@11.8.0)

---
updated-dependencies:
- dependency-name: firebase
  dependency-version: 11.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-20 23:16:16 +00:00
github-actions[bot] 0f7c5aed89 Merge pull request #196 from musix-org/dependabot/npm_and_yarn/v2/firebase-11.7.3
Bump firebase from 11.7.1 to 11.7.3
2025-05-15 00:06:14 +00:00
dependabot[bot] 08d30f9ff0 Bump firebase from 11.7.1 to 11.7.3
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 11.7.1 to 11.7.3.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@11.7.1...firebase@11.7.3)

---
updated-dependencies:
- dependency-name: firebase
  dependency-version: 11.7.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-15 00:06:05 +00:00
github-actions[bot] 9c177c88d9 Merge pull request #193 from musix-org/dependabot/npm_and_yarn/v2/firebase-admin-13.4.0
Bump firebase-admin from 13.3.0 to 13.4.0
2025-05-12 23:23:51 +00:00
dependabot[bot] 891c328df9 Bump firebase-admin from 13.3.0 to 13.4.0
Bumps [firebase-admin](https://github.com/firebase/firebase-admin-node) from 13.3.0 to 13.4.0.
- [Release notes](https://github.com/firebase/firebase-admin-node/releases)
- [Changelog](https://github.com/firebase/firebase-admin-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-admin-node/compare/v13.3.0...v13.4.0)

---
updated-dependencies:
- dependency-name: firebase-admin
  dependency-version: 13.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 23:23:41 +00:00
github-actions[bot] 2218e776ee Merge pull request #191 from musix-org/dependabot/npm_and_yarn/v2/firebase-11.7.1
Bump firebase from 11.7.0 to 11.7.1
2025-05-07 23:49:55 +00:00
dependabot[bot] bf7fe630cd Bump firebase from 11.7.0 to 11.7.1
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 11.7.0 to 11.7.1.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@11.7.0...firebase@11.7.1)

---
updated-dependencies:
- dependency-name: firebase
  dependency-version: 11.7.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-07 23:49:45 +00:00
github-actions[bot] 83c4bba7f5 Merge pull request #190 from musix-org/dependabot/npm_and_yarn/v2/firebase-11.7.0
Bump firebase from 11.6.1 to 11.7.0
2025-05-07 23:12:19 +00:00
dependabot[bot] 9815655b37 Bump firebase from 11.6.1 to 11.7.0
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 11.6.1 to 11.7.0.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@11.6.1...firebase@11.7.0)

---
updated-dependencies:
- dependency-name: firebase
  dependency-version: 11.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-07 23:12:10 +00:00
github-actions[bot] 83258791cf Merge pull request #189 from musix-org/dependabot/npm_and_yarn/v2/discord.js-14.19.3
Bump discord.js from 14.19.2 to 14.19.3
2025-05-02 23:22:13 +00:00
dependabot[bot] 2e23209e57 Bump discord.js from 14.19.2 to 14.19.3
Bumps [discord.js](https://github.com/discordjs/discord.js/tree/HEAD/packages/discord.js) from 14.19.2 to 14.19.3.
- [Release notes](https://github.com/discordjs/discord.js/releases)
- [Changelog](https://github.com/discordjs/discord.js/blob/14.19.3/packages/discord.js/CHANGELOG.md)
- [Commits](https://github.com/discordjs/discord.js/commits/14.19.3/packages/discord.js)

---
updated-dependencies:
- dependency-name: discord.js
  dependency-version: 14.19.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-02 23:22:03 +00:00
github-actions[bot] 1b6b62afbb Merge pull request #186 from musix-org/dependabot/npm_and_yarn/v2/discord.js-14.19.2
Bump discord.js from 14.18.0 to 14.19.2
2025-04-29 00:41:28 +00:00
dependabot[bot] 7c6d8234be Bump discord.js from 14.18.0 to 14.19.2
Bumps [discord.js](https://github.com/discordjs/discord.js/tree/HEAD/packages/discord.js) from 14.18.0 to 14.19.2.
- [Release notes](https://github.com/discordjs/discord.js/releases)
- [Changelog](https://github.com/discordjs/discord.js/blob/14.19.2/packages/discord.js/CHANGELOG.md)
- [Commits](https://github.com/discordjs/discord.js/commits/14.19.2/packages/discord.js)

---
updated-dependencies:
- dependency-name: discord.js
  dependency-version: 14.19.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-29 00:41:18 +00:00
github-actions[bot] f8ff02db88 Merge pull request #183 from musix-org/dependabot/npm_and_yarn/v2/firebase-11.6.1
Bump firebase from 11.6.0 to 11.6.1
2025-04-24 23:40:32 +00:00
dependabot[bot] 96fc32c47a Bump firebase from 11.6.0 to 11.6.1
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 11.6.0 to 11.6.1.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@11.6.0...firebase@11.6.1)

---
updated-dependencies:
- dependency-name: firebase
  dependency-version: 11.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-24 23:40:22 +00:00
github-actions[bot] 03ca89bdda Merge pull request #179 from musix-org/dependabot/npm_and_yarn/v2/nodemon-3.1.10
Bump nodemon from 3.1.9 to 3.1.10
2025-04-23 23:18:13 +00:00
dependabot[bot] 7eec141a98 Bump nodemon from 3.1.9 to 3.1.10
Bumps [nodemon](https://github.com/remy/nodemon) from 3.1.9 to 3.1.10.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v3.1.9...v3.1.10)

---
updated-dependencies:
- dependency-name: nodemon
  dependency-version: 3.1.10
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-23 23:18:03 +00:00
github-actions[bot] f1119b8165 Merge pull request #178 from musix-org/dependabot/npm_and_yarn/v2/firebase-admin-13.3.0
Bump firebase-admin from 13.2.0 to 13.3.0
2025-04-22 23:53:10 +00:00
dependabot[bot] bdb7566c7b Bump firebase-admin from 13.2.0 to 13.3.0
Bumps [firebase-admin](https://github.com/firebase/firebase-admin-node) from 13.2.0 to 13.3.0.
- [Release notes](https://github.com/firebase/firebase-admin-node/releases)
- [Changelog](https://github.com/firebase/firebase-admin-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-admin-node/compare/v13.2.0...v13.3.0)

---
updated-dependencies:
- dependency-name: firebase-admin
  dependency-version: 13.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 23:53:00 +00:00
github-actions[bot] f536cfb1bd Merge pull request #175 from musix-org/dependabot/npm_and_yarn/v2/dotenv-16.5.0
Bump dotenv from 16.4.7 to 16.5.0
2025-04-10 23:30:06 +00:00
dependabot[bot] 4529b7b64e Bump dotenv from 16.4.7 to 16.5.0
Bumps [dotenv](https://github.com/motdotla/dotenv) from 16.4.7 to 16.5.0.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v16.4.7...v16.5.0)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-version: 16.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-10 23:29:53 +00:00
github-actions[bot] 7b46f01a98 Merge pull request #173 from musix-org/dependabot/npm_and_yarn/v2/firebase-11.6.0
Bump firebase from 11.5.0 to 11.6.0
2025-04-01 00:29:28 +00:00
dependabot[bot] b43c66f710 Bump firebase from 11.5.0 to 11.6.0
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 11.5.0 to 11.6.0.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@11.5.0...firebase@11.6.0)

---
updated-dependencies:
- dependency-name: firebase
  dependency-version: 11.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-01 00:29:19 +00:00
github-actions[bot] 2c4d40699e Merge pull request #171 from musix-org/dependabot/npm_and_yarn/v2/firebase-11.5.0
Bump firebase from 11.4.0 to 11.5.0
2025-03-20 23:34:55 +00:00
dependabot[bot] f34fc02a97 Bump firebase from 11.4.0 to 11.5.0
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 11.4.0 to 11.5.0.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@11.4.0...firebase@11.5.0)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-20 23:34:46 +00:00
github-actions[bot] 105e6246a2 Merge pull request #170 from musix-org/dependabot/npm_and_yarn/v2/firebase-admin-13.2.0
Bump firebase-admin from 13.1.0 to 13.2.0
2025-03-05 23:12:17 +00:00
dependabot[bot] e891b4aa26 Bump firebase-admin from 13.1.0 to 13.2.0
Bumps [firebase-admin](https://github.com/firebase/firebase-admin-node) from 13.1.0 to 13.2.0.
- [Release notes](https://github.com/firebase/firebase-admin-node/releases)
- [Changelog](https://github.com/firebase/firebase-admin-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-admin-node/compare/v13.1.0...v13.2.0)

---
updated-dependencies:
- dependency-name: firebase-admin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-05 23:12:06 +00:00
github-actions[bot] afdf87b0d1 Merge pull request #168 from musix-org/dependabot/npm_and_yarn/v2/firebase-11.4.0
Bump firebase from 11.3.1 to 11.4.0
2025-02-27 23:58:39 +00:00
dependabot[bot] 244cba39b2 Bump firebase from 11.3.1 to 11.4.0
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 11.3.1 to 11.4.0.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@11.3.1...firebase@11.4.0)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-27 23:58:30 +00:00
github-actions[bot] 8f3953fba8 Merge pull request #166 from musix-org/dependabot/npm_and_yarn/v2/firebase-11.3.1
Bump firebase from 11.3.0 to 11.3.1
2025-02-11 23:34:38 +00:00
dependabot[bot] 4a58f075ab Bump firebase from 11.3.0 to 11.3.1
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 11.3.0 to 11.3.1.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@11.3.0...firebase@11.3.1)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-11 23:34:24 +00:00
github-actions[bot] 2a7a598ae8 Merge pull request #161 from musix-org/dependabot/npm_and_yarn/v2/firebase-11.3.0
Bump firebase from 11.2.0 to 11.3.0
2025-02-10 23:49:08 +00:00
dependabot[bot] b06ee237b3 Bump firebase from 11.2.0 to 11.3.0
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 11.2.0 to 11.3.0.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@11.2.0...firebase@11.3.0)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-10 23:48:58 +00:00
github-actions[bot] 86254cbbe8 Merge pull request #162 from musix-org/dependabot/npm_and_yarn/v2/discord.js-14.18.0
Bump discord.js from 14.17.3 to 14.18.0
2025-02-10 23:47:42 +00:00
dependabot[bot] 689a171366 Bump discord.js from 14.17.3 to 14.18.0
Bumps [discord.js](https://github.com/discordjs/discord.js/tree/HEAD/packages/discord.js) from 14.17.3 to 14.18.0.
- [Release notes](https://github.com/discordjs/discord.js/releases)
- [Changelog](https://github.com/discordjs/discord.js/blob/14.18.0/packages/discord.js/CHANGELOG.md)
- [Commits](https://github.com/discordjs/discord.js/commits/14.18.0/packages/discord.js)

---
updated-dependencies:
- dependency-name: discord.js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-10 23:47:32 +00:00
github-actions[bot] 5bbddc27b0 Merge pull request #160 from musix-org/dependabot/npm_and_yarn/v2/firebase-admin-13.1.0
Bump firebase-admin from 13.0.2 to 13.1.0
2025-02-06 23:40:28 +00:00
dependabot[bot] a749e11e33 Bump firebase-admin from 13.0.2 to 13.1.0
Bumps [firebase-admin](https://github.com/firebase/firebase-admin-node) from 13.0.2 to 13.1.0.
- [Release notes](https://github.com/firebase/firebase-admin-node/releases)
- [Changelog](https://github.com/firebase/firebase-admin-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-admin-node/compare/v13.0.2...v13.1.0)

---
updated-dependencies:
- dependency-name: firebase-admin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-06 23:40:18 +00:00
github-actions[bot] c0ced87700 Merge pull request #156 from musix-org/dependabot/npm_and_yarn/v2/discordjs/opus-0.10.0
Bump @discordjs/opus from 0.9.0 to 0.10.0
2025-01-28 23:42:42 +00:00
dependabot[bot] 9fe8145121 Bump @discordjs/opus from 0.9.0 to 0.10.0
Bumps [@discordjs/opus](https://github.com/discordjs/opus) from 0.9.0 to 0.10.0.
- [Release notes](https://github.com/discordjs/opus/releases)
- [Commits](https://github.com/discordjs/opus/compare/v0.9.0...v0.10.0)

---
updated-dependencies:
- dependency-name: "@discordjs/opus"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-28 23:42:31 +00:00
github-actions[bot] 8d64622345 Merge pull request #154 from musix-org/dependabot/npm_and_yarn/v2/firebase-11.2.0
Bump firebase from 11.1.0 to 11.2.0
2025-01-16 23:57:06 +00:00
dependabot[bot] 64abbcee0c Bump firebase from 11.1.0 to 11.2.0
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 11.1.0 to 11.2.0.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@11.1.0...firebase@11.2.0)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-16 23:56:44 +00:00
github-actions[bot] a11cbe8196 Merge pull request #151 from musix-org/dependabot/npm_and_yarn/v2/discord.js-14.17.3
Bump discord.js from 14.17.2 to 14.17.3
2025-01-08 23:52:52 +00:00
dependabot[bot] 0e642690eb Bump discord.js from 14.17.2 to 14.17.3
Bumps [discord.js](https://github.com/discordjs/discord.js/tree/HEAD/packages/discord.js) from 14.17.2 to 14.17.3.
- [Release notes](https://github.com/discordjs/discord.js/releases)
- [Changelog](https://github.com/discordjs/discord.js/blob/14.17.3/packages/discord.js/CHANGELOG.md)
- [Commits](https://github.com/discordjs/discord.js/commits/14.17.3/packages/discord.js)

---
updated-dependencies:
- dependency-name: discord.js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-08 23:52:42 +00:00
github-actions[bot] 380d0b838d Merge pull request #147 from musix-org/dependabot/npm_and_yarn/v2/discord.js-14.17.2
Bump discord.js from 14.17.0 to 14.17.2
2025-01-02 23:38:33 +00:00
dependabot[bot] c2ec1a7dfb Bump discord.js from 14.17.0 to 14.17.2
Bumps [discord.js](https://github.com/discordjs/discord.js/tree/HEAD/packages/discord.js) from 14.17.0 to 14.17.2.
- [Release notes](https://github.com/discordjs/discord.js/releases)
- [Changelog](https://github.com/discordjs/discord.js/blob/14.17.2/packages/discord.js/CHANGELOG.md)
- [Commits](https://github.com/discordjs/discord.js/commits/14.17.2/packages/discord.js)

---
updated-dependencies:
- dependency-name: discord.js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-02 23:38:22 +00:00
github-actions[bot] 2560f5234c Merge pull request #144 from musix-org/dependabot/npm_and_yarn/v2/discord.js-14.17.0
Bump discord.js from 14.16.3 to 14.17.0
2025-01-01 23:14:42 +00:00
dependabot[bot] 3c57c71f58 Bump discord.js from 14.16.3 to 14.17.0
Bumps [discord.js](https://github.com/discordjs/discord.js/tree/HEAD/packages/discord.js) from 14.16.3 to 14.17.0.
- [Release notes](https://github.com/discordjs/discord.js/releases)
- [Changelog](https://github.com/discordjs/discord.js/blob/14.17.0/packages/discord.js/CHANGELOG.md)
- [Commits](https://github.com/discordjs/discord.js/commits/14.17.0/packages/discord.js)

---
updated-dependencies:
- dependency-name: discord.js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-01 23:14:30 +00:00
github-actions[bot] 72d8649ec8 Merge pull request #143 from musix-org/dependabot/npm_and_yarn/v2/firebase-admin-13.0.2
Bump firebase-admin from 13.0.1 to 13.0.2
2024-12-19 23:48:11 +00:00
dependabot[bot] 5b1859e0c6 Bump firebase-admin from 13.0.1 to 13.0.2
Bumps [firebase-admin](https://github.com/firebase/firebase-admin-node) from 13.0.1 to 13.0.2.
- [Release notes](https://github.com/firebase/firebase-admin-node/releases)
- [Changelog](https://github.com/firebase/firebase-admin-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-admin-node/compare/v13.0.1...v13.0.2)

---
updated-dependencies:
- dependency-name: firebase-admin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-19 23:47:57 +00:00
github-actions[bot] 05f3955079 Merge pull request #140 from musix-org/dependabot/npm_and_yarn/v2/nodemon-3.1.9
Bump nodemon from 3.1.7 to 3.1.9
2024-12-13 23:48:50 +00:00
dependabot[bot] 183f4311ff Bump nodemon from 3.1.7 to 3.1.9
Bumps [nodemon](https://github.com/remy/nodemon) from 3.1.7 to 3.1.9.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v3.1.7...v3.1.9)

---
updated-dependencies:
- dependency-name: nodemon
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-13 23:48:38 +00:00
github-actions[bot] 56608ba096 Merge pull request #137 from musix-org/dependabot/npm_and_yarn/v2/firebase-11.1.0
Bump firebase from 11.0.2 to 11.1.0
2024-12-12 23:09:28 +00:00
dependabot[bot] b4ebe28316 Bump firebase from 11.0.2 to 11.1.0
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 11.0.2 to 11.1.0.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@11.0.2...firebase@11.1.0)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-12 23:09:16 +00:00
github-actions[bot] a3a89a2ca2 Merge pull request #135 from musix-org/dependabot/npm_and_yarn/v2/dotenv-16.4.7
Bump dotenv from 16.4.5 to 16.4.7
2024-12-03 23:11:09 +00:00
dependabot[bot] a128513605 Bump dotenv from 16.4.5 to 16.4.7
Bumps [dotenv](https://github.com/motdotla/dotenv) from 16.4.5 to 16.4.7.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v16.4.5...v16.4.7)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-03 23:10:54 +00:00
github-actions[bot] d56226bbf3 Merge pull request #133 from musix-org/dependabot/npm_and_yarn/v2/ms-2.1.3
Bump ms from 2.1.2 to 2.1.3
2024-11-21 23:18:38 +00:00
dependabot[bot] d8802755ed Bump ms from 2.1.2 to 2.1.3
Bumps [ms](https://github.com/vercel/ms) from 2.1.2 to 2.1.3.
- [Release notes](https://github.com/vercel/ms/releases)
- [Commits](https://github.com/vercel/ms/compare/2.1.2...2.1.3)

---
updated-dependencies:
- dependency-name: ms
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-21 23:18:26 +00:00
github-actions[bot] d07cd8e0c4 Merge pull request #131 from musix-org/dependabot/npm_and_yarn/v2/firebase-admin-13.0.1
Bump firebase-admin from 13.0.0 to 13.0.1
2024-11-20 23:27:28 +00:00
dependabot[bot] d939cbf554 Bump firebase-admin from 13.0.0 to 13.0.1
Bumps [firebase-admin](https://github.com/firebase/firebase-admin-node) from 13.0.0 to 13.0.1.
- [Release notes](https://github.com/firebase/firebase-admin-node/releases)
- [Changelog](https://github.com/firebase/firebase-admin-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-admin-node/compare/v13.0.0...v13.0.1)

---
updated-dependencies:
- dependency-name: firebase-admin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-20 23:27:17 +00:00
github-actions[bot] 884b8d9122 Merge pull request #130 from musix-org/dependabot/npm_and_yarn/v2/discordjs/voice-0.18.0
Bump @discordjs/voice from 0.17.0 to 0.18.0
2024-11-19 00:21:36 +00:00
dependabot[bot] 0f41a947a0 Bump @discordjs/voice from 0.17.0 to 0.18.0
Bumps [@discordjs/voice](https://github.com/discordjs/discord.js/tree/HEAD/packages/voice) from 0.17.0 to 0.18.0.
- [Release notes](https://github.com/discordjs/discord.js/releases)
- [Changelog](https://github.com/discordjs/discord.js/blob/main/packages/voice/CHANGELOG.md)
- [Commits](https://github.com/discordjs/discord.js/commits/@discordjs/voice@0.18.0/packages/voice)

---
updated-dependencies:
- dependency-name: "@discordjs/voice"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-19 00:21:23 +00:00
github-actions[bot] 2e3d2c8acb Merge pull request #128 from musix-org/dependabot/npm_and_yarn/v2/firebase-11.0.2
Bump firebase from 11.0.1 to 11.0.2
2024-11-14 23:59:47 +00:00
dependabot[bot] 43c96c23c1 Bump firebase from 11.0.1 to 11.0.2
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 11.0.1 to 11.0.2.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@11.0.1...firebase@11.0.2)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-14 23:59:32 +00:00
github-actions[bot] ffae888b71 Merge pull request #125 from musix-org/dependabot/npm_and_yarn/v2/firebase-admin-13.0.0
Bump firebase-admin from 12.7.0 to 13.0.0
2024-11-12 23:30:59 +00:00
dependabot[bot] 0c9f5e116b Bump firebase-admin from 12.7.0 to 13.0.0
Bumps [firebase-admin](https://github.com/firebase/firebase-admin-node) from 12.7.0 to 13.0.0.
- [Release notes](https://github.com/firebase/firebase-admin-node/releases)
- [Changelog](https://github.com/firebase/firebase-admin-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-admin-node/compare/v12.7.0...v13.0.0)

---
updated-dependencies:
- dependency-name: firebase-admin
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-12 23:30:47 +00:00
github-actions[bot] 43986ba430 Merge pull request #123 from musix-org/dependabot/npm_and_yarn/v2/firebase-admin-12.7.0
Bump firebase-admin from 12.6.0 to 12.7.0
2024-10-24 23:55:44 +00:00
dependabot[bot] ace17fb6c0 Bump firebase-admin from 12.6.0 to 12.7.0
Bumps [firebase-admin](https://github.com/firebase/firebase-admin-node) from 12.6.0 to 12.7.0.
- [Release notes](https://github.com/firebase/firebase-admin-node/releases)
- [Changelog](https://github.com/firebase/firebase-admin-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-admin-node/compare/v12.6.0...v12.7.0)

---
updated-dependencies:
- dependency-name: firebase-admin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-24 23:55:32 +00:00
github-actions[bot] fc201c64c6 Merge pull request #122 from musix-org/dependabot/npm_and_yarn/v2/firebase-11.0.1
Bump firebase from 11.0.0 to 11.0.1
2024-10-22 23:54:30 +00:00
dependabot[bot] a944761279 Bump firebase from 11.0.0 to 11.0.1
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 11.0.0 to 11.0.1.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@11.0.0...firebase@11.0.1)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-22 23:54:19 +00:00
github-actions[bot] 652af36322 Merge pull request #120 from musix-org/dependabot/npm_and_yarn/v2/firebase-11.0.0
Bump firebase from 10.14.1 to 11.0.0
2024-10-21 23:44:52 +00:00
dependabot[bot] 455cacccac Bump firebase from 10.14.1 to 11.0.0
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 10.14.1 to 11.0.0.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@10.14.1...firebase@11.0.0)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-21 23:44:42 +00:00
github-actions[bot] cbd9a9082f Merge pull request #117 from musix-org/dependabot/npm_and_yarn/v2/firebase-10.14.1
Bump firebase from 10.14.0 to 10.14.1
2024-10-10 23:11:23 +00:00
dependabot[bot] 8c849336b7 Bump firebase from 10.14.0 to 10.14.1
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 10.14.0 to 10.14.1.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@10.14.0...firebase@10.14.1)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-10 23:11:11 +00:00
github-actions[bot] ada92d5017 Merge pull request #112 from musix-org/dependabot/npm_and_yarn/v2/firebase-admin-12.6.0
Bump firebase-admin from 12.5.0 to 12.6.0
2024-09-30 23:29:56 +00:00
dependabot[bot] b3ab178d74 Bump firebase-admin from 12.5.0 to 12.6.0
Bumps [firebase-admin](https://github.com/firebase/firebase-admin-node) from 12.5.0 to 12.6.0.
- [Release notes](https://github.com/firebase/firebase-admin-node/releases)
- [Changelog](https://github.com/firebase/firebase-admin-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-admin-node/compare/v12.5.0...v12.6.0)

---
updated-dependencies:
- dependency-name: firebase-admin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-30 23:29:44 +00:00
github-actions[bot] 796688415a Merge pull request #111 from musix-org/dependabot/npm_and_yarn/v2/discord.js-14.16.3
Bump discord.js from 14.16.2 to 14.16.3
2024-09-30 23:28:39 +00:00
github-actions[bot] 64b1ac3c92 Merge pull request #110 from musix-org/dependabot/npm_and_yarn/v2/firebase-10.14.0
Bump firebase from 10.13.2 to 10.14.0
2024-09-30 23:28:33 +00:00
dependabot[bot] d432243da6 Bump discord.js from 14.16.2 to 14.16.3
Bumps [discord.js](https://github.com/discordjs/discord.js/tree/HEAD/packages/discord.js) from 14.16.2 to 14.16.3.
- [Release notes](https://github.com/discordjs/discord.js/releases)
- [Changelog](https://github.com/discordjs/discord.js/blob/main/packages/discord.js/CHANGELOG.md)
- [Commits](https://github.com/discordjs/discord.js/commits/14.16.3/packages/discord.js)

---
updated-dependencies:
- dependency-name: discord.js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-30 23:28:27 +00:00
dependabot[bot] 31ed9abe56 Bump firebase from 10.13.2 to 10.14.0
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 10.13.2 to 10.14.0.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@10.13.2...firebase@10.14.0)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-30 23:28:21 +00:00
github-actions[bot] ebf3fa83d4 Merge pull request #109 from musix-org/dependabot/npm_and_yarn/v2/nodemon-3.1.7
Bump nodemon from 3.1.6 to 3.1.7
2024-09-20 23:51:37 +00:00
dependabot[bot] 7ddaa6bc7b Bump nodemon from 3.1.6 to 3.1.7
Bumps [nodemon](https://github.com/remy/nodemon) from 3.1.6 to 3.1.7.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v3.1.6...v3.1.7)

---
updated-dependencies:
- dependency-name: nodemon
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-20 23:51:26 +00:00
github-actions[bot] 977e9beccd Merge pull request #106 from musix-org/dependabot/npm_and_yarn/v2/nodemon-3.1.6
Bump nodemon from 3.1.5 to 3.1.6
2024-09-19 23:29:12 +00:00
dependabot[bot] aa609a811a Bump nodemon from 3.1.5 to 3.1.6
Bumps [nodemon](https://github.com/remy/nodemon) from 3.1.5 to 3.1.6.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v3.1.5...v3.1.6)

---
updated-dependencies:
- dependency-name: nodemon
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-19 23:29:00 +00:00
github-actions[bot] 3555425a9a Merge pull request #102 from musix-org/dependabot/npm_and_yarn/v2/firebase-10.13.2
Bump firebase from 10.13.1 to 10.13.2
2024-09-18 23:07:31 +00:00
dependabot[bot] 783e4bcb8c Bump firebase from 10.13.1 to 10.13.2
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 10.13.1 to 10.13.2.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@10.13.1...firebase@10.13.2)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-18 23:07:19 +00:00
github-actions[bot] 2ceb4a82e8 Merge pull request #101 from musix-org/dependabot/npm_and_yarn/v2/nodemon-3.1.5
Bump nodemon from 3.1.4 to 3.1.5
2024-09-17 23:53:11 +00:00
dependabot[bot] 17b115a9d9 Bump nodemon from 3.1.4 to 3.1.5
Bumps [nodemon](https://github.com/remy/nodemon) from 3.1.4 to 3.1.5.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v3.1.4...v3.1.5)

---
updated-dependencies:
- dependency-name: nodemon
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-17 23:53:00 +00:00
github-actions[bot] 9291845c16 Merge pull request #98 from musix-org/dependabot/npm_and_yarn/v2/discord.js-14.16.2
Bump discord.js from 14.16.1 to 14.16.2
2024-09-12 23:57:38 +00:00
github-actions[bot] aeb75d8f76 Merge pull request #97 from musix-org/dependabot/npm_and_yarn/v2/firebase-admin-12.5.0
Bump firebase-admin from 12.4.0 to 12.5.0
2024-09-12 23:57:32 +00:00
dependabot[bot] a2e82318ab Bump discord.js from 14.16.1 to 14.16.2
Bumps [discord.js](https://github.com/discordjs/discord.js/tree/HEAD/packages/discord.js) from 14.16.1 to 14.16.2.
- [Release notes](https://github.com/discordjs/discord.js/releases)
- [Changelog](https://github.com/discordjs/discord.js/blob/main/packages/discord.js/CHANGELOG.md)
- [Commits](https://github.com/discordjs/discord.js/commits/14.16.2/packages/discord.js)

---
updated-dependencies:
- dependency-name: discord.js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-12 23:57:27 +00:00
dependabot[bot] 22a6230eb3 Bump firebase-admin from 12.4.0 to 12.5.0
Bumps [firebase-admin](https://github.com/firebase/firebase-admin-node) from 12.4.0 to 12.5.0.
- [Release notes](https://github.com/firebase/firebase-admin-node/releases)
- [Changelog](https://github.com/firebase/firebase-admin-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-admin-node/compare/v12.4.0...v12.5.0)

---
updated-dependencies:
- dependency-name: firebase-admin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-12 23:57:21 +00:00
github-actions[bot] 5c66dad61e Merge pull request #92 from musix-org/dependabot/npm_and_yarn/v2/discord.js-14.16.1
Bump discord.js from 14.15.3 to 14.16.1
2024-09-02 23:53:44 +00:00
dependabot[bot] f9abbf0b00 Bump discord.js from 14.15.3 to 14.16.1
Bumps [discord.js](https://github.com/discordjs/discord.js/tree/HEAD/packages/discord.js) from 14.15.3 to 14.16.1.
- [Release notes](https://github.com/discordjs/discord.js/releases)
- [Changelog](https://github.com/discordjs/discord.js/blob/main/packages/discord.js/CHANGELOG.md)
- [Commits](https://github.com/discordjs/discord.js/commits/14.16.1/packages/discord.js)

---
updated-dependencies:
- dependency-name: discord.js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-02 23:53:33 +00:00
github-actions[bot] ea1b203301 Merge pull request #89 from musix-org/dependabot/npm_and_yarn/v2/firebase-10.13.1
Bump firebase from 10.13.0 to 10.13.1
2024-08-29 23:40:24 +00:00
dependabot[bot] c1e4facec5 Bump firebase from 10.13.0 to 10.13.1
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 10.13.0 to 10.13.1.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@10.13.0...firebase@10.13.1)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-29 23:40:13 +00:00
github-actions[bot] 9c49b88794 Merge pull request #88 from musix-org/dependabot/npm_and_yarn/v2/firebase-admin-12.4.0
Bump firebase-admin from 12.3.1 to 12.4.0
2024-08-22 23:45:06 +00:00
dependabot[bot] cf8b19e8db Bump firebase-admin from 12.3.1 to 12.4.0
Bumps [firebase-admin](https://github.com/firebase/firebase-admin-node) from 12.3.1 to 12.4.0.
- [Release notes](https://github.com/firebase/firebase-admin-node/releases)
- [Commits](https://github.com/firebase/firebase-admin-node/compare/v12.3.1...v12.4.0)

---
updated-dependencies:
- dependency-name: firebase-admin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-22 23:44:53 +00:00
github-actions[bot] e7049d034f Merge pull request #85 from musix-org/dependabot/npm_and_yarn/v2/firebase-10.13.0
Bump firebase from 10.12.5 to 10.13.0
2024-08-15 23:35:05 +00:00
dependabot[bot] 48d9cdef80 Bump firebase from 10.12.5 to 10.13.0
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 10.12.5 to 10.13.0.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@10.12.5...firebase@10.13.0)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-15 23:34:52 +00:00
github-actions[bot] 46d3001a2c Merge pull request #83 from musix-org/dependabot/npm_and_yarn/v2/firebase-admin-12.3.1
Bump firebase-admin from 12.3.0 to 12.3.1
2024-08-08 23:17:39 +00:00
dependabot[bot] 7f227d3053 Bump firebase-admin from 12.3.0 to 12.3.1
Bumps [firebase-admin](https://github.com/firebase/firebase-admin-node) from 12.3.0 to 12.3.1.
- [Release notes](https://github.com/firebase/firebase-admin-node/releases)
- [Commits](https://github.com/firebase/firebase-admin-node/compare/v12.3.0...v12.3.1)

---
updated-dependencies:
- dependency-name: firebase-admin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-08 23:17:27 +00:00
github-actions[bot] 01599a2484 Merge pull request #82 from musix-org/dependabot/npm_and_yarn/v2/firebase-10.12.5
Bump firebase from 10.12.4 to 10.12.5
2024-08-01 23:32:08 +00:00
dependabot[bot] 00513218d1 Bump firebase from 10.12.4 to 10.12.5
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 10.12.4 to 10.12.5.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@10.12.4...firebase@10.12.5)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-01 23:31:57 +00:00
github-actions[bot] d1bb90707b Merge pull request #79 from musix-org/dependabot/npm_and_yarn/v2/firebase-admin-12.3.0
Bump firebase-admin from 12.2.0 to 12.3.0
2024-07-25 23:29:22 +00:00
dependabot[bot] 9068b8bfee Bump firebase-admin from 12.2.0 to 12.3.0
Bumps [firebase-admin](https://github.com/firebase/firebase-admin-node) from 12.2.0 to 12.3.0.
- [Release notes](https://github.com/firebase/firebase-admin-node/releases)
- [Commits](https://github.com/firebase/firebase-admin-node/compare/v12.2.0...v12.3.0)

---
updated-dependencies:
- dependency-name: firebase-admin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-25 23:29:09 +00:00
github-actions[bot] 3c30ecf847 Merge pull request #78 from musix-org/dependabot/npm_and_yarn/v2/firebase-10.12.4
Bump firebase from 10.12.3 to 10.12.4
2024-07-19 13:29:43 +00:00
dependabot[bot] 0e7c75e1ec Bump firebase from 10.12.3 to 10.12.4
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 10.12.3 to 10.12.4.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/master/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@10.12.3...firebase@10.12.4)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-19 13:29:30 +00:00
github-actions[bot] 1eecf64f35 Merge pull request #76 from musix-org/dependabot/npm_and_yarn/v2/firebase-10.12.3
Bump firebase from 10.12.2 to 10.12.3
2024-07-03 23:11:26 +00:00
dependabot[bot] bc9857b320 Bump firebase from 10.12.2 to 10.12.3
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 10.12.2 to 10.12.3.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/master/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@10.12.2...firebase@10.12.3)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-03 23:11:14 +00:00
github-actions[bot] b46c5c4c9f Merge pull request #74 from musix-org/dependabot/npm_and_yarn/v2/firebase-admin-12.2.0
Bump firebase-admin from 12.1.1 to 12.2.0
2024-06-20 23:59:27 +00:00
github-actions[bot] d9e1612bb5 Merge pull request #73 from musix-org/dependabot/npm_and_yarn/v2/nodemon-3.1.4
Bump nodemon from 3.1.3 to 3.1.4
2024-06-20 23:59:21 +00:00
dependabot[bot] bac806d03c Bump firebase-admin from 12.1.1 to 12.2.0
Bumps [firebase-admin](https://github.com/firebase/firebase-admin-node) from 12.1.1 to 12.2.0.
- [Release notes](https://github.com/firebase/firebase-admin-node/releases)
- [Commits](https://github.com/firebase/firebase-admin-node/compare/v12.1.1...v12.2.0)

---
updated-dependencies:
- dependency-name: firebase-admin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-20 23:59:16 +00:00
dependabot[bot] 529c999fee Bump nodemon from 3.1.3 to 3.1.4
Bumps [nodemon](https://github.com/remy/nodemon) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v3.1.3...v3.1.4)

---
updated-dependencies:
- dependency-name: nodemon
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-20 23:59:08 +00:00
github-actions[bot] 4dfd5c78f2 Merge pull request #65 from musix-org/dependabot/npm_and_yarn/v2/discord.js-14.15.3
Bump discord.js from 14.15.2 to 14.15.3
2024-06-03 23:14:25 +00:00
dependabot[bot] 790c50ddd5 Bump discord.js from 14.15.2 to 14.15.3
Bumps [discord.js](https://github.com/discordjs/discord.js/tree/HEAD/packages/discord.js) from 14.15.2 to 14.15.3.
- [Release notes](https://github.com/discordjs/discord.js/releases)
- [Changelog](https://github.com/discordjs/discord.js/blob/main/packages/discord.js/CHANGELOG.md)
- [Commits](https://github.com/discordjs/discord.js/commits/14.15.3/packages/discord.js)

---
updated-dependencies:
- dependency-name: discord.js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-03 23:14:12 +00:00
github-actions[bot] fafe4faa29 Merge pull request #64 from musix-org/dependabot/npm_and_yarn/v2/nodemon-3.1.3
Bump nodemon from 3.1.2 to 3.1.3
2024-06-03 23:14:05 +00:00
dependabot[bot] b979f2b548 Bump nodemon from 3.1.2 to 3.1.3
Bumps [nodemon](https://github.com/remy/nodemon) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v3.1.2...v3.1.3)

---
updated-dependencies:
- dependency-name: nodemon
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-03 23:13:54 +00:00
github-actions[bot] fff61f78fd Merge pull request #61 from musix-org/dependabot/npm_and_yarn/v2/nodemon-3.1.2
Bump nodemon from 3.1.1 to 3.1.2
2024-05-29 23:43:43 +00:00
dependabot[bot] b83122618e Bump nodemon from 3.1.1 to 3.1.2
Bumps [nodemon](https://github.com/remy/nodemon) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v3.1.1...v3.1.2)

---
updated-dependencies:
- dependency-name: nodemon
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-29 23:43:32 +00:00
github-actions[bot] 3c1d4704dd Merge pull request #59 from musix-org/dependabot/npm_and_yarn/v2/nodemon-3.1.1
Bump nodemon from 3.1.0 to 3.1.1
2024-05-27 23:53:25 +00:00
github-actions[bot] 87d05c1783 Merge pull request #58 from musix-org/dependabot/npm_and_yarn/v2/firebase-10.12.2
Bump firebase from 10.12.1 to 10.12.2
2024-05-27 23:53:12 +00:00
dependabot[bot] ca0198e1a9 Bump nodemon from 3.1.0 to 3.1.1
Bumps [nodemon](https://github.com/remy/nodemon) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v3.1.0...v3.1.1)

---
updated-dependencies:
- dependency-name: nodemon
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-27 23:53:09 +00:00
dependabot[bot] 1490aef5bb Bump firebase from 10.12.1 to 10.12.2
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 10.12.1 to 10.12.2.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/master/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@10.12.1...firebase@10.12.2)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-27 23:52:59 +00:00
github-actions[bot] b845104873 Merge pull request #48 from musix-org/dependabot/npm_and_yarn/v2/discord.js-14.15.2
Bump discord.js from 14.14.1 to 14.15.2
2024-05-22 23:38:54 +00:00
dependabot[bot] f6d7cf0497 Bump discord.js from 14.14.1 to 14.15.2
Bumps [discord.js](https://github.com/discordjs/discord.js/tree/HEAD/packages/discord.js) from 14.14.1 to 14.15.2.
- [Release notes](https://github.com/discordjs/discord.js/releases)
- [Changelog](https://github.com/discordjs/discord.js/blob/main/packages/discord.js/CHANGELOG.md)
- [Commits](https://github.com/discordjs/discord.js/commits/14.15.2/packages/discord.js)

---
updated-dependencies:
- dependency-name: discord.js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-22 23:38:44 +00:00
github-actions[bot] b38c636d5a Merge pull request #49 from musix-org/dependabot/npm_and_yarn/v2/discordjs/voice-0.17.0
Bump @discordjs/voice from 0.16.1 to 0.17.0
2024-05-22 23:38:17 +00:00
dependabot[bot] 8f4e823972 Bump @discordjs/voice from 0.16.1 to 0.17.0
Bumps [@discordjs/voice](https://github.com/discordjs/discord.js/tree/HEAD/packages/voice) from 0.16.1 to 0.17.0.
- [Release notes](https://github.com/discordjs/discord.js/releases)
- [Changelog](https://github.com/discordjs/discord.js/blob/main/packages/voice/CHANGELOG.md)
- [Commits](https://github.com/discordjs/discord.js/commits/@discordjs/voice@0.17.0/packages/voice)

---
updated-dependencies:
- dependency-name: "@discordjs/voice"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-22 23:38:07 +00:00
github-actions[bot] fa4a7c6618 Merge pull request #52 from musix-org/dependabot/npm_and_yarn/v2/firebase-10.12.1
Bump firebase from 10.11.0 to 10.12.1
2024-05-22 23:37:24 +00:00
dependabot[bot] ff94a8a095 ---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-22 23:37:13 +00:00
Christer Warén c0b20134b9 Merge branch 'master' into v2 2024-05-23 02:35:45 +03:00
Christer Warén 5d49d9f78c Merge pull request #54 from musix-org/dependabot/npm_and_yarn/v2/firebase-admin-12.1.1
Bump firebase-admin from 12.1.0 to 12.1.1
2024-05-23 02:28:29 +03:00
dependabot[bot] 90f391dd36 ---
updated-dependencies:
- dependency-name: firebase-admin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-21 23:24:00 +00:00
Christer Warén e46c6da5d9 Merge pull request #39 from musix-org/dependabot/npm_and_yarn/v2/firebase-10.11.0
Bump firebase from 10.10.0 to 10.11.0
2024-04-24 12:57:46 +03:00
dependabot[bot] 76bb9b6f12 Bump firebase from 10.10.0 to 10.11.0
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 10.10.0 to 10.11.0.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/master/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@10.10.0...firebase@10.11.0)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-24 09:57:29 +00:00
Christer Warén 1af8426853 Merge pull request #41 from musix-org/dependabot/npm_and_yarn/v2/firebase-admin-12.1.0
Bump firebase-admin from 12.0.0 to 12.1.0
2024-04-24 12:56:46 +03:00
dependabot[bot] 8d0c94e069 Bump firebase-admin from 12.0.0 to 12.1.0
Bumps [firebase-admin](https://github.com/firebase/firebase-admin-node) from 12.0.0 to 12.1.0.
- [Release notes](https://github.com/firebase/firebase-admin-node/releases)
- [Commits](https://github.com/firebase/firebase-admin-node/compare/v12.0.0...v12.1.0)

---
updated-dependencies:
- dependency-name: firebase-admin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-16 23:38:52 +00:00
Christer Warén 91a92c39a4 Merge pull request #38 from musix-org/dependabot/npm_and_yarn/v2/firebase-10.10.0
Bump firebase from 10.9.0 to 10.10.0
2024-03-31 00:01:54 +02:00
dependabot[bot] 415c29bf36 Bump firebase from 10.9.0 to 10.10.0
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 10.9.0 to 10.10.0.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/master/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@10.9.0...firebase@10.10.0)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-28 23:33:27 +00:00
Christer Warén ec3c18ff01 Merge pull request #35 from musix-org/dependabot/npm_and_yarn/v2/firebase-10.9.0
Bump firebase from 10.8.1 to 10.9.0
2024-03-15 16:31:00 +02:00
dependabot[bot] 8d9a155dd2 Bump firebase from 10.8.1 to 10.9.0
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 10.8.1 to 10.9.0.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/master/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@10.8.1...firebase@10.9.0)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-14 23:11:36 +00:00
Christer Warén 09c6d5b117 Update 2024-03-06 02:32:44 +02:00
Christer Warén 75a080a399 Merge pull request #33 from musix-org/dependabot/npm_and_yarn/v2/firebase-10.8.1
Bump firebase from 10.8.0 to 10.8.1
2024-02-29 04:13:35 +02:00
dependabot[bot] 79b7e9d3cd Bump firebase from 10.8.0 to 10.8.1
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 10.8.0 to 10.8.1.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/master/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@10.8.0...firebase@10.8.1)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-28 23:11:18 +00:00
Christer Warén 0ba6e28efd Merge pull request #31 from musix-org/dependabot/npm_and_yarn/v2/nodemon-3.1.0
Bump nodemon from 3.0.3 to 3.1.0
2024-02-24 19:01:29 +02:00
dependabot[bot] 1616a1783a Bump nodemon from 3.0.3 to 3.1.0
Bumps [nodemon](https://github.com/remy/nodemon) from 3.0.3 to 3.1.0.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v3.0.3...v3.1.0)

---
updated-dependencies:
- dependency-name: nodemon
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-23 00:16:31 +00:00
Christer Warén 67301e72ff Merge pull request #28 from musix-org/dependabot/npm_and_yarn/v2/dotenv-16.4.5
Bump dotenv from 16.4.4 to 16.4.5
2024-02-21 20:52:25 +02:00
dependabot[bot] 8be4ff7357 Bump dotenv from 16.4.4 to 16.4.5
Bumps [dotenv](https://github.com/motdotla/dotenv) from 16.4.4 to 16.4.5.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v16.4.4...v16.4.5)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-20 23:54:21 +00:00
Christer Warén 7f372b5a5b Merge pull request #26 from musix-org/dependabot/npm_and_yarn/v2/dotenv-16.4.4
Bump dotenv from 16.4.1 to 16.4.4
2024-02-14 15:20:25 +02:00
dependabot[bot] 8068fb5027 Bump dotenv from 16.4.1 to 16.4.4
Bumps [dotenv](https://github.com/motdotla/dotenv) from 16.4.1 to 16.4.4.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v16.4.1...v16.4.4)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-13 23:30:15 +00:00
Christer Warén 9049a5e6b8 Fix code to work on this decade 1/x 2024-02-09 11:53:30 +02:00
Christer Warén d609687957 Merge branch 'master' into v2 2024-02-09 07:58:16 +02:00
Christer Warén da226c0377 Merge pull request #22 from musix-org/dependabot/npm_and_yarn/v2/ms-2.1.3
Bump ms from 2.1.2 to 2.1.3
2024-02-09 07:28:38 +02:00
Christer Warén f6f7998602 Merge pull request #21 from musix-org/dependabot/npm_and_yarn/v2/firebase-admin-12.0.0
Bump firebase-admin from 8.11.0 to 12.0.0
2024-02-09 07:28:30 +02:00
Christer Warén 81e043808d Merge pull request #20 from musix-org/dependabot/npm_and_yarn/v2/ytdl-core-4.11.5
Bump ytdl-core from 0.29.7 to 4.11.5
2024-02-09 07:28:21 +02:00
dependabot[bot] a7f95ddfa4 Bump ms from 2.1.2 to 2.1.3
Bumps [ms](https://github.com/vercel/ms) from 2.1.2 to 2.1.3.
- [Release notes](https://github.com/vercel/ms/releases)
- [Commits](https://github.com/vercel/ms/compare/2.1.2...2.1.3)

---
updated-dependencies:
- dependency-name: ms
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-09 00:04:08 +00:00
dependabot[bot] 7797656765 Bump firebase-admin from 8.11.0 to 12.0.0
Bumps [firebase-admin](https://github.com/firebase/firebase-admin-node) from 8.11.0 to 12.0.0.
- [Release notes](https://github.com/firebase/firebase-admin-node/releases)
- [Commits](https://github.com/firebase/firebase-admin-node/compare/v8.11.0...v12.0.0)

---
updated-dependencies:
- dependency-name: firebase-admin
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-09 00:03:56 +00:00
dependabot[bot] 0907e52d9f Bump ytdl-core from 0.29.7 to 4.11.5
Bumps [ytdl-core](https://github.com/fent/node-ytdl-core) from 0.29.7 to 4.11.5.
- [Release notes](https://github.com/fent/node-ytdl-core/releases)
- [Commits](https://github.com/fent/node-ytdl-core/compare/v0.29.7...v4.11.5)

---
updated-dependencies:
- dependency-name: ytdl-core
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-09 00:03:40 +00:00
Christer Warén 39f27c4f1a Merge branch 'master' into v2 2024-02-09 00:09:31 +02:00
Christer Warén f9a1347cc5 Merge branch 'master' into v2 2024-02-09 00:06:40 +02:00
Christer Warén 9af70c1612 Merge pull request #11 from musix-org/dependabot/npm_and_yarn/v2/discord.js-14.14.1
Bump discord.js from 11.6.4 to 14.14.1
2024-02-09 00:02:31 +02:00
dependabot[bot] ef34822636 Bump discord.js from 11.6.4 to 14.14.1
Bumps [discord.js](https://github.com/discordjs/discord.js/tree/HEAD/packages/discord.js) from 11.6.4 to 14.14.1.
- [Release notes](https://github.com/discordjs/discord.js/releases)
- [Changelog](https://github.com/discordjs/discord.js/blob/main/packages/discord.js/CHANGELOG.md)
- [Commits](https://github.com/discordjs/discord.js/commits/14.14.1/packages/discord.js)

---
updated-dependencies:
- dependency-name: discord.js
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-08 22:02:03 +00:00
Christer Warén 5afa15fbba Merge pull request #7 from musix-org/dependabot/npm_and_yarn/v2/dblapi.js-2.4.1
Bump dblapi.js from 2.4.0 to 2.4.1
2024-02-09 00:01:18 +02:00
Christer Warén e92eb0b7df Merge pull request #9 from musix-org/dependabot/npm_and_yarn/v2/firebase-10.8.0
Bump firebase from 6.6.2 to 10.8.0
2024-02-09 00:01:03 +02:00
dependabot[bot] ce9d7fab14 Bump firebase from 6.6.2 to 10.8.0
Bumps [firebase](https://github.com/firebase/firebase-js-sdk) from 6.6.2 to 10.8.0.
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/master/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@6.6.2...firebase@10.8.0)

---
updated-dependencies:
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-08 21:58:36 +00:00
dependabot[bot] cb5b830f48 Bump dblapi.js from 2.4.0 to 2.4.1
Bumps [dblapi.js](https://github.com/top-gg/dblapi.js) from 2.4.0 to 2.4.1.
- [Release notes](https://github.com/top-gg/dblapi.js/releases)
- [Commits](https://github.com/top-gg/dblapi.js/compare/v2.4.0...v2.4.1)

---
updated-dependencies:
- dependency-name: dblapi.js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-08 21:58:30 +00:00
Christer Warén 7d6873344c Merge pull request #14 from musix-org/dependabot/npm_and_yarn/v2/ffmpeg-static-5.2.0
Bump ffmpeg-static from 4.2.0 to 5.2.0
2024-02-08 23:57:25 +02:00
dependabot[bot] 9970e70a4f Bump ffmpeg-static from 4.2.0 to 5.2.0
Bumps [ffmpeg-static](https://github.com/eugeneware/ffmpeg-static) from 4.2.0 to 5.2.0.
- [Release notes](https://github.com/eugeneware/ffmpeg-static/releases)
- [Commits](https://github.com/eugeneware/ffmpeg-static/compare/v4.2.0...5.2.0)

---
updated-dependencies:
- dependency-name: ffmpeg-static
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-08 21:56:27 +00:00
Christer Warén 7aaa15f30b Merge pull request #5 from musix-org/dependabot/npm_and_yarn/v2/dotenv-16.4.1
Bump dotenv from 8.2.0 to 16.4.1
2024-02-08 23:52:58 +02:00
dependabot[bot] 65ccc7349d Bump dotenv from 8.2.0 to 16.4.1
Bumps [dotenv](https://github.com/motdotla/dotenv) from 8.2.0 to 16.4.1.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v8.2.0...v16.4.1)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-08 21:52:20 +00:00
Christer Warén 978398b04e Merge branch 'master' into v2 2024-02-08 23:28:23 +02:00
Christer Warén 59d6fbb911 Update README.md 2024-02-08 17:39:40 +02:00
Christer Warén 2c935d4926 Merge remote-tracking branch 'musix-v2/master' into v2 2024-02-08 17:33:47 +02:00
Matte c9dc8bc587 Merge pull request #17 from Musix-Development/dependabot/npm_and_yarn/websocket-extensions-0.1.4
Bump websocket-extensions from 0.1.3 to 0.1.4
2021-07-01 02:34:27 +03:00
Matte e92c058979 Merge pull request #18 from Musix-Development/dependabot/npm_and_yarn/y18n-3.2.2
Bump y18n from 3.2.1 to 3.2.2
2021-07-01 02:34:19 +03:00
Matte 985f34493f Merge pull request #19 from Musix-Development/dependabot/npm_and_yarn/ws-6.2.2
Bump ws from 6.2.1 to 6.2.2
2021-07-01 02:34:10 +03:00
dependabot[bot] cf77259d5a Bump ws from 6.2.1 to 6.2.2
Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-06 16:27:01 +00:00
dependabot[bot] 21d9a3f76a Bump y18n from 3.2.1 to 3.2.2
Bumps [y18n](https://github.com/yargs/y18n) from 3.2.1 to 3.2.2.
- [Release notes](https://github.com/yargs/y18n/releases)
- [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/y18n/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-31 20:26:04 +00:00
Matte 5e9a446b55 Update README.md 2020-07-19 13:34:39 +03:00
dependabot[bot] 852c8f7f21 Bump websocket-extensions from 0.1.3 to 0.1.4
Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/faye/websocket-extensions-node/releases)
- [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-19 10:33:24 +00:00
MatteZ02 b50d826dd0 version and updated modules 2020-04-29 12:15:49 +03:00
Matte 4a74bc8871 Update config.js 2020-01-21 15:08:55 +02:00
MatteZ02 8723ddc7b6 Update config.js 2020-01-13 12:37:12 +02:00
MatteZ02 2caac65a35 Update handleVideo.js 2020-01-01 21:39:29 +02:00
MatteZ02 f1b93642c3 Merge branch 'master' of https://github.com/MatteZ02/Musix-V2 2020-01-01 19:06:01 +02:00
MatteZ02 7d3c2dd416 Added shuffle command 2020-01-01 19:05:50 +02:00
Matte cce24d05a1 Update status.js 2019-12-24 15:21:34 +02:00
MatteZ02 decc53083f Merge branch 'master' of https://github.com/MatteZ02/Musix-V2 2019-12-18 17:21:43 +02:00
MatteZ02 018fec70a6 Songselection won't take input from other users 2019-12-18 17:21:40 +02:00
Matte 06011e0cc3 Update Client.js 2019-12-17 04:12:12 +02:00
Matte 9f17804f86 Update ready.js 2019-12-16 23:10:06 +02:00
MatteZ02 96c9552660 Update ready.js 2019-12-16 21:16:36 +02:00
MatteZ02 2e31350def ffmpeg error detections system 2019-12-16 21:01:42 +02:00
MatteZ02 069ba70cb5 Update config.js 2019-12-06 15:29:42 +02:00
MatteZ02 60b9fc6b9b Merge branch 'master' of https://github.com/MatteZ02/Musix-V2 2019-12-05 15:17:17 +02:00
MatteZ02 faa80e6749 big update 2019-12-05 15:17:15 +02:00
Matte dfc360368c Update loop.js 2019-11-27 14:06:24 +02:00
Matte 5d34e80312 Update queue.js 2019-11-27 14:05:27 +02:00
MatteZ02 b83ee14cba cmduses 2019-11-25 20:48:56 +02:00
MatteZ02 f6d82709be Update message.js 2019-11-25 20:04:40 +02:00
MatteZ02 6d23063a30 fixed dev bypass 2019-11-23 15:03:08 +02:00
MatteZ02 afd2b3600f Update play.js 2019-11-23 10:38:43 +02:00
MatteZ02 65ef473f0d Update play.js 2019-11-23 09:31:40 +02:00
MatteZ02 202743e63b patched the error if skipping when nothing is playing 2019-11-23 09:17:43 +02:00
MatteZ02 0c72a2d9b1 Updated the way currently playing music is declared.
This should get arid of the problem when skipping/stopping music causes the bot to error.
2019-11-22 20:51:41 +02:00
MatteZ02 a05b069f99 Update delete.js 2019-11-20 08:05:01 +02:00
MatteZ02 f76769d512 Update delete.js 2019-11-19 18:10:20 +02:00
MatteZ02 3d391a685a playlist patch 2019-11-19 18:08:00 +02:00
MatteZ02 698bb0eb9b Voteskip 2019-11-19 15:59:14 +02:00
MatteZ02 c32d592074 fixed songSelection setting 2019-11-18 20:36:18 +02:00
MatteZ02 79a53ecb03 added songselection setting 2019-11-14 20:23:51 +02:00
MatteZ02 1190bd7de3 Option for song selection 2019-11-14 19:56:01 +02:00
MatteZ02 89d010e2e5 Update ready.js 2019-11-11 15:55:32 +02:00
MatteZ02 67bc85b47e Update ready.js 2019-11-05 19:28:03 +02:00
MatteZ02 c2490b94ed Update setDj.js 2019-11-03 13:55:04 +02:00
MatteZ02 bc7e31a05f Update index.js 2019-11-03 10:04:23 +02:00
MatteZ02 e5dd77d3b9 Update ready.js 2019-11-03 09:55:54 +02:00
MatteZ02 25f76daf88 Update add.js 2019-11-03 09:53:40 +02:00
MatteZ02 97adfdbf86 Update skip.js 2019-11-02 08:56:39 +02:00
MatteZ02 176960fa24 fixed apikey 2019-11-01 14:37:31 +02:00
MatteZ02 2d8143cea5 Fixed after christer. Updated dev only commands. 2019-11-01 13:39:04 +02:00
Matte ac96a99e1c Merge pull request #16 from cwchristerw/changes
Changes
2019-11-01 10:56:22 +02:00
Christer Warén 41022e98c0 Update eval.js 2019-10-31 23:49:48 +02:00
Christer Warén c17baf973a Update seek.js 2019-10-31 23:49:14 +02:00
Christer Warén 8f4df31a66 Update remove.js 2019-10-31 23:48:38 +02:00
Christer Warén e6263db933 Update exe.js 2019-10-31 23:47:17 +02:00
Christer Warén e101d780e7 Update forcestop.js 2019-10-31 23:45:58 +02:00
Christer Warén 82b2bc9916 Update resume.js 2019-10-31 23:45:16 +02:00
Christer Warén a637d929f5 Update pause.js 2019-10-31 23:44:37 +02:00
Christer Warén 2cae32c926 Update loop.js 2019-10-31 23:43:43 +02:00
Christer Warén b5590e1c7f Update playlist.js 2019-10-31 23:42:23 +02:00
Christer Warén 9210c41d83 Update message.js 2019-10-31 23:40:50 +02:00
Christer Warén 363f7fa49c Update guildcreate.js 2019-10-31 23:35:57 +02:00
Christer Warén 3166c44ac8 Update ready.js 2019-10-31 23:32:47 +02:00
Christer Warén 1cc363d6c8 Update settings.js 2019-10-31 21:10:53 +02:00
Christer Warén 6f893516d8 Update playlist.js 2019-10-31 21:10:24 +02:00
Christer Warén 17c1369765 Update handleVideo.js 2019-10-31 21:09:35 +02:00
Christer Warén 3fec29be3b Update exe.js 2019-10-31 21:08:45 +02:00
Christer Warén 2820622a70 Update index.js
process.env.DISCORD_TOKEN
process.env.DISCORD_DEV_UID
process.env.DISCORD_DEBUG_CHANNEL_ID
process.env.YOUTUBE_KEY
process.env.DBL_TOKEN
process.env.PREFIX
2019-10-31 21:05:51 +02:00
Christer Warén 9b98935e9d Update message.js 2019-10-31 20:49:23 +02:00
Christer Warén 3c3df91675 Update index.js 2019-10-31 20:47:39 +02:00
Christer Warén a656e315aa Merge pull request #16 from cwchristerw/changing-dependencies
Update package.json
2019-10-31 20:41:08 +02:00
Christer Warén f1af6f7462 Merge pull request #15 from MatteZ02/master
Option handler for playlists and settings. Exe function to execute co…
2019-10-31 20:36:58 +02:00
MatteZ02 8615735431 Option handler for playlists and settings. Exe function to execute command files. Command aliases updated. 2019-10-31 20:29:26 +02:00
Christer Warén e1091e03b3 Update package.json 2019-10-31 17:05:44 +02:00
Christer Warén b1e9c260e3 Merge pull request #9 from MatteZ02/master
Base to Fork
2019-10-31 15:57:26 +02:00
Matte 1899c8647b Merge pull request #10 from cwchristerw/update-package-json
Added repository to package.json
2019-10-31 15:16:28 +02:00
Christer Warén 046fd1ab0f Added repository 2019-10-31 14:13:21 +02:00
Christer Warén 1f310190d9 Merge pull request #8 from MatteZ02/master
Base to Fork
2019-10-31 13:58:30 +02:00
MatteZ02 0bfa09209a Update play.js 2019-10-29 17:47:57 +02:00
MatteZ02 6aa654c9e7 Update message.js 2019-10-27 18:06:48 +02:00
MatteZ02 f79b120334 Update index.js 2019-10-25 22:47:09 +03:00
MatteZ02 b40bc72ead Update volume.js 2019-10-24 21:02:44 +03:00
MatteZ02 a72818583f Update index.js 2019-10-24 21:00:05 +03:00
MatteZ02 81d9896f88 Merge branch 'master' of https://github.com/MatteZ02/Musix-V2 2019-10-24 20:56:20 +03:00
MatteZ02 1a858fe31b Update nowplaying.js 2019-10-24 20:56:17 +03:00
Matte b9d6f01b32 Update playlist.js 2019-10-24 20:30:54 +03:00
MatteZ02 54f3b6ca70 Update settings.js 2019-10-24 20:23:37 +03:00
MatteZ02 7162be204d Update settings.js 2019-10-24 20:21:55 +03:00
MatteZ02 38c0103281 More powerful number handling. Setting whether to announce songs starting to play. Remove command fixes 2019-10-24 20:11:08 +03:00
MatteZ02 bd9ef87dde Song author and remove command 2019-10-24 19:29:04 +03:00
MatteZ02 72e600454f Update playlist.js 2019-10-23 20:45:22 +03:00
Matte 1917fe7784 too small dealy 2019-10-22 18:42:37 +03:00
MatteZ02 9b71cc6efe Update ready.js 2019-10-22 18:40:42 +03:00
MatteZ02 ad67d626e8 Update index.js 2019-10-22 18:34:45 +03:00
MatteZ02 c227d49113 Update status 2019-10-22 18:28:15 +03:00
Matte 97e9da5628 Update playlist.js 2019-10-21 14:58:27 +03:00
Matte 88806ad7b2 Update play.js 2019-10-21 14:57:31 +03:00
Matte 7b20498221 Update playlist.js 2019-10-20 22:53:51 +03:00
Matte 0be11ffedd Update play.js 2019-10-20 22:53:12 +03:00
MatteZ02 74548e8f88 local fix 2019-10-20 22:24:22 +03:00
MatteZ02 ed2d3368a1 fix? 2019-10-20 22:19:42 +03:00
MatteZ02 b6f7ddbbf9 Update play.js 2019-10-20 21:33:28 +03:00
MatteZ02 6c9ce70873 Update play.js 2019-10-20 21:32:24 +03:00
MatteZ02 e19e5f7656 Update play.js 2019-10-20 21:29:57 +03:00
MatteZ02 03ec1ddf64 Merge branch 'master' of https://github.com/MatteZ02/Musix-V2 2019-10-20 21:28:34 +03:00
MatteZ02 65cd122c7b update modules 2019-10-20 21:28:25 +03:00
Matte abd09f6b0c Update playlist.js 2019-10-20 21:23:35 +03:00
Matte 9f571c10d7 Update play.js 2019-10-20 21:21:51 +03:00
MatteZ02 1d0fcb6fae update modules 2019-10-20 21:17:53 +03:00
Matte 6d98488f40 Update play.js 2019-10-20 20:59:53 +03:00
Matte 102b10df79 Update play.js 2019-10-20 20:59:17 +03:00
Matte ee0d66c554 Update stop.js 2019-10-20 20:57:21 +03:00
Matte 52de7012d3 Update forcestop.js 2019-10-20 20:54:32 +03:00
Matte 50821c2b2b Update forcestop.js 2019-10-20 20:46:57 +03:00
MatteZ02 34aeeede66 Create forcestop.js 2019-10-20 20:31:37 +03:00
MatteZ02 a6d4dcbcd5 update 2019-10-18 21:44:15 +03:00
MatteZ02 83945c779a error logs 2019-10-18 16:01:26 +03:00
Matte e34fb2d069 Update index.js 2019-10-17 08:26:10 +03:00
MatteZ02 2366f7e3a6 Update 2019-10-16 14:20:49 +03:00
Matte 4b7b90a5e2 Update status.js 2019-10-14 19:20:38 +03:00
Matte 224b8cd839 Update message.js 2019-10-13 21:08:04 +03:00
Matte 5007962c4e Update index.js 2019-10-13 21:07:46 +03:00
MatteZ02 f2d105d5e2 Added commands to playlist 2019-10-13 20:52:51 +03:00
MatteZ02 55c3ff293b Update playlist.js 2019-10-13 16:01:46 +03:00
MatteZ02 3bc49ad955 Update playlist.js 2019-10-13 15:58:46 +03:00
MatteZ02 44e05abfe6 Update playlist.js 2019-10-13 13:59:41 +03:00
MatteZ02 ca61906f57 DJ role support 2019-10-13 10:33:59 +03:00
MatteZ02 1b4dd3921b Update ready.js 2019-10-12 18:56:44 +03:00
MatteZ02 198130700c Update settings.js 2019-10-12 18:25:19 +03:00
MatteZ02 af5e40975c Update settings.js 2019-10-12 18:23:18 +03:00
MatteZ02 d096810907 Update ready.js 2019-10-12 18:06:27 +03:00
MatteZ02 fbb007e67a Update ready.js 2019-10-12 18:03:15 +03:00
MatteZ02 c716867b8d Addition to the playlists 2019-10-12 18:01:13 +03:00
MatteZ02 ff2845c6cb Update message.js 2019-10-12 17:42:27 +03:00
MatteZ02 a8cde6abca Saved queues 2019-10-12 17:40:00 +03:00
MatteZ02 e8f30cd706 Update eval.js 2019-10-12 13:43:09 +03:00
MatteZ02 271c16a4c0 removed console.lgos 2019-10-12 13:38:12 +03:00
MatteZ02 59b578c5a5 editing console logs 2019-10-12 13:34:38 +03:00
MatteZ02 81f317105b Added consolelogs 2019-10-12 13:31:07 +03:00
MatteZ02 970ec44de8 Updated looping 2019-10-12 12:49:24 +03:00
MatteZ02 8c117edd1e Revert "Update package-lock.json"
This reverts commit 0794bbf3e5.
2019-10-12 11:16:08 +03:00
MatteZ02 f4eb7b06f7 Revert "added ffmpeg"
This reverts commit db12d61eae.
2019-10-12 11:16:03 +03:00
MatteZ02 c8e7d7476f Revert "Update ready.js"
This reverts commit eceb55edff.
2019-10-12 11:14:21 +03:00
MatteZ02 6ef55d2255 Revert "Updated looping function"
This reverts commit 6ebbf0216d.
2019-10-12 11:14:12 +03:00
MatteZ02 fc2d513694 Revert "removed ffmpeg"
This reverts commit ac62125d3f.
2019-10-12 11:14:09 +03:00
MatteZ02 62ebb54c1a Revert "Update index.js"
This reverts commit 1643abd605.
2019-10-12 11:14:04 +03:00
MatteZ02 2515e781b8 Revert "Update play.js"
This reverts commit 9821119f3d.
2019-10-12 11:13:58 +03:00
MatteZ02 879efe23b9 Revert "Update play.js"
This reverts commit 10288ed81e.
2019-10-12 11:13:55 +03:00
MatteZ02 301eb70ea9 Revert "Added ffmpeg"
This reverts commit 2f2b551ea8.
2019-10-12 11:13:53 +03:00
MatteZ02 4750756ac0 Revert "removed ffmpeg"
This reverts commit e55c26c2b1.
2019-10-12 11:13:49 +03:00
MatteZ02 c296bb4b47 Revert "removed ffmpeg"
This reverts commit 18b240ed06.
2019-10-12 11:13:46 +03:00
MatteZ02 0382c8ef82 Revert "Update ready.js"
This reverts commit 20316ede3a.
2019-10-12 11:13:38 +03:00
MatteZ02 20316ede3a Update ready.js 2019-10-12 10:54:24 +03:00
MatteZ02 18b240ed06 removed ffmpeg 2019-10-12 10:34:55 +03:00
MatteZ02 e55c26c2b1 removed ffmpeg 2019-10-12 10:27:44 +03:00
MatteZ02 2f2b551ea8 Added ffmpeg 2019-10-12 10:22:00 +03:00
MatteZ02 10288ed81e Update play.js 2019-10-12 10:18:05 +03:00
MatteZ02 9821119f3d Update play.js 2019-10-12 10:16:46 +03:00
MatteZ02 1643abd605 Update index.js 2019-10-12 10:07:43 +03:00
MatteZ02 ac62125d3f removed ffmpeg 2019-10-12 10:05:55 +03:00
MatteZ02 6ebbf0216d Updated looping function 2019-10-12 10:05:21 +03:00
MatteZ02 eceb55edff Update ready.js 2019-10-12 08:40:22 +03:00
Christer Warén e6eba1b38f Merge pull request #7 from MatteZ02/master
Base to Fork
2019-10-11 23:51:55 +03:00
MatteZ02 db12d61eae added ffmpeg 2019-10-11 21:50:31 +03:00
MatteZ02 0794bbf3e5 Update package-lock.json 2019-10-11 21:43:29 +03:00
Matte e19dd1676e Merge pull request #8 from cwchristerw/fix-7
HTML decoding titles in Song Selection
2019-10-11 21:13:03 +03:00
Christer Warén a271bbe8f8 Adding he to dependencies in package.json 2019-10-11 21:03:57 +03:00
Christer Warén ffbdc173f6 Update play.js 2019-10-11 21:02:37 +03:00
MatteZ02 1145d92556 Update play.js 2019-10-11 20:50:49 +03:00
Christer Warén 208c1dfdc1 Merge pull request #6 from MatteZ02/master
Update play.js
2019-10-11 20:40:32 +03:00
MatteZ02 4bda51e696 Update play.js 2019-10-11 20:36:46 +03:00
Christer Warén 967aeeb3ff Merge pull request #5 from MatteZ02/master
Base to Fork
2019-10-11 20:33:59 +03:00
MatteZ02 fb8ae3cf35 Fix for the database error 2019-10-11 18:50:22 +03:00
MatteZ02 873f0c8e1e Update message.js 2019-10-11 15:02:15 +03:00
MatteZ02 f23385a151 Merge branch 'master' of https://github.com/MatteZ02/Musix-V2 2019-10-11 14:58:28 +03:00
MatteZ02 ebc3cd1827 Update README.md 2019-10-11 14:58:15 +03:00
Matte 3b4e592a5f Merge pull request #5 from cwchristerw/homepage-address-package-json
Changing homepage address in package json
2019-10-11 14:55:10 +03:00
Christer Warén b2b85321ee Changing homepage address in package.json 2019-10-11 14:50:00 +03:00
MatteZ02 6fc09e0400 Update README.md 2019-10-11 14:35:20 +03:00
MatteZ02 3a4327b95c Fixed 2019-10-11 14:30:10 +03:00
Christer Warén 8fa1840d06 Merge pull request #2 from MatteZ02/master
Base to Fork
2019-10-11 14:29:26 +03:00
MatteZ02 62a07834a8 Update index.js 2019-10-11 14:27:20 +03:00
Matte 6c108f5b71 Merge pull request #4 from cwchristerw/master
Adding start command to package.json
2019-10-11 14:25:19 +03:00
Christer Warén 49d4ed9e7f Update package.json 2019-10-11 14:24:27 +03:00
Christer Warén b6abb8de1d Merge pull request #1 from MatteZ02/master
Base to Fork
2019-10-11 14:23:50 +03:00
MatteZ02 66ca65577b Update .gitignore 2019-10-11 14:18:38 +03:00
MatteZ02 147fffaf8a Added packages 2019-10-11 14:13:40 +03:00
Matte a1a5076e1c Merge pull request #3 from cwchristerw/add-gitignore
Add .gitignore
2019-10-11 13:58:10 +03:00
Matte 25bf1229c9 Merge pull request #2 from cwchristerw/add-license-1
Add license 1
2019-10-11 13:57:45 +03:00
Christer Warén 0db5e4b71e Create .gitignore 2019-10-11 13:51:23 +03:00
Christer Warén 017dc5d1aa Create LICENSE 2019-10-11 13:48:05 +03:00
Christer Warén bafa248b79 Create README.md 2019-10-11 13:45:38 +03:00
MatteZ02 feea924d92 Update 2019-10-11 11:48:50 +03:00
MatteZ02 b3a83f3cf0 Removed modules 2019-10-10 16:58:48 +03:00
MatteZ02 50b9bed483 Updated 2019-10-10 16:43:04 +03:00
MatteZ02 6f6ac8a6fa Merge branch 'master' of https://github.com/MatteZ02/Musix-V2 2019-09-15 09:18:37 +03:00
MatteZ02 e4e99d76c9 Updated everything 2019-09-15 09:18:33 +03:00
Matte 9520ff629d Update README.md 2019-08-20 20:48:54 +03:00
MatteZ02 9d7e55b5ee updated all commands and removed some weird files 2019-08-14 15:26:33 +03:00
MatteZ02 29b40867a3 Update invite.js 2019-08-04 16:05:06 +03:00
MatteZ02 3388da95b9 Update invite.js 2019-08-04 16:02:31 +03:00
MatteZ02 e07ec319f2 Update invite.js 2019-08-04 16:00:05 +03:00
MatteZ02 e658301846 Delete duplicate.js 2019-08-04 08:53:04 +03:00
MatteZ02 ec93ed0a42 Duplicate command 2019-08-04 08:51:08 +03:00
MatteZ02 4ddef360fe Update index.js 2019-08-03 22:11:31 +03:00
MatteZ02 91e5d24e5b Update invite.js 2019-08-03 20:49:02 +03:00
MatteZ02 17a3ea3ae1 Update volume.js 2019-08-03 20:32:04 +03:00
MatteZ02 a9909c947c Update volume.js 2019-08-03 20:27:18 +03:00
MatteZ02 565ccfd9b6 Format update 2019-08-03 10:47:12 +03:00
MatteZ02 8c037a2b9a Format update 2019-08-03 10:19:32 +03:00
MatteZ02 21eda1f641 Format update 2019-08-03 09:49:03 +03:00
MatteZ02 b0341d8eb8 Args requirement 2019-08-03 09:46:34 +03:00
MatteZ02 e377b0d360 Update q.js 2019-08-03 09:43:48 +03:00
MatteZ02 ce23be4fa3 Update queue.js 2019-08-03 09:43:36 +03:00
MatteZ02 e82263af2f Queue format update 2019-08-03 09:27:25 +03:00
MatteZ02 134fb4f6a7 queue page 2 fix & info update 2019-08-02 21:35:25 +03:00
Matte b105fb1ea3 Update q.js 2019-08-02 20:24:15 +03:00
Matte 5eadbd6b95 Update p.js 2019-08-02 20:23:40 +03:00
Matte f23082f035 Update p.js 2019-08-02 20:22:07 +03:00
MatteZ02 fd1d99fbfb One letter commands 2019-08-02 15:14:45 +03:00
MatteZ02 e6c55a6fd8 Removed ffmpeg 2019-08-02 11:44:07 +03:00
MatteZ02 8fbc83b677 Musix theme update 2019-08-02 11:42:28 +03:00
Matte 3fba5f22db Create Procfile 2019-08-02 11:39:11 +03:00
Matte 4d0d611ae2 Delete yarn.lock 2019-08-02 11:37:09 +03:00
Matte 9e5b889a34 Update index.js 2019-08-02 11:34:15 +03:00
MatteZ02 bf618eecd7 Initial 2019-08-02 11:32:00 +03:00
Matte 6ae27ae369 Initial commit 2019-08-02 11:29:47 +03:00
109 changed files with 1710 additions and 3922 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
node_modules
.env
.vscode
node_modules
serviceAccount.json
+58
View File
@@ -0,0 +1,58 @@
const { Client, Collection } = require('discord.js');
const admin = require('firebase-admin');
require('dotenv/config');
module.exports = class extends Client {
constructor() {
super({
intents: [
"Guilds",
"GuildMessages",
"GuildVoiceStates",
"MessageContent"
],
disableMentions: "everyone",
disabledEvents: ["TYPING_START"]
});
this.commands = new Collection();
this.commandAliases = new Collection();
this.playlistCmd = new Collection();
this.settingCmd = new Collection();
this.events = new Collection();
this.queue = new Map();
this.funcs = {};
this.funcs.handleVideo = require('./funcs/handleVideo.js');
this.funcs.play = require('./funcs/play.js');
this.funcs.msToTime = require('./funcs/msToTime.js');
this.funcs.exe = require('./funcs/exe.js');
this.config = require('./config.js');
this.global = {
db: {
guilds: {},
playlists: {},
},
};
if(this.config.firebase.serviceAccount){
this.funcs.dbget = require('./funcs/dbget.js');
admin.initializeApp({
credential: admin.credential.cert(this.config.firebase.serviceAccount),
});
this.db = admin.firestore();
this.db.FieldValue = require('firebase-admin').firestore.FieldValue;
}
}
};
+3
View File
@@ -3,6 +3,9 @@ FROM docker.io/node:20-alpine
#Dependencies
RUN apk add --virtual .build-deps python3 make g++ gcc git
#Code Dependencies
RUN apk add --virtual .code-deps ffmpeg
WORKDIR /usr/src/app
COPY / /usr/src/app/
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2020-2024 Musix Org
Copyright (c) 2019-2024 Musix Org
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+21 -1
View File
@@ -1 +1,21 @@
# Musix OSS - V3
# Musix-V2
THIS VERSION OF MUSIX IS NO LONGER SUPPORTED!
## Discord music bot
Second version of Musix discord music bot.
Made with discord.js V11
NOTE! THIS BOT CANNOT BE USED AFTER OCTOBER 4TH 2020! This is due to new rules for bots by discord.
## Installation
npm install (idk how yarn works)
Some modules are outdated to updating is recommended!
## Usage
You will need you own .env file and serviceAccount.json for database!
+32
View File
@@ -0,0 +1,32 @@
const { EmbedBuilder } = require("discord.js");
module.exports = {
name: 'help',
description: 'Help command.',
alias: 'help',
cooldown: 5,
execute(message, args, client, prefix) {
const embed = new EmbedBuilder()
.setTitle(`Commands for ${client.user.username}!`)
.addFields(
{ name: `${prefix}play | ${prefix}p`, value: 'Play a song.', inline: true },
{ name: `${prefix}skip | ${prefix}s`, value: 'Skip a song.', inline: true },
{ name: `${prefix}queue | ${prefix}q`, value: 'Display the queue.', inline: true },
{ name: `${prefix}nowplaying | ${prefix}np`, value: 'Display what\'s currently playing.', inline: true },
{ name: `${prefix}remove | ${prefix}rm`, value: 'Remove songs from the queue.', inline: true },
{ name: `${prefix}volume`, value: 'Change or check the volume.', inline: true },
{ name: `${prefix}pause`, value: 'Pause the music.', inline: true },
{ name: `${prefix}resume`, value: 'Resume the music.', inline: true },
{ name: `${prefix}loop`, value: 'Loop the queue.', inline: true },
{ name: `${prefix}seek`, value: 'Seek music.', inline: true },
{ name: `${prefix}stop`, value: 'Stop the music, Clear the queue and leave the current voice channel.', inline: true },
{ name: `${prefix}invite`, value: 'Invite Musix.', inline: true },
{ name: `${prefix}status`, value: 'See different information for Musix.', inline: true },
{ name: `${prefix}settings`, value: 'Change the guild specific settings.', inline: true },
{ name: `${prefix}help`, value: 'Display the help.', inline: true }
)
.setAuthor({ name: client.user.username, iconURL: client.user.avatarURL()})
.setColor(client.config.embedColor)
return message.channel.send({ embeds: [embed] });
}
};
+15
View File
@@ -0,0 +1,15 @@
const { EmbedBuilder } = require("discord.js");
module.exports = {
name: 'invite',
description: 'Invite command.',
alias: 'invite',
cooldown: 5,
execute(message, args, client, prefix) {
const embed = new EmbedBuilder()
.setTitle(`Invite ${client.user.username} to your Discord server!`)
.setURL(`https://discord.com/oauth2/authorize?client_id=${client.user.id}&permissions=2184465408&scope=applications.commands+bot`)
.setColor(client.config.embedColor)
return message.channel.send({ embeds: [embed] });
}
};
+27
View File
@@ -0,0 +1,27 @@
const { PermissionFlagsBits } = require('discord.js');
module.exports = {
name: 'loop',
description: 'loop command.',
alias: 'loop',
cooldown: 10,
async execute(message, args, client, prefix) {
const serverQueue = client.queue.get(message.guild.id);
const permissions = message.channel.permissionsFor(message.author);
const voiceChannel = message.member.voice.channel;
if (!serverQueue) return message.channel.send(':x: There is nothing playing.');
if (voiceChannel !== serverQueue.voiceChannel) return message.channel.send(':x: I\'m sorry but you need to be in the same voice channel as Musix to loop the queue!');
if (client.global.db.guilds[message.guild.id].permissions === true) {
if (client.global.db.guilds[message.guild.id].dj) {
if (!message.member.roles.cache.has(client.global.db.guilds[message.guild.id].djrole)) return message.channel.send(':x: You need the `DJ` role to loop the queue!');
} else if (!permissions.has(PermissionFlagsBits.ManageChannels)) return message.channel.send(':x: You need the `MANAGE_MESSAGES` permission to loop the queue!');
}
if (!serverQueue.looping) {
serverQueue.looping = true;
message.channel.send(':repeat: Looping the queue now!');
} else {
serverQueue.looping = false;
message.channel.send(':repeat: No longer looping the queue!');
}
}
};
+27
View File
@@ -0,0 +1,27 @@
const { EmbedBuilder } = require('discord.js');
module.exports = {
name: 'nowplaying',
description: 'Now playing command.',
alias: 'np',
cooldown: 5,
async execute(message, args, client, prefix) {
const ytdl = require('ytdl-core');
const serverQueue = client.queue.get(message.guild.id);
if (!serverQueue) return message.channel.send(':x: There is nothing playing.');
if (!serverQueue.playing) return message.channel.send(':x: There is nothing playing.');
let data = await Promise.resolve(ytdl.getInfo(serverQueue.songs[0].url));
let songtime = (data.length_seconds * 1000).toFixed(0);
let completed = (serverQueue.connection.dispatcher.time).toFixed(0);
let barlength = 30;
let completedpercent = ((completed / songtime) * barlength).toFixed(0);
let array = []; for (let i = 0; i < completedpercent - 1; i++) { array.push('⎯'); } array.push('⭗'); for (let i = 0; i < barlength - completedpercent - 1; i++) { array.push('⎯'); }
const embed = new EmbedBuilder()
.setTitle("__Now playing__")
.setDescription(`🎶**Now playing:** ${serverQueue.songs[0].title}\n${array.join('')} | \`${client.funcs.msToTime(completed)} / ${client.funcs.msToTime(songtime)}\``)
.setFooter({ text: `Queued by ${serverQueue.songs[0].author.tag}` })
.setURL(serverQueue.songs[0].url)
.setColor(client.config.embedColor)
return message.channel.send({ embeds: [embed] });
}
};
+25
View File
@@ -0,0 +1,25 @@
const { PermissionFlagsBits } = require('discord.js');
module.exports = {
name: 'pause',
description: 'Pause command.',
alias: 'pause',
cooldown: 5,
execute(message, args, client, prefix) {
const serverQueue = client.queue.get(message.guild.id);
const permissions = message.channel.permissionsFor(message.author);
const voiceChannel = message.member.voice.channel;
if (!serverQueue) return message.channel.send(':x: There is nothing playing.');
if (serverQueue.playing && !serverQueue.paused) {
if (voiceChannel !== serverQueue.voiceChannel) return message.channel.send(':x: I\'m sorry but you need to be in the same voice channel as Musix to pause the music!');
if (client.global.db.guilds[message.guild.id].permissions === true) {
if (client.global.db.guilds[message.guild.id].dj) {
if (!message.member.roles.cache.has(client.global.db.guilds[message.guild.id].djrole)) return message.channel.send(':x: You need the `DJ` role to pause the music!');
} else if (!permissions.has(PermissionFlagsBits.ManageMessages)) return message.channel.send(':x: You need the `MANAGE_MESSAGES` permission to pause the music!');
}
serverQueue.paused = true;
serverQueue.audioPlayer.pause();
return message.channel.send('⏸ Paused the music!');
} else return message.channel.send(':x: There is nothing playing.');
}
};
+86
View File
@@ -0,0 +1,86 @@
const YouTube = require("simple-youtube-api");
const he = require('he');
const { EmbedBuilder, PermissionFlagsBits } = require("discord.js");
module.exports = {
name: 'play',
description: 'Play command.',
usage: '[song name]',
alias: 'p',
args: true,
cooldown: 3,
async execute(message, args, client, prefix) {
const youtube = new YouTube(client.config.youtube_api_key);
const searchString = args.slice(1).join(" ");
const url = args[1] ? args[1].replace(/<(.+)>/g, "$1") : "";
const serverQueue = client.queue.get(message.guild.id);
const voiceChannel = message.member.voice.channel;
if (!serverQueue) {
if (!voiceChannel) return message.channel.send(':x: I\'m sorry but you need to be in a voice channel to play music!');
} else {
if (voiceChannel !== serverQueue.voiceChannel) return message.channel.send(':x: I\'m sorry but you need to be in the same voice channel as Musix to play music!');
}
if (!args[1]) return message.channel.send(':x: You need to use a link or search for a song!');
const permissions = voiceChannel.permissionsFor(message.client.user);
if (!permissions.has(PermissionFlagsBits.Connect)) {
return message.channel.send(':x: I cannot connect to your voice channel, make sure I have the proper permissions!');
}
if (!permissions.has(PermissionFlagsBits.Speak)) {
return message.channel.send(':x: I cannot speak in your voice channel, make sure I have the proper permissions!');
}
if (url.match(/^https?:\/\/(www.youtube.com|youtube.com)\/playlist(.*)$/)) {
const playlist = await youtube.getPlaylist(url);
const videos = await playlist.getVideos();
for (const video of Object.values(videos)) {
const video2 = await youtube.getVideoByID(video.id);
await client.funcs.handleVideo(video2, message, voiceChannel, client, true);
}
return message.channel.send(`:white_check_mark: Playlist: **${playlist.title}** has been added to the queue!`);
} else if (client.global.db.guilds[message.guild.id].songSelection) {
try {
var video = await youtube.getVideo(url);
} catch (error) {
try {
var videos = await youtube.searchVideos(searchString, 10);
let index = 0;
const embed = new EmbedBuilder()
.setTitle("__Song Selection__")
.setDescription(`${videos.map(video2 => `**${++index}** ${he.decode(video2.title)} `).join('\n')}`)
.setFooter({ text: "Please provide a number ranging from 1-10 to select one of the search results." })
.setColor(client.config.embedColor)
message.channel.send({ embeds: [embed] });
try {
var response = await message.channel.awaitMessages({
filter: message2 => message2.content > 0 && message2.content < 11 && message2.author === message.author,
max: 1,
time: 10000,
errors: ['time']
});
} catch (err) {
console.error(err);
return message.channel.send(':x: Cancelling video selection');
}
const videoIndex = parseInt(response.first().content);
var video = await youtube.getVideoByID(videos[videoIndex - 1].id);
} catch (err) {
console.error(err);
return message.channel.send(':x: I could not obtain any search results!');
}
}
return client.funcs.handleVideo(video, message, voiceChannel, client, false);
} else {
try {
var video = await youtube.getVideo(url);
} catch (error) {
try {
var videos = await youtube.searchVideos(searchString, 1);
var video = await youtube.getVideoByID(videos[0].id);
} catch (err) {
console.error(err);
return message.channel.send(':x: I could not obtain any search results!');
}
}
return client.funcs.handleVideo(video, message, voiceChannel, client, false);
}
}
};
+44
View File
@@ -0,0 +1,44 @@
const YouTube = require("simple-youtube-api");
const he = require('he');
const { EmbedBuilder, PermissionFlagsBits } = require("discord.js");
module.exports = {
name: 'playlist',
usage: '[option]',
description: 'Save and load queues',
alias: 'pl',
cooldown: 10,
async execute(message, args, client, prefix) {
const embed = new EmbedBuilder()
.setTitle('Options for playlist!')
.addFields(
{ name: 'play', value: 'Play the guild specific queue.', inline: true },
{ name: 'save', value: 'Save the currently playing queue. Note that this will overwrite the currently saved queue!', inline: true },
{ name: 'add', value: 'Add songs to the playlist. Like song selection', inline: true },
{ name: 'remove', value: 'Remove songs from the playlist.', inline: true },
{ name: 'list', value: 'Display the playlist.', inline: true }
)
.setFooter({ text: `how to use: ${prefix}playlist <Option> <Optional option>` })
.setAuthor({ name: client.user.username, iconURL: client.user.avatarURL()})
.setColor(client.config.embedColor)
const permissions = message.channel.permissionsFor(message.author);
if (client.global.db.guilds[message.guild.id].dj) {
if (!message.member.roles.cache.has(client.global.db.guilds[message.guild.id].djrole)) return message.channel.send(':x: You need the `DJ` role to modify or play the playlist!');
} else if (!permissions.has(PermissionFlagsBits.ManageGuild)) return message.channel.send(':x: You need the `MANAGE_SERVER` permission to modify the playlist!');
if (client.global.db.guilds[message.guild.id].premium) {
if (args[1]) {
const optionName = args[1].toLowerCase();
const option = client.playlistCmd.get(optionName) || client.playlistCmd.find(cmd => cmd.aliases && cmd.aliases.includes(optionName));
if (!option) return message.channel.send({ embeds: [embed] });
try {
option.execute(message, args, client, prefix);
} catch (error) {
message.reply(`:x: there was an error trying to execute that option!`);
console.log(error);
}
} else {
return message.channel.send({ embeds: [embed] });
}
} else return message.channel.send(":x: This is not a premium guild!");
},
};
+53
View File
@@ -0,0 +1,53 @@
const YouTube = require("simple-youtube-api");
const he = require('he');
const { EmbedBuilder } = require("discord.js");
module.exports = {
name: 'add',
async execute(message, args, client, prefix) {
if (client.global.db.playlists[message.guild.id].saved) {
const serverQueue = client.queue.get(message.guild.id);
const youtube = new YouTube(client.config.youtube_api_key);
const searchString = args.slice(2).join(" ");
const url = args[2] ? args[2].replace(/<(.+)>/g, "$1") : "";
if (!args[2]) return message.channel.send(':x: You need to use a link or search for a song!');
try {
var video = await youtube.getVideo(url);
} catch (error) {
try {
var videos = await youtube.searchVideos(searchString, 10);
let index = 0;
const embed = new EmbedBuilder()
.setTitle("__Song Selection__")
.setDescription(`${videos.map(video2 => `**${++index}** ${he.decode(video2.title)} `).join('\n')}`)
.setFooter({ text: "Please provide a number ranging from 1-10 to select one of the search results." })
.setColor("#b50002")
message.channel.send({ embeds: [embed] });
try {
var response = await message.channel.awaitMessages({
filter: message2 => message2.content > 0 && message2.content < 11,
max: 1,
time: 10000,
errors: ['time']
});
} catch (err) {
console.error(err);
return message.channel.send(':x: Cancelling video selection');
}
const videoIndex = parseInt(response.first().content);
var video = await youtube.getVideoByID(videos[videoIndex - 1].id);
} catch (err) {
console.error(err);
return message.channel.send(':x: I could not obtain any search results!');
}
}
let song = {
id: video.id,
title: he.decode(video.title),
url: `https://www.youtube.com/watch?v=${video.id}`
}
client.global.db.playlists[message.guild.id].songs.push(song);
message.channel.send(`:white_check_mark: ${song.title} added to the playlist!`);
} else return message.channel.send(':x: There is no playlist saved! Start by using the save option!');
}
};
+11
View File
@@ -0,0 +1,11 @@
module.exports = {
name: 'delete',
async execute(message, args, client, prefix) {
client.global.db.playlists[message.guild.id] = {
songs: [],
firstSong: undefined,
saved: false,
};
message.channel.send(':wastebasket: Deleted the playlist.');
}
};
+24
View File
@@ -0,0 +1,24 @@
const { EmbedBuilder } = require("discord.js");
module.exports = {
name: 'list',
async execute(message, args, client, prefix) {
if (args[2]) {
if (isNaN(args[2])) return msg.channel.send(':x: I\'m sorry, But you need to enter a valid __number__.');
}
let page = parseInt(args[2]);
if (!page) page = 1;
let pagetext = `:page_facing_up: Page: ${page} :page_facing_up:`
let queuesongs = client.global.db.playlists[message.guild.id].songs.slice((page - 1) * 20, page * 20);
let queuemessage = `${queuesongs.map(song => `**#** ${song.title}`).join('\n')}`
const hashs = queuemessage.split('**#**').length;
for (let i = 0; i < hashs; i++) {
queuemessage = queuemessage.replace('**#**', `**${i + 1}**`);
}
const embed = new EmbedBuilder()
.setTitle("__playlist queue__")
.setDescription(`${pagetext}\n${queuemessage}`)
.setColor("#b50002")
return message.channel.send({ embeds: [embed] });
}
};
+69
View File
@@ -0,0 +1,69 @@
const { PermissionFlagsBits } = require("discord.js");
const { createAudioPlayer, getVoiceConnection, joinVoiceChannel, NoSubscriberBehavior } = require("@discordjs/voice");
module.exports = {
name: 'play',
async execute(message, args, client, prefix) {
const serverQueue = client.queue.get(message.guild.id);
const voiceChannel = message.member.voice.channel;
if (!voiceChannel) return message.channel.send(':x: I\'m sorry but you need to be in a voice channel to play music!');
const permissions = voiceChannel.permissionsFor(message.client.user);
if (!permissions.has(PermissionFlagsBits.Connect)) {
return message.channel.send(':x: I cannot connect to your voice channel, make sure I have the proper permissions!');
}
if (!permissions.has(PermissionFlagsBits.Speak)) {
return message.channel.send(':x: I cannot speak in your voice channel, make sure I have the proper permissions!');
}
let songs;
if (!voiceChannel) return message.channel.send(':x: I\'m sorry but you need to be in a voice channel to play music!');
if (args[2]) {
if (client.global.db.guilds[args[2]].premium && client.global.db.playlists[args[2]].saved) {
songs = client.global.db.playlists[args[2]].songs;
} else return message.channel.send(':x: There is no queue saved for this guild!')
} else {
songs = client.global.db.playlists[message.guild.id].songs;
}
if (client.global.db.playlists[message.guild.id].saved) {
if (!serverQueue) {
const construct = {
textChannel: message.channel,
voiceChannel: message.member.voice.channel,
connection: null,
audioPlayer: createAudioPlayer({
behaviors: {
noSubscriber: NoSubscriberBehavior.Play,
}
}),
songs: [...songs],
volume: client.global.db.guilds[message.guild.id].defaultVolume,
playing: false,
looping: false,
paused: false,
votes: 0,
voters: [],
votesNeeded: null
};
client.queue.set(message.guild.id, construct);
message.channel.send(":white_check_mark: Queue set!");
try {
const connection =
getVoiceConnection(voiceChannel.guild.id) ??
joinVoiceChannel({
channelId: voiceChannel.id,
guildId: voiceChannel.guild.id,
adapterCreator: voiceChannel.guild.voiceAdapterCreator
});
construct.connection = connection;
client.funcs.play(message.guild, construct.songs[0], client, message, 0, false);
} catch (error) {
client.queue.delete(message.guild.id);
return message.channel.send(`:x: An error occured: ${error}`);
}
} else {
serverQueue.audioPlayer.stop();
serverQueue.songs = [...client.global.db.playlists[message.guild.id].songs];
message.channel.send(":white_check_mark: Queue set!");
}
} else return message.channel.send(':x: There is no queue set for this server!')
}
};
+13
View File
@@ -0,0 +1,13 @@
module.exports = {
name: 'remove',
async execute(message, args, client, prefix) {
if (client.global.db.playlists[message.guild.id].saved) {
if (!args[2]) return message.channel.send(':x: Please provide a number on the position of the song that you wan\'t to remove!');
const songNum = parseInt(args[2]) - 1;
if (isNaN(songNum)) return message.channel.send(':x: You need to enter a __number__!');
if (parseInt(songNum) > client.global.db.playlists[message.guild.id].songs.size) return message.channel.send(`:x: There is only ${serverQueue.songs.size} amount of songs in the queue!`);
message.channel.send(`🗑️ removed \`${client.global.db.playlists[message.guild.id].songs[songNum].title}\` from the playlist!`);
return client.global.db.playlists[message.guild.id].songs.splice(songNum, 1);
} else return message.channel.send(':x: There is no playlist saved! Start by using the save option!');
}
};
+13
View File
@@ -0,0 +1,13 @@
module.exports = {
name: 'save',
async execute(message, args, client, prefix) {
const serverQueue = client.queue.get(message.guild.id);
if (!serverQueue) return message.channel.send(':x: There is nothing playing!');
client.global.db.playlists[message.guild.id] = {
songs: serverQueue.songs,
firstSong: serverQueue.songs[0],
saved: true,
};
message.channel.send(":white_check_mark: Queue saved!");
}
};
+39
View File
@@ -0,0 +1,39 @@
const { EmbedBuilder } = require("discord.js");
module.exports = {
name: 'queue',
description: 'Queue command.',
alias: 'q',
cooldown: 5,
async execute(message, args, client, prefix) {
const serverQueue = client.queue.get(message.guild.id);
if (!serverQueue) return message.channel.send(':x: There is nothing playing.');
if (args[1]) {
if (isNaN(args[1])) return msg.channel.send(':x: I\'m sorry, But you need to enter a valid __number__.');
}
let page = parseInt(args[1]);
if (!page) page = 1;
let pagetext = `:page_facing_up: Page: ${page} :page_facing_up:`
if (page === 1) pagetext = ':arrow_down: Next in queue :arrow_down:'
let queuesongs = serverQueue.songs.slice((page - 1) * 20 + 1, page * 20 + 1);
let queuemessage = `${queuesongs.map(song => `**#** ${song.title}`).join('\n')}`
const hashs = queuemessage.split('**#**').length;
for (let i = 0; i < hashs; i++) {
queuemessage = queuemessage.replace('**#**', `**${i + 1}**`);
}
if (!serverQueue.looping) {
const embed = new EmbedBuilder()
.setTitle("__Song queue__")
.setDescription(`**Now playing:** ${serverQueue.songs[0].title}🎶\n${pagetext}\n${queuemessage}`)
.setColor(client.config.embedColor)
return message.channel.send({ embeds: [embed] });
} else {
const embed = new EmbedBuilder()
.setTitle("__Song queue__")
.setDescription(`**Now playing:** ${serverQueue.songs[0].title}🎶\n${pagetext}\n${queuemessage}`)
.setFooter({ text: '🔁 Currently looping the queue!' })
.setColor(client.config.embedColor)
return message.channel.send({ embeds: [embed] });
}
}
};
+28
View File
@@ -0,0 +1,28 @@
const { PermissionFlagsBits } = require("discord.js");
module.exports = {
name: 'remove',
description: 'Remove command.',
alias: 'rm',
cooldown: 5,
execute(message, args, client, prefix) {
const voiceChannel = message.member.voice.channel;
const serverQueue = client.queue.get(message.guild.id);
const permissions = message.channel.permissionsFor(message.author);
if (!serverQueue) return message.channel.send(':x: There is nothing playing.');
if (!serverQueue.playing) return message.channel.send(':x: There is nothing playing');
if (!args[1]) return message.channel.send(':x: Please provide a song position in queue for me to remove!');
const pos = parseInt(args[1]);
if (isNaN(pos)) return message.channel.send(':x: You need to enter a number!');
if (pos === 0) return message.channel.send(':x: You can not remove the currently playing song!');
if (pos > serverQueue.songs.size) return message.channel.send(`:x: There is only ${serverQueue.songs.size} amount of songs in the queue!`);
if (voiceChannel !== serverQueue.voiceChannel) return message.channel.send(':x: I\'m sorry but you need to be in the same voice channel as Musix to remove songs!');
if (client.global.db.guilds[message.guild.id].dj) {
if (serverQueue.songs[pos].author !== message.author) {
if (!message.member.roles.cache.has(client.global.db.guilds[message.guild.id].djrole)) return message.channel.send(':x: You need the `DJ` role to remove songs queue by others!');
}
} else if (!permissions.has(PermissionFlagsBits.ManageMessages) && serverQueue.songs[pos].author !== message.author) return message.channel.send(':x: You need the `MANAGE_MESSAGES` permission to remove songs queued by others!');
message.channel.send(`🗑️ removed \`${serverQueue.songs[pos].title}\` from the queue!`);
return serverQueue.songs.splice(pos, 1);
}
};
+26
View File
@@ -0,0 +1,26 @@
const { PermissionFlagsBits } = require("discord.js");
module.exports = {
name: 'resume',
description: 'Resume command.',
alias: 'resume',
cooldown: 5,
execute(message, args, client, prefix) {
const serverQueue = client.queue.get(message.guild.id);
const permissions = message.channel.permissionsFor(message.author);
const voiceChannel = message.member.voice.channel;
if (!serverQueue) return message.channel.send(':x: There is nothing playing.');
if (serverQueue.playing && serverQueue.paused) {
if (voiceChannel !== serverQueue.voiceChannel) return message.channel.send(':x: I\'m sorry but you need to be in the same voice channel as Musix to loop the queue!');
if (client.global.db.guilds[message.guild.id].permissions === true) {
if (client.global.db.guilds[message.guild.id].dj) {
if (!message.member.roles.cache.has(client.global.db.guilds[message.guild.id].djrole)) return message.channel.send(':x: You need the `DJ` role to resume the music!');
} else if (!permissions.has(PermissionFlagsBits.ManageMessages)) return message.channel.send(':x: You need the `MANAGE_MESSAGES` permission to resume the music!');
}
serverQueue.paused = false;
serverQueue.audioPlayer.unpause();
return message.channel.send('▶ Resumed the music!');
}
return message.channel.send(':x: The music is not paused!');
}
};
+32
View File
@@ -0,0 +1,32 @@
const { PermissionFlagsBits } = require("discord.js");
module.exports = {
name: 'seek',
description: 'Seek music.',
alias: 'seek',
cooldown: 10,
async execute(message, args, client, prefix) {
const ytdl = require('ytdl-core');
const serverQueue = client.queue.get(message.guild.id);
const permissions = message.channel.permissionsFor(message.author);
const voiceChannel = message.member.voice.channel;
if (!serverQueue) return message.channel.send(':x: There is nothing playing.');
let data = await Promise.resolve(ytdl.getInfo(serverQueue.songs[0].url));
if (serverQueue.playing) {
if (voiceChannel !== serverQueue.voiceChannel) return message.channel.send(':x: I\'m sorry but you need to be in the same voice channel as Musix to seek the song!');
if (client.global.db.guilds[message.guild.id].permissions === true) {
if (client.global.db.guilds[message.guild.id].dj) {
if (!message.member.roles.cache.has(client.global.db.guilds[message.guild.id].djrole)) return message.channel.send(':x: You need the `DJ` role to seek the song!');
} else if (!permissions.has(PermissionFlagsBits.ManageMessages)) return message.channel.send(':x: You need the `MANAGE_MESSAGES` permission to seek the song!');
}
if (!args[1]) return message.channel.send(`:x: Correct usage: \`${prefix}seek <seeking point in seconds>\``);
const pos = parseInt(args[1])
if (isNaN(pos)) return message.channel.send(':x: I\'m sorry, But you need to enter a valid __number__.');
if (pos < 0) return message.channel.send(':x: The seeking point needs to be a positive number!');
if (pos > data.length_seconds) return message.channel.send(`:x: The lenght of this song is ${data.length_seconds} seconds! You can't seek further than that!`);
serverQueue.audioPlayer.stop();
client.funcs.play(message.guild, serverQueue.songs[0], client, message, pos, false);
} else {
message.channel.send(':x: There is nothing playing!');
}
}
};
+39
View File
@@ -0,0 +1,39 @@
const { EmbedBuilder, PermissionFlagsBits } = require("discord.js");
module.exports = {
name: 'settings',
usage: '[setting]',
description: 'Change the settings',
alias: 'settings',
cooldown: 10,
async execute(message, args, client, prefix) {
const embed = new EmbedBuilder()
.setTitle('Guild settings for Musix')
.addFields(
{ name: 'prefix', value: 'Change the guild specific prefix. (string)', inline: true},
{ name: 'volume', value: 'Change the default volume that the bot will start playing at. (number)', inline: true },
{ name: 'permissions', value: 'Change whether to require permissions to use eg `skip, stop, pause, loop, etc...`', inline: true },
{ name: 'setdj', value: 'Set a DJ role. This will allow chosen users to freely use all Musix commands. This will automatically set the `permissions` settings to true in order for the `DJ` role to have effect!', inline: true },
{ name: 'announcesongs', value: 'Whether to announce songs that start playing or not.' },
{ name: 'songselection', value: 'Will i ask to select a song from the top 10 queries or start playing the first result instantly.' }
)
.setFooter({ text: `how to use: ${prefix}settings <name> <value>` })
.setAuthor({ name: client.user.username, iconURL: client.user.avatarURL() })
.setColor(client.config.embedColor)
const permissions = message.channel.permissionsFor(message.author);
if (!permissions.has(PermissionFlagsBits.ManageGuild)) return message.channel.send(':x: You need the `MANAGE_SERVER` permission to change the settings!');
if (args[1]) {
const optionName = args[1].toLowerCase();
const option = client.settingCmd.get(optionName) || client.settingCmd.find(cmd => cmd.aliases && cmd.aliases.includes(optionName));
if (!option) return message.channel.send({ embeds: [embed] });
try {
option.execute(message, args, client, prefix);
} catch (error) {
message.reply(`:x: there was an error trying to execute that option!`);
console.log(error);
}
} else {
return message.channel.send({ embeds: [embed] });
}
},
};
+12
View File
@@ -0,0 +1,12 @@
module.exports = {
name: 'announcesongs',
async execute(message, args, client, prefix) {
if (client.global.db.guilds[message.guild.id].startPlaying) {
client.global.db.guilds[message.guild.id].startPlaying = false;
return message.channel.send(':white_check_mark: announcesongs now set to `false`!');
} else {
client.global.db.guilds[message.guild.id].startPlaying = true;
return message.channel.send(':white_check_mark: announcesongs now set to `true`!');
}
}
};
+17
View File
@@ -0,0 +1,17 @@
module.exports = {
name: 'permissions',
async execute(message, args, client, prefix) {
if (!args[2]) return message.channel.send(`🔒 Permission requirement: \`${client.global.db.guilds[message.guild.id].permissions}\``);
if (args[2] === 'true') {
if (!client.global.db.guilds[message.guild.id].permissions) {
client.global.db.guilds[message.guild.id].permissions = true;
message.channel.send(`:white_check_mark: Permissions requirement now set to: \`true\``);
} else return message.channel.send(':x: That value is already `true`!');
} else if (args[2] === 'false') {
if (client.global.db.guilds[message.guild.id].permissions) {
client.global.db.guilds[message.guild.id].permissions = false;
message.channel.send(`:white_check_mark: Permissions requirement now set to: \`false\``);
} else return message.channel.send(':x: That value is already `false`!');
} else return message.channel.send(':x: Please define a boolean! (true/false)');
}
};
+8
View File
@@ -0,0 +1,8 @@
module.exports = {
name: 'prefix',
async execute(message, args, client, prefix) {
if (!args[2]) return message.channel.send(`Current prefix: \`${client.global.db.guilds[message.guild.id].prefix}\``);
client.global.db.guilds[message.guild.id].prefix = args[2];
message.channel.send(`:white_check_mark: New prefix set to: \`${args[2]}\``);
}
};
+14
View File
@@ -0,0 +1,14 @@
module.exports = {
name: 'reset',
async execute(message, args, client, prefix) {
client.global.db.guilds[message.guild.id] = {
prefix: client.config.prefix,
defaultVolume: 5,
permissions: false,
premium: false,
dj: false,
djrole: null
};
message.channel.send(':white_check_mark: Reset __all__ guild settings!');
}
};
+28
View File
@@ -0,0 +1,28 @@
const { PermissionFlagsBits } = require("discord.js");
module.exports = {
name: 'setdj',
async execute(message, args, client, prefix) {
if (!client.global.db.guilds[message.guild.id].dj) {
if (!client.global.db.guilds[message.guild.id].permissions) {
client.global.db.guilds[message.guild.id].permissions = true;
}
if (message.guild.roles.cache.find(x => x.name === "DJ")) {
client.global.db.guilds[message.guild.id].djrole = message.guild.roles.cache.find(x => x.name === "DJ").id;
message.channel.send(':white_check_mark: I found a `DJ` role from this guild! This role is now the DJ role.');
client.global.db.guilds[message.guild.id].dj = true;
} else {
const permissions = message.channel.permissionsFor(message.client.user);
if (!permissions.has(PermissionFlagsBits.ManageRoles)) return message.channel.send(':x: I cannot create roles (Manage roles), make sure I have the proper permissions! I will need this permission to create a `DJ` role since i did not find one!');
message.guild.createRole({ name: 'DJ' })
.then(role => client.global.db.guilds[message.guild.id].djrole = role.id)
.catch(console.error)
client.global.db.guilds[message.guild.id].dj = true;
message.channel.send(':white_check_mark: I did not find a role `DJ` so i have created one for you!');
}
} else {
client.global.db.guilds[message.guild.id].dj = false;
message.channel.send(':white_check_mark: `DJ` now set to `false`');
}
}
};
+34
View File
@@ -0,0 +1,34 @@
module.exports = {
name: 'setpremium',
async execute(message, args, client, prefix) {
//if (message.author.id !== client.config.devId) return;
if (args[2]) {
const guild = client.guilds.get(args[2]);
if (!client.global.db.guilds[guild.id].premium) {
client.global.db.playlists[guild.id] = {
songs: [],
firstSong: undefined,
saved: false,
};
client.global.db.guilds[guild.id].premium = true;
message.channel.send(`:white_check_mark: Guild ${guild.name} | ${guild.id} is now premium! :tada:`)
} else {
client.global.db.guilds[guild.id].premium = false;
message.channel.send(`:white_check_mark: Guild ${guild.name} | ${guild.id} is no longer premium!`)
}
} else {
if (!client.global.db.guilds[message.guild.id].premium) {
client.global.db.playlists[message.guild.id] = {
songs: [],
firstSong: undefined,
saved: false,
};
client.global.db.guilds[message.guild.id].premium = true;
message.channel.send(':white_check_mark: This guild is now premium! :tada:')
} else {
client.global.db.guilds[message.guild.id].premium = false;
message.channel.send(":white_check_mark: This guild is no longer premium!")
}
}
}
};
+12
View File
@@ -0,0 +1,12 @@
module.exports = {
name: 'songselection',
async execute(message, args, client, prefix) {
if (!client.global.db.guilds[message.guild.id].songSelection) {
message.channel.send(':white_check_mark: Songselection now set to `true`!');
client.global.db.guilds[message.guild.id].songSelection = true;
} else {
client.global.db.guilds[message.guild.id].songSelection = false;
message.channel.send(':white_check_mark: Songselection now set to `false`');
}
}
};
+10
View File
@@ -0,0 +1,10 @@
module.exports = {
name: 'volume',
async execute(message, args, client, prefix) {
if (!args[2]) return message.channel.send(`:speaker: Current default volume is: \`${client.global.db.guilds[message.guild.id].defaultVolume}\``);
if (isNaN(args[2])) return message.channel.send(':x: I\'m sorry, But the default volume needs to be a valid __number__.');
if (args[2].length > 2) return message.channel.send(':x: The default volume must be below `100` for quality and safety resons.');
client.global.db.guilds[message.guild.id].defaultVolume = args[2];
message.channel.send(`:white_check_mark: Default volume set to: \`${args[2]}\``);
}
};
+21
View File
@@ -0,0 +1,21 @@
module.exports = {
name: 'Shuffle',
description: 'Shuffle command.',
alias: 'shuffle',
cooldown: 5,
execute(message, args, client, prefix) {
const serverQueue = client.queue.get(message.guild.id);
let currentIndex = serverQueue.songs.length,
temporaryValue,
randomIndex;
while (0 !== currentIndex) {
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
temporaryValue = serverQueue.songs[currentIndex];
serverQueue.songs[currentIndex] = serverQueue.songs[randomIndex];
serverQueue.songs[randomIndex] = temporaryValue;
}
}
};
+46
View File
@@ -0,0 +1,46 @@
const { PermissionFlagsBits } = require("discord.js");
module.exports = {
name: 'skip',
description: 'Skip command.',
alias: 's',
cooldown: 5,
execute(message, args, client, prefix) {
const voiceChannel = message.member.voice.channel;
const serverQueue = client.queue.get(message.guild.id);
const permissions = message.channel.permissionsFor(message.author);
if (!serverQueue) return message.channel.send(':x: There is nothing playing that I could skip for you.');
if (!serverQueue.playing) return message.channel.send(':x: There is nothing playing that I could skip for you.');
if (voiceChannel !== serverQueue.voiceChannel) return message.channel.send(':x: I\'m sorry but you need to be in the same voice channel as Musix to skip the song!');
if (client.global.db.guilds[message.guild.id].permissions === true) {
if (!message.member.roles.cache.has(client.global.db.guilds[message.guild.id].djrole) && !permissions.has(PermissionFlagsBits.ManageMessages)) {
return vote(serverQueue, message, client);
} else {
return skipSong(serverQueue, message);
}
} else {
return vote(serverQueue, message, client);
}
}
};
function skipSong(serverQueue, message) {
message.channel.send(':fast_forward: Skipped the song!');
serverQueue.audioPlayer.stop();
};
function vote(serverQueue, message) {
serverQueue.votesNeeded = Math.floor(serverQueue.voiceChannel.members.size / 2);
serverQueue.votesNeeded.toFixed();
if (serverQueue.voiceChannel.members.size > 2) {
if (serverQueue.voters.includes(message.member.id)) return message.channel.send(':x: You have already voted to skip!');
serverQueue.votes++;
serverQueue.voters.push(message.member.id);
if (serverQueue.votes >= serverQueue.votesNeeded) {
serverQueue.voters = [];
serverQueue.votes = 0;
serverQueue.votesNeeded = null;
return skipSong(serverQueue, message);
} else return message.channel.send(`:x: Not enough votes! ${serverQueue.votes} / ${serverQueue.votesNeeded}!`);
} else {
return skipSong(serverQueue, message);
}
};
+25
View File
@@ -0,0 +1,25 @@
const { EmbedBuilder } = require("discord.js");
const { getVoiceConnections } = require("@discordjs/voice");
module.exports = {
name: 'status',
description: 'Status command.',
alias: 'status',
cooldown: 5,
async execute(message, args, client, prefix) {
const uptime = client.funcs.msToTime(client.uptime);
const ping = Math.floor(client.ws.ping * 10) / 10;
const embed = new EmbedBuilder()
.setTitle(`Status for ${client.user.username}`)
.addFields(
{ name: ':signal_strength: Ping', value: ping + ' ms', inline: true },
{ name: ':stopwatch: Uptime', value: uptime, inline: true },
{ name: ':play_pause: Currently playing music on', value: `${getVoiceConnections.size ?? 0} guild(s)`, inline: true },
{ name: ':cd: Operating system', value: process.platform, inline: true }
)
.setAuthor({ name: client.user.username, iconURL: client.user.avatarURL()})
.setColor(client.config.embedColor)
return message.channel.send({ embeds: [embed] });
}
};
+25
View File
@@ -0,0 +1,25 @@
const { PermissionFlagsBits } = require("discord.js");
module.exports = {
name: 'stop',
description: 'Stop command.',
alias: 'stop',
cooldown: 5,
execute(message, args, client, prefix) {
const voiceChannel = message.member.voice.channel;
const serverQueue = client.queue.get(message.guild.id);
const permissions = message.channel.permissionsFor(message.author);
if (!serverQueue) return message.channel.send(':x: There is nothing playing that I could stop for you.');
if (!serverQueue.playing) return message.channel.send(':x: There is nothing playing that I could stop for you.');
if (voiceChannel !== serverQueue.voiceChannel) return message.channel.send(':x: I\'m sorry but you need to be in the same voice channel as Musix to stop the music!');
if (client.global.db.guilds[message.guild.id].permissions === true) {
if (client.global.db.guilds[message.guild.id].dj) {
if (!message.member.roles.cache.has(client.global.db.guilds[message.guild.id].djrole)) return message.channel.send(':x: You need the `DJ` role to stop the music!');
} else if (!permissions.has(PermissionFlagsBits.ManageChannels)) return message.channel.send(':x: You need the `MANAGE_CHANNELS` permission to stop the music!');
}
serverQueue.songs = [];
serverQueue.looping = false;
serverQueue.audioPlayer.stop();
message.channel.send(':stop_button: Stopped the music!')
}
};
+29
View File
@@ -0,0 +1,29 @@
const { PermissionFlagsBits } = require("discord.js");
module.exports = {
name: 'volume',
description: 'Volume command.',
alias: 'volume',
cooldown: 5,
execute(message, args, client, Discord, prefix) {
const voiceChannel = message.member.voice.channel;
const serverQueue = client.queue.get(message.guild.id);
const permissions = message.channel.permissionsFor(message.author);
if (!serverQueue) return message.channel.send(':x: There is nothing playing.');
if (!serverQueue.playing) return message.channel.send(':x: There is nothing playing.');
if (!args[1]) return message.channel.send(`:loud_sound: The current volume is: **${serverQueue.volume}**`);
const volume = parseFloat(args[1]);
if (!voiceChannel) return message.channel.send(':x: I\'m sorry but you need to be in a voice channel to change the volume!');
if (client.global.db.guilds[message.guild.id].permissions === true) {
if (client.global.db.guilds[message.guild.id].dj) {
if (!message.member.roles.cache.has(client.global.db.guilds[message.guild.id].djrole)) return message.channel.send(':x: You need the `DJ` role to change the volume!');
} else if (!permissions.has(PermissionFlagsBits.ManageChannels)) return message.channel.send(':x: You need the `MANAGE_CHANNELS` permission to change the volume!');
}
if (isNaN(volume)) return message.channel.send(':x: I\'m sorry, But you need to enter a valid __number__.');
if (volume > 100) return message.channel.send(':x: The max volume is `100`!');
if (volume < 0) return message.channel.send(':x: The volume needs to be a positive number!');
serverQueue.volume = volume;
serverQueue.audioResource.volume.setVolume(volume / 100);
return message.channel.send(`:loud_sound: I set the volume to: **${volume}**`);
}
};
+10
View File
@@ -0,0 +1,10 @@
module.exports = {
discord_api_token: process.env.DISCORD_API_TOKEN,
firebase: {
serviceAccount: null
//serviceAccount: require('./serviceAccount.json')
},
youtube_api_key: process.env.YOUTUBE_API_KEY,
prefix: process.env.BOT_PREFIX ?? "mx>",
embedColor: "#b50002"
}
+25
View File
@@ -0,0 +1,25 @@
module.exports = {
name: 'guildcreate',
async execute(client, guild) {
if(client.config.firebase.serviceAccount){
client.db.collection('guilds').doc(guild.id).set({
prefix: client.config.prefix,
defaultVolume: 50,
permissions: false,
premium: false,
dj: false,
djrole: null,
startPlaying: true
});
client.global.db.guilds[guild.id] = {
prefix: client.config.prefix,
defaultVolume: 50,
permissions: false,
premium: false,
dj: false,
djrole: null,
startPlaying: true
};
}
}
}
+24
View File
@@ -0,0 +1,24 @@
module.exports = {
name: 'message',
async execute(client, message) {
if (message.author.bot || !message.guild) return;
let prefix = client.global.db.guilds[message.guild.id].prefix;
const args = message.content.slice(prefix.length).split(' ');
if (message.mentions.users.first()) {
if (message.mentions.users.first().id === client.user.id) {
if (!args[1]) return;
if (args[1] === 'prefix') return message.channel.send(`My prefix here is: \`${prefix}\`.`);
if (args[1] === 'help') {
const command = client.commands.get("help");
return client.funcs.exe(message, args, client, prefix, command);
}
}
}
if (!message.content.startsWith(prefix)) return;
if (!args[0]) return;
const commandName = args[0].toLowerCase();
const command = client.commands.get(commandName) || client.commands.find(cmd => cmd.aliases && cmd.aliases.includes(commandName)) || client.commandAliases.get(commandName);
if (!command && message.content !== `${prefix}`) return;
client.funcs.exe(message, args, client, prefix, command);
}
}
+53
View File
@@ -0,0 +1,53 @@
module.exports = {
name: 'ready',
async execute(client) {
client.user.setActivity(`@${client.user.username} help | 🎶`, { type: 'LISTENING' });
client.user.setStatus('online');
console.log('- Activated -');
client.guilds.cache.forEach(guild => {
client.global.db.guilds[guild.id] = {
prefix: client.config.prefix,
defaultVolume: 50,
permissions: false,
premium: false,
dj: false,
djrole: null,
startPlaying: true
};
});
if(client.config.firebase.serviceAccount){
const remoteMusixGuildsData = await client.funcs.dbget('guilds', null, client);
const remoteMusixPlaylistsData = await client.funcs.dbget('playlists', null, client);
remoteMusixGuildsData.forEach(guildData => {
client.global.db.guilds[guildData.id] = guildData.d;
});
remoteMusixPlaylistsData.forEach(guildData => {
client.global.db.playlists[guildData.id] = guildData.d;
});
console.log('- DB Set -');
setInterval(async () => {
client.guilds.cache.forEach(guild => {
client.db.collection('guilds').doc(guild.id).set({
prefix: client.global.db.guilds[guild.id].prefix,
defaultVolume: client.global.db.guilds[guild.id].defaultVolume,
permissions: client.global.db.guilds[guild.id].permissions,
premium: client.global.db.guilds[guild.id].premium,
dj: client.global.db.guilds[guild.id].dj,
djrole: client.global.db.guilds[guild.id].djrole,
startPlaying: client.global.db.guilds[guild.id].startPlaying
});
if (client.global.db.guilds[guild.id].premium) {
client.db.collection('playlists').doc(guild.id).set({
songs: client.global.db.playlists[guild.id].songs,
saved: client.global.db.playlists[guild.id].saved,
});
}
});
}, 1800000);
}
}
}
+22
View File
@@ -0,0 +1,22 @@
module.exports = async function (collection, doc, client) {
if (doc) {
let d = await client.db.collection(collection).doc(doc).get().catch(err => {
console.log('Error getting document', err);
return 'error';
});
return d.data();
} else {
let d = await client.db.collection(collection).get().catch(err => {
console.log('Error getting document', err);
return 'error';
});
let finalD = [];
d.forEach(doc => {
finalD.push({
id: doc.id,
d: doc.data(),
});
});
return finalD;
}
};
+13
View File
@@ -0,0 +1,13 @@
const { EmbedBuilder, PermissionFlagsBits } = require("discord.js");
module.exports = function (message, args, client, prefix, command) {
const permissions = message.channel.permissionsFor(message.client.user);
if (!permissions.has(PermissionFlagsBits.EmbedLinks)) return message.channel.send(':x: I cannot send embeds (Embed links), make sure I have the proper permissions!');
try {
command.uses++;
command.execute(message, args, client, prefix);
} catch (error) {
message.reply(`:x: there was an error trying to execute that command!`);
console.log(error);
}
};
+53
View File
@@ -0,0 +1,53 @@
const { createAudioPlayer, getVoiceConnection, joinVoiceChannel, NoSubscriberBehavior } = require("@discordjs/voice");
module.exports = async function (video, message, voiceChannel, client, playlist = false) {
let song = {
id: video.id,
title: he.decode(video.title),
url: `https://www.youtube.com/watch?v=${video.id}`,
author: message.author
}
const serverQueue = client.queue.get(message.guild.id);
if (!serverQueue) {
const construct = {
textChannel: message.channel,
voiceChannel: voiceChannel,
connection: null,
audioPlayer: createAudioPlayer({
behaviors: {
noSubscriber: NoSubscriberBehavior.Play,
}
}),
songs: [],
volume: client.global.db.guilds[message.guild.id].defaultVolume,
playing: false,
paused: false,
looping: false,
votes: 0,
voters: [],
votesNeeded: null
};
construct.songs.push(song);
client.queue.set(message.guild.id, construct);
try {
const connection =
getVoiceConnection(voiceChannel.guild.id) ??
joinVoiceChannel({
channelId: voiceChannel.id,
guildId: voiceChannel.guild.id,
adapterCreator: voiceChannel.guild.voiceAdapterCreator
});
construct.connection = connection;
client.funcs.play(message.guild, construct.songs[0], client, message, 0, true);
} catch (error) {
client.queue.delete(message.guild.id);
console.log("Error with connecting to voice channel: " + error);
return message.channel.send(`:x: An error occured: ${error}`);
}
} else {
serverQueue.songs.push(song);
if (playlist) return undefined;
return message.channel.send(`:white_check_mark: **${song.title}** has been added to the queue!`);
}
return undefined;
}
+11
View File
@@ -0,0 +1,11 @@
module.exports = function msToTime(duration) {
var seconds = Math.floor((duration / 1000) % 60),
minutes = Math.floor((duration / (1000 * 60)) % 60),
hours = Math.floor((duration / (1000 * 60 * 60)) % 24);
hours = (hours < 10) ? "0" + hours : hours;
minutes = (minutes < 10) ? "0" + minutes : minutes;
seconds = (seconds < 10) ? "0" + seconds : seconds;
return `${hours}:${minutes}:${seconds}`;
}
+48
View File
@@ -0,0 +1,48 @@
const { EmbedBuilder } = require('discord.js');
const { AudioPlayerStatus, createAudioResource } = require('@discordjs/voice');
const ytdl = require('ytdl-core');
module.exports = async function (guild, song, client, message, seek, play) {
const serverQueue = client.queue.get(guild.id);
if (!song) {
serverQueue.connection.destroy();
client.queue.delete(guild.id);
return;
}
serverQueue.audioPlayer
.on(AudioPlayerStatus.Idle, () => {
serverQueue.playing = false;
serverQueue.audioPlayer.removeAllListeners();
if (serverQueue.looping) {
serverQueue.songs.push(serverQueue.songs[0]);
}
serverQueue.songs.shift();
client.funcs.play(guild, serverQueue.songs[0], client, message);
})
.on('error', (error) => {
console.error(error)
});
const audioResource = createAudioResource(ytdl(song.url, { filter: "audio", highWaterMark: 1 << 25 }),{
inlineVolume: true
});
audioResource.volume.setVolume(serverQueue.volume / 100);
serverQueue.audioPlayer.play(audioResource);
serverQueue.audioResource = audioResource;
serverQueue.connection.subscribe(serverQueue.audioPlayer);
/*.playStream(ytdl(song.url, { filter: "audio", highWaterMark: 1 << 25 }), { seek: seek, bitrate: 1024, passes: 10, volume: 1 })*/
if (client.global.db.guilds[guild.id].startPlaying || play) {
let data = await Promise.resolve(ytdl.getInfo(serverQueue.songs[0].url));
let songtime = (data.length_seconds * 1000).toFixed(0);
const embed = new EmbedBuilder()
.setTitle(`:musical_note: Start playing: **${song.title}**`)
.setDescription(`Song duration: \`${client.funcs.msToTime(songtime)}\``)
.setColor("#b50002")
serverQueue.textChannel.send({ embeds: [embed] });
}
serverQueue.playing = true;
}
+43 -24
View File
@@ -1,31 +1,50 @@
const { ShardingManager} = require("discord.js");
const config = require("./src/config/config.js");
const DiscordWebhook = require("discord-webhook-node");
const Discord = require('discord.js');
const MusicClient = require('./Client');
const client = new MusicClient({});
const fs = require('fs');
if (config.devMode) {
console.log("- dev mode- ");
config.shards = 1;
const commandFiles = fs.readdirSync('./commands/').filter(f => f.endsWith('.js'));
for (const file of commandFiles) {
const command = require(`./commands/${file}`);
command.uses = 0;
client.commands.set(command.name, command);
client.commandAliases.set(command.alias, command);
}
const manager = new ShardingManager("./src/bot.js", {
token: config.token,
respawn: config.respawn,
totalShards: config.shards,
const eventFiles = fs.readdirSync('./events/').filter(f => f.endsWith('.js'));
for (const file of eventFiles) {
const event = require(`./events/${file}`);
client.events.set(event.name, event);
}
const playlistFiles = fs.readdirSync('./commands/playlist/').filter(f => f.endsWith('.js'));
for (const file of playlistFiles) {
const option = require(`./commands/playlist/${file}`);
client.playlistCmd.set(option.name, option);
}
const settingFiles = fs.readdirSync('./commands/settings/').filter(f => f.endsWith('.js'));
for (const file of settingFiles) {
const option = require(`./commands/settings/${file}`);
client.settingCmd.set(option.name, option);
}
client.on('ready', async () => {
const eventName = 'ready';
const event = client.events.get(eventName) || client.events.find(ent => ent.aliases && ent.aliases.includes(eventName));
event.execute(client);
});
console.log("- Launching shards -");
manager.spawn(config.shards, config.shardDelay, config.shardTimeout);
manager.on("shardCreate", (shard) =>
console.log(`- Launched shard ${shard.id} -`)
);
client.on('messageCreate', message => {
const eventName = 'message';
const event = client.events.get(eventName) || client.events.find(ent => ent.aliases && ent.aliases.includes(eventName));
event.execute(client, message);
});
const oldConsole = {};
oldConsole.log = console.log;
console.log = function (arg) {
oldConsole.log(arg);
};
client.on('guildCreate', async (guild) => {
const eventName = 'guildcreate';
const event = client.events.get(eventName) || client.events.find(ent => ent.aliases && ent.aliases.includes(eventName));
event.execute(client, guild);
});
oldConsole.error = console.error;
console.error = function (arg) {
oldConsole.error(arg);
};
client.login(client.config.discord_api_token).catch(err => { console.log('- Failed To Login -> ' + err); });
+423 -1363
View File
File diff suppressed because it is too large Load Diff
+17 -22
View File
@@ -1,39 +1,34 @@
{
"name": "musix-oss",
"version": "3.11.0",
"description": "V3 for Musix the discord music bot",
"main": "./index.js",
"version": "2.22.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node --max-old-space-size=3072 index.js",
"start": "node index.js",
"start:dev": "nodemon"
},
"repository": {
"type": "git",
"url": "git+https://github.com/musix-org/musix-oss.git"
},
"keywords": [],
"author": "Musix Org",
"license": "MIT",
"bugs": {
"url": "https://github.com/musix-org/musix-oss/issues",
"support": "https://discord.gg/rvHuJtB"
"homepage": "https://https://github.com/musix-oss/musix",
"repository": {
"type": "git",
"url": "https://https://github.com/musix-oss/musix"
},
"homepage": "https://musix-org.github.io/",
"dependencies": {
"discord.js": "^14.22.1",
"@discordjs/voice": "^0.19.0",
"@discordjs/opus": "^0.10.0",
"discord-webhook-node": "^1.1.8",
"discord.js": "^14.26.3",
"dotenv": "^17.4.2",
"firebase": "^12.12.1",
"firebase-admin": "^13.8.0",
"dotenv": "^17.2.2",
"firebase": "^12.2.1",
"firebase-admin": "^13.5.0",
"he": "^1.2.0",
"prism-media": "^1.3.5",
"ms": "^2.1.3",
"request": "^2.88.2",
"simple-youtube-api": "^5.2.1",
"spotify-web-api-node": "^5.0.2",
"ytdl-core": "^4.11.5",
"ytsr": "^3.8.4"
"ytdl-core": "^4.11.5"
},
"devDependencies": {
"nodemon": "^3.1.14"
"nodemon": "^3.1.10"
}
}
-14
View File
@@ -1,14 +0,0 @@
const MusicClient = require("./client.js");
const DiscordWebhook = require("discord-webhook-node");
const client = new MusicClient({});
const oldConsole = {};
oldConsole.log = console.log;
console.log = function (arg) {
oldConsole.log(arg);
};
oldConsole.error = console.error;
console.error = function (arg) {
oldConsole.error(arg);
};
-82
View File
@@ -1,82 +0,0 @@
const {
Client,
Collection,
Intents
} = require("discord.js");
const admin = require("firebase-admin");
const serviceAccount = require("./config/serviceAccount.json");
const fs = require("fs");
const path = require("path");
const SpotifyApi = require("spotify-web-api-node");
const YouTube = require("simple-youtube-api");
const config = require("./config/config");
const GatewayIntents = new Intents();
GatewayIntents.add(
1 << 0, // GUILDS
1 << 7, // GUILD_VOICE_STATES
1 << 9, // GUILD_MESSAGES,
1 << 15 // MESSAGE_CONTENT
);
module.exports = class extends Client {
constructor() {
super({
disableMentions: "everyone",
disabledEvents: ["TYPING_START"],
ws: {
intents: GatewayIntents
}
});
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
});
this.commands = new Collection();
this.settingCmd = new Collection();
this.queue = new Map();
this.spotify = new SpotifyApi({
id: config.spotify_client_id,
secret: config.spotify_client_secret,
});
this.youtube = new YouTube(config.youtube_api_key);
this.config = config;
this.funcs = {};
this.dispatcher = {};
this.messages = require("./config/messages.js");
this.db = admin.firestore();
this.db.FieldValue = require("firebase-admin").firestore.FieldValue;
this.global = {
db: {
guilds: {},
}
};
this.logs = [];
fs.readdirSync(path.join(__dirname, "funcs")).forEach((filename) => {
this.funcs[filename.slice(0, -3)] = require(`./funcs/${filename}`);
});
const commandFiles = fs
.readdirSync(path.join(path.dirname(__dirname), "commands"))
.filter((f) => f.endsWith(".js"));
for (const file of commandFiles) {
const command = require(`../commands/${file}`);
command.uses = 0;
this.commands.set(command.name, command);
}
const settingFiles = fs
.readdirSync(path.join(path.dirname(__dirname), "commands/settings"))
.filter((f) => f.endsWith(".js"));
for (const file of settingFiles) {
const option = require(`../commands/settings/${file}`);
this.settingCmd.set(option.name, option);
}
require("./events/clientEvents/handler.js")(this);
this.login(this.config.discord_api_token).catch((err) =>
console.log("Failed to login: " + err)
);
}
};
-33
View File
@@ -1,33 +0,0 @@
module.exports = {
name: "bass",
description: "Boost the bass in your music!",
alias: ["none"],
usage: "<bass>",
permission: "MANAGE_MESSAGES",
category: "audio modifiers",
execute(msg, args, client, command) {
const queue = client.queue.get(msg.guild.id);
if (!args[1] && queue)
return msg.channel.send(
`${client.messages.currentBass}**${queue.bass}**`
);
const bass = parseFloat(args[1]);
if (client.funcs.check(client, msg, command)) {
if (queue.nightCore)
return msg.channel.send(client.messages.disableNightCore);
if (isNaN(bass)) return msg.channel.send(client.messages.validNumber);
if (bass > 10) return msg.channel.send(client.messages.maxBass);
if (bass < 0) return msg.channel.send(client.messages.positiveBass);
queue.bass = bass;
client.funcs.end(
client,
msg,
(queue.connection.dispatcher.streamTime + queue.time) / 1000,
command
);
let message;
message = client.messages.bassApplied.replace("%BASS%", bass);
return msg.channel.send(message);
}
},
};
-39
View File
@@ -1,39 +0,0 @@
const { EmbedBuilder } = require("discord.js");
module.exports = {
name: 'help',
alias: ["h"],
usage: '<command(opt)>',
description: 'See the help for Musix.',
permission: 'none',
category: 'info',
execute(msg, args, client, command) {
if (args[1]) {
if (!client.commands.has(args[1]) || (client.commands.has(args[1]) && client.commands.get(args[1]).omitFromHelp === true && msg.guild.id !== '489083836240494593')) return msg.channel.send('That command does not exist');
const command = client.commands.get(args[1]);
const embed = new EmbedBuilder()
.setTitle(`${client.global.db.guilds[msg.guild.id].prefix}${command.name} ${command.usage}`)
.setDescription(command.description)
.setFooter({ text:`${client.messages.helpCmdFooter} \`${command.alias.map(a => `${a}, `)}\`` })
.setColor(client.config.embedColor)
msg.channel.send(embed);
} else {
const categories = [];
for (let i = 0; i < client.commands.size; i++) {
if (!categories.includes(client.commands.array()[i].category)) categories.push(client.commands.array()[i].category);
}
let commands = '';
for (let i = 0; i < categories.length; i++) {
commands += `**» ${categories[i].toUpperCase()}**\n${client.commands.filter(x => x.category === categories[i] && !x.omitFromHelp).map(x => `\`${x.name}\``).join(', ')}\n`;
}
let message;
message = client.messages.helpFooter.replace("%PREFIX%", client.global.db.guilds[msg.guild.id].prefix);
const embed = new EmbedBuilder()
.setTitle(`${client.user.username} ${client.messages.helpTitle}`)
.setDescription(commands)
.setFooter({ text: message })
.setColor(client.config.embedColor)
msg.channel.send(embed);
}
}
};
-17
View File
@@ -1,17 +0,0 @@
const { EmbedBuilder } = require("discord.js");
module.exports = {
name: 'invite',
alias: ["i"],
usage: '',
description: 'Invite Musix.',
permission: 'none',
category: 'info',
execute(msg, args, client, command) {
const embed = new EmbedBuilder()
.setTitle(client.messages.inviteTitle)
.setURL(client.config.invite)
.setColor(client.config.embedColor)
msg.channel.send(embed);
}
};
-20
View File
@@ -1,20 +0,0 @@
module.exports = {
name: 'loop',
alias: [],
usage: '',
description: 'loop the queue.',
permission: 'MANAGE_MESSAGES',
category: 'music control',
async execute(msg, args, client, command) {
const queue = client.queue.get(msg.guild.id);
if (client.funcs.check(client, msg, command)) {
if (!queue.looping) {
queue.looping = true;
msg.channel.send(client.messages.looping);
} else {
queue.looping = false;
msg.channel.send(client.messages.noLooping);
}
}
}
};
-22
View File
@@ -1,22 +0,0 @@
module.exports = {
name: 'loopsong',
alias: ["none"],
usage: '',
description: 'loop the currently playing song.',
permission: 'MANAGE_MESSAGES',
category: 'music control',
async execute(msg, args, client, command) {
const queue = client.queue.get(msg.guild.id);
if (client.funcs.check(client, msg, command)) {
if (!queue.songLooping) {
queue.songLooping = true;
let message;
message = client.messages.loopingSong.replace("%TITLE%", queue.songs[0].title);
msg.channel.send(message);
} else {
queue.songLooping = false;
msg.channel.send(client.messages.noLoopingSong);
}
}
}
};
-37
View File
@@ -1,37 +0,0 @@
const { EmbedBuilder } = require("discord.js");
const { getLyrics } = require("genius-lyrics-api");
module.exports = {
name: "lyrics",
alias: ["l"],
usage: "<song>",
description: "see the lyrics for a song",
permission: "none",
category: "util",
async execute(msg, args, client, prefix, command) {
const searchString = args.slice(1).join(" ");
const options = {
apiKey: client.config.genius_api_key,
title: searchString,
artist: "",
optimizeQuery: true,
};
const queue = client.queue.get(msg.guild.id);
if (queue && !args[1]) options.title = queue.songs[0].title;
if (!queue && !args[1])
return msg.channel.send(client.messages.lyricsUsage);
getLyrics(options).then((lyrics) => {
if (lyrics === null)
return msg.channel.send(client.messages.noResultsLyrics);
for (let i = 0; i < lyrics.length; i += 2000) {
let toi = "";
toi = lyrics.substring(i, Math.min(lyrics.length, i + 2000));
const embed = new EmbedBuilder()
.setTitle(client.messages.lyricsTitle)
.setDescription(toi)
.setColor(client.config.embedColor);
msg.channel.send(embed);
}
});
},
};
-25
View File
@@ -1,25 +0,0 @@
module.exports = {
name: "nightcore",
alias: ["nc"],
usage: "<true/false>",
description: "Change nightcore audio modifier on/off",
permission: "MANAGE_MESSAGES",
category: "audio modifiers",
async execute(msg, args, client, command) {
const queue = client.queue.get(msg.guild.id);
if (!args[1] && queue)
return msg.channel.send(
`${client.messages.currentNightCore}**${queue.nightCore}**`
);
if (client.funcs.check(client, msg, command)) {
if (args[1] === "true") {
queue.nightCore = true;
} else if (args[1] === "false") {
queue.nightCore = false;
} else return msg.channel.send(client.messages.boolean);
let message;
message = client.messages.nightCoreApplied.replace("%BOOLEAN%", args[1]);
return msg.channel.send(message);
}
},
};
-48
View File
@@ -1,48 +0,0 @@
const { EmbedBuilder } = require("discord.js");
module.exports = {
name: "nowplaying",
alias: ["np", "playing"],
usage: "",
description: "See the currently playing song position and length.",
permission: "none",
category: "info",
async execute(msg, args, client, command) {
const queue = client.queue.get(msg.guild.id);
if (!queue || !queue.songs[0] || !queue.connection || !queue.connection.dispatcher) return msg.channel.send(client.messages.noServerQueue);
let songTime = (queue.songs[0].info.lengthSeconds * 1000).toFixed(0);
let completed = (
queue.connection.dispatcher.streamTime + queue.time
).toFixed(0);
let barlength = 30;
let completedpercent = ((completed / songTime) * barlength).toFixed(0);
let array = [];
for (let i = 0; i < completedpercent - 1; i++) {
array.push("⎯");
}
array.push("🔘");
for (let i = 0; i < barlength - completedpercent - 1; i++) {
array.push("⎯");
}
const thumbnail = queue.songs[0].info.thumbnail.thumbnails[4] || queue.songs[0].info.thumbnail.thumbnails[3] || queue.songs[0].info.thumbnail.thumbnails[2] || queue.songs[0].info.thumbnail.thumbnails[1] || queue.songs[0].info.thumbnail.thumbnails[0];
const embed = new EmbedBuilder()
.setTitle(client.messages.nowPlaying)
.setDescription(
`${client.messages.nowPlayingDesc} ${
queue.songs[0].title
}\n\`${array.join("")}\`\n\`${client.funcs.msToTime(
completed,
"hh:mm:ss"
)} / ${client.funcs.msToTime(songTime, "hh:mm:ss")}\`\nchannel: \`${queue.songs[0].info.author.name}\``
)
.setFooter({ text: `Queued by ${queue.songs[0].author.tag}`})
.setURL(queue.songs[0].url)
.setThumbnail(thumbnail.url)
.setColor(client.config.embedColor);
if (queue.nightCore)
embed.setDescription(
`${client.messages.nowPlayingDesc} ${queue.songs[0].title} \nchannel: \`${queue.songs[0].info.author.name}\``
);
return msg.channel.send(embed);
},
};
-17
View File
@@ -1,17 +0,0 @@
module.exports = {
name: 'pause',
alias: ["none"],
usage: '',
description: 'Pause the currently playing music.',
permission: 'MANAGE_MESSAGES',
category: 'music control',
execute(msg, args, client, command) {
const queue = client.queue.get(msg.guild.id);
if (client.funcs.check(client, msg, command)) {
if (queue.paused) return msg.channel.send(client.messages.alreadyPaused);
queue.paused = true;
queue.connection.dispatcher.pause(true);
return msg.channel.send(client.messages.paused);
}
}
};
-401
View File
@@ -1,401 +0,0 @@
const ytdl = require("ytdl-core");
const ytsr = require("ytsr");
module.exports = {
name: "play",
alias: ["p", "music"],
usage: "<song name>",
description: "Play some music.",
permission: "none",
category: "play",
async execute(msg, args, client, command) {
const searchString = args.slice(1).join(" ");
const url = args[1] ? args[1].replace(/<(.+)>/g, "$1") : "";
const queue = client.queue.get(msg.guild.id);
const voiceChannel = msg.member.voice.channel;
if (
client.global.db.guilds[msg.guild.id].blacklist.includes(
msg.member.voice.channelID
)
)
return msg.channel.send(client.messages.blackListedVC);
if (!queue) {
if (!msg.member.voice.channel)
return msg.channel.send(client.messages.noVoiceChannel);
} else {
if (voiceChannel !== queue.voiceChannel)
return msg.channel.send(client.messages.wrongVoiceChannel);
}
if (!args[1]) return msg.channel.send(client.messages.noQuery);
if (voiceChannel.full) return msg.channel.send(client.messages.channelFull);
if (!voiceChannel.joinable)
return msg.channel.send(client.messages.noPermsConnect);
if (!voiceChannel.speakable)
return msg.channel.send(client.messages.noPermsSpeak);
if (ytdl.validateURL(url)) {
client.funcs.handleVideo(url, msg, voiceChannel, client, false, "ytdl");
} else if (url.match(/^https?:\/\/(open.spotify.com|spotify.com)(.*)$/)) {
if (url.includes("playlist")) {
const playlistId = url.split("/playlist/")[1].split("?")[0];
client.spotify.getPlaylist(playlistId).then(
async function (data) {
searchPlaylist(data, client, msg, voiceChannel);
},
function (err) {
console.log(err);
msg.channel.send(client.messages.noResultsSpotify);
}
);
} else if (url.includes("album")) {
const albumId = url.split("/album/")[1].split("?")[0];
client.spotify.getAlbumTracks(albumId).then(
async function (data) {
searchAlbum(data, client, msg, voiceChannel);
},
function (err) {
console.log(err);
msg.channel.send(client.messages.noResultsSpotify);
}
);
} else if (url.includes("track")) {
return msg.channel.send(client.messages.disabledSpotifySongs);
/*const trackId = url.split("/track/")[1].split("?")[0];
spotify.searchTracks(trackId)
.then(function (data) {
console.log(data.body)
}, function (err) {
console.log('Something went wrong!', err);
});*/
} else msg.channel.send(client.messages.invalidSpotifyUrl);
} else if (
url.match(/^https?:\/\/(www.youtube.com|youtube.com)\/playlist(.*)$/)
) {
const lmsg = await msg.channel.send(client.messages.loadingSongs);
const playlist = await client.youtube.getPlaylist(url).catch((err) => {
console.log("err1");
});
const videos = await playlist.getVideos().catch((err) => {
console.log("err2");
});
for (const video of Object.values(videos)) {
const video2 = await client.youtube.getVideoByID(video.id).catch((err) => {
console.log("err3");
});
client.spotify.searchTracks(`track:${video2.name}`).then(
function (data) {
client.funcs.handleVideo(
video2.url,
msg,
voiceChannel,
client,
true,
"ytdl",
data.body.tracks.items[0]
);
},
function (err) {
console.log("Something went wrong!", err);
}
);
}
const message = client.messages.playlistAdded.replace(
"%TITLE%",
playlist.title
);
return lmsg.edit(message);
} else {
ytsr(
searchString, {
limit: 5,
},
function (err, res) {
if (err) console.log(err);
if (!res.items[0]) return msg.channel.send(client.messages.noResults);
const videoResults = res.items.filter(
(item) => item.type === "video"
);
client.spotify.searchTracks(`track:${searchString}`).then(
function (data) {
client.funcs.handleVideo(
videoResults[0].link,
msg,
voiceChannel,
client,
false,
"ytdl",
data.body.tracks.items[0]
);
},
function (err) {
console.log(err);
}
);
}
);
}
},
};
async function searchPlaylist(data, client, msg, voiceChannel) {
const lmsg = await msg.channel.send(client.messages.loadingSongs);
let failed = 0;
for (let i = 0; data.body.tracks.items.length > i; i++) {
const track = await data.body.tracks.items[i].track;
await client.funcs.sleep(250);
ytsr(
`${track.artists[0].name} ${track.name} audio`, {
limit: 5,
},
async function (err, res) {
if (err) return console.log(err);
if (!res.items[0]) {
ytsr(
`${track.artists[0].name} ${track.name} lyrics`, {
limit: 5,
},
async function (err, res) {
if (err) return console.log(err);
if (!res.items[0]) {
ytsr(
`${track.artists[0].name} ${track.name}`, {
limit: 5,
},
async function (err, res) {
if (err) console.log(err);
if (!res.items[0]) {
failed++;
}
const videoResults = res.items.filter(
(item) => item.type === "video"
);
client.funcs.handleVideo(
videoResults[0].link,
msg,
voiceChannel,
client,
false,
"spotify",
track
);
}
);
return;
}
const videoResults = res.items.filter(
(item) => item.type === "video"
);
await client.funcs.handleVideo(
videoResults[0].link,
msg,
voiceChannel,
client,
true,
"spotify",
track
);
}
);
failed++;
return;
}
const videoResults = res.items.filter((item) => item.type === "video");
await client.funcs.handleVideo(
videoResults[0].link,
msg,
voiceChannel,
client,
true,
"spotify",
track
);
}
);
}
let message;
if (failed === 0) {
message = client.messages.playlistAdded.replace("%TITLE%", data.body.name);
} else {
message = `${client.messages.playlistAdded.replace(
"%TITLE%",
data.body.name
)}\n${client.messages.failedToLoad + failed}`;
}
lmsg.edit(message);
}
async function searchAlbum(data, client, msg, voiceChannel) {
const lmsg = await msg.channel.send(client.messages.loadingSongs);
let failed = 0;
for (let i = 0; data.body.items.length > i; i++) {
const track = await data.body.items[i];
await client.funcs.sleep(250);
ytsr(
`${track.artists[0].name} ${track.name} audio`, {
limit: 5,
},
async function (err, res) {
if (err) return console.log(err);
if (!res.items[0]) {
ytsr(
`${track.artists[0].name} ${track.name} lyrics`, {
limit: 5,
},
async function (err, res) {
if (err) return console.log(err);
if (!res.items[0]) {
ytsr(
`${track.artists[0].name} ${track.name}`, {
limit: 5,
},
async function (err, res) {
if (err) console.log(err);
if (!res.items[0]) {
failed++;
}
const videoResults = res.items.filter(
(item) => item.type === "video"
);
client.funcs.handleVideo(
videoResults[0].link,
msg,
voiceChannel,
client,
false,
"spotify",
track
);
}
);
return;
}
const videoResults = res.items.filter(
(item) => item.type === "video"
);
await client.funcs.handleVideo(
videoResults[0].link,
msg,
voiceChannel,
client,
true,
"spotify",
track
);
}
);
failed++;
return;
}
const videoResults = res.items.filter((item) => item.type === "video");
await client.funcs.handleVideo(
videoResults[0].link,
msg,
voiceChannel,
client,
true,
"spotify",
track
);
}
);
}
let message;
if (failed === 0) {
message = client.messages.albumAdded.replace(
"%TITLE%",
"yes taht palylist"
);
} else {
message = `${client.messages.albumAdded.replace(
"%TITLE%",
"yes taht palylist"
)}\n${client.messages.failedToLoad + failed}`;
}
lmsg.edit(message);
}
async function searchSong(data, client, msg, voiceChannel) {
const lmsg = await msg.channel.send(client.messages.loadingSongs);
let failed = 0;
for (let i = 0; data.body.tracks.items.length > i; i++) {
const track = await data.body.tracks.items[i].track;
await client.funcs.sleep(250);
ytsr(
`${track.artists[0].name} ${track.name} audio`, {
limit: 5,
},
async function (err, res) {
if (err) return console.log(err);
if (!res.items[0]) {
ytsr(
`${track.artists[0].name} ${track.name} lyrics`, {
limit: 5,
},
async function (err, res) {
if (err) return console.log(err);
if (!res.items[0]) {
ytsr(
`${track.artists[0].name} ${track.name}`, {
limit: 5,
},
async function (err, res) {
if (err) console.log(err);
if (!res.items[0]) {
failed++;
}
const videoResults = res.items.filter(
(item) => item.type === "video"
);
client.funcs.handleVideo(
videoResults[0].link,
msg,
voiceChannel,
client,
false,
"spotify",
track
);
}
);
return;
}
const videoResults = res.items.filter(
(item) => item.type === "video"
);
await client.funcs.handleVideo(
videoResults[0].link,
msg,
voiceChannel,
client,
true,
"spotify",
track
);
}
);
failed++;
return;
}
const videoResults = res.items.filter((item) => item.type === "video");
await client.funcs.handleVideo(
videoResults[0].link,
msg,
voiceChannel,
client,
true,
"spotify",
track
);
}
);
}
let message;
if (failed === 0) {
message = client.messages.playlistAdded.replace("%TITLE%", data.body.name);
} else {
message = `${client.messages.playlistAdded.replace(
"%TITLE%",
data.body.name
)}\n${client.messages.failedToLoad + failed}`;
}
lmsg.edit(message);
}
-17
View File
@@ -1,17 +0,0 @@
module.exports = {
name: 'previous',
alias: ["prev", "return", "back"],
usage: '',
description: 'Play the previous song.',
permission: 'MANAGE_MESSAGES',
category: 'music control',
async execute(msg, args, client, command) {
const queue = client.queue.get(msg.guild.id)
if (client.funcs.check(client, msg, command)) {
if (queue.prevSongs.length < 1) return msg.channel.send(client.messages.noPreviousSongs);
queue.endReason = "previous";
queue.connection.dispatcher.end()
msg.channel.send(client.messages.previousSong)
}
}
};
-29
View File
@@ -1,29 +0,0 @@
const { EmbedBuilder } = require("discord.js");
module.exports = {
name: 'queue',
alias: ["q", "list", "ls", "songs"],
usage: '',
description: 'See the queue.',
permission: 'none',
category: 'info',
async execute(msg, args, client, command) {
const queue = client.queue.get(msg.guild.id);
if (!queue) return msg.channel.send(client.messages.noServerQueue);
const page = 1;
let queuesongs = queue.songs.slice((page - 1) * 20 + 1, page * 20 + 1);
let queuemessage = `${queuesongs.map(song => `**#** ${song.title}`).join('\n')}`
const hashs = queuemessage.split('**#**').length;
for (let i = 0; i < hashs; i++) {
queuemessage = queuemessage.replace('**#**', `**${i + 1}**`);
}
let message;
message = client.messages.queueDesc.replace("%SONG%", queue.songs[0].title);
const embed = new EmbedBuilder()
.setTitle(client.messages.queueTitle)
.setDescription(`${message}\n${queuemessage}`)
.setFooter({ text: `${queue.songs.length - 1} ${client.messages.queueFooter}`})
.setColor(client.config.embedColor)
return msg.channel.send(embed);
}
};
-31
View File
@@ -1,31 +0,0 @@
module.exports = {
name: "remove",
alias: ["rm", "delete", "del"],
usage: "<song pos>",
description: "Remove a song from the queue",
permission: "MANAGE_MESSAGES",
category: "music control",
execute(msg, args, client, command) {
const queue = client.queue.get(msg.guild.id);
if (client.funcs.check(client, msg, command)) {
if (!args[1]) return msg.channel.send(client.messages.provideASong);
const pos = parseInt(args[1]);
if (isNaN(pos)) return msg.channel.send(client.messages.validNumber);
if (pos < 1) return msg.channel.send(client.messages.noSongs);
let message1;
let message2;
message1 = client.messages.queueLength.replace(
"%SONGS%",
queue.songs.length - 1
);
if (pos < 0) return msg.channel.send(client.messages.noSongsInQueue);
if (pos >= queue.songs.length) return msg.channel.send(message1);
message2 = client.messages.removed.replace(
"%SONG%",
queue.songs[pos].title
);
msg.channel.send(message2);
return queue.songs.splice(pos, 1);
}
},
};
-15
View File
@@ -1,15 +0,0 @@
module.exports = {
name: 'replay',
alias: ["rp"],
usage: '',
description: 'Replay the currently playing song.',
permission: 'MANAGE_MESSAGES',
category: 'play',
async execute(msg, args, client, command) {
const queue = client.queue.get(msg.guild.id);
if (client.funcs.check(client, msg, command)) {
queue.endReason = "replay";
queue.connection.dispatcher.end()
}
}
};
-17
View File
@@ -1,17 +0,0 @@
module.exports = {
name: 'resume',
alias: ["continue"],
usage: '',
description: 'Resume the paused music.',
permission: 'MANAGE_MESSAGES',
category: 'music control',
execute(msg, args, client, command) {
const queue = client.queue.get(msg.guild.id);
if (client.funcs.check(client, msg, command)) {
if (!queue.paused) return msg.channel.send(client.messages.notPaused);
queue.paused = false;
queue.connection.dispatcher.resume();
return msg.channel.send(client.messages.resumed);
}
}
};
-61
View File
@@ -1,61 +0,0 @@
const ytsr = require('ytsr');
const he = require('he');
const { EmbedBuilder } = require('discord.js');
module.exports = {
name: 'search',
alias: ["sr", "find"],
usage: '<search word(s)>',
description: 'Search the top 10 queryes and choose one.',
permission: 'none',
category: 'play',
async execute(msg, args, client, command) {
const searchString = args.slice(1).join(" ");
const queue = client.queue.get(msg.guild.id);
const voiceChannel = msg.member.voice.channel;
if (!queue) {
if (!msg.member.voice.channel) return msg.channel.send(client.messages.noVoiceChannel);
} else {
if (voiceChannel !== queue.voiceChannel) return msg.channel.send(client.messages.wrongVoiceChannel);
}
if (!args[1]) return msg.channel.send(client.messages.noQuery);
if (voiceChannel.full) return msg.channel.send(client.messages.channelFull);
if (!voiceChannel.joinable) return msg.channel.send(client.messages.noPermsConnect);
if (!voiceChannel.speakable) return msg.channel.send(client.messages.noPermsSpeak);
ytsr(searchString, {
limit: 20,
}, async function (err, res) {
if (err) return console.log(err);
if (!res.items[0]) return msg.channel.send(client.messages.noResults);
const videoResults = res.items.filter(item => item.type === "video");
const videos = videoResults.slice(0, 10);
let index = 0;
const embed = new EmbedBuilder()
.setTitle(client.messages.songSelection)
.setDescription(`${videos.map(video2 => `**${++index}** ${he.decode(video2.title)} `).join('\n')}`)
.setFooter({ text: client.messages.provideANumber })
.setColor(client.config.embedColor)
msg.channel.send(embed);
try {
var response = await msg.channel.awaitMessages(message2 => message2.content > 0 && message2.content < 11 && message2.author === msg.author, {
max: 1,
time: 10000,
errors: ['time']
});
} catch (err) {
console.error(err);
return msg.channel.send(client.messages.cancellingVideoSelection);
}
const videoIndex = parseInt(response.first().content) - 1;
client.spotify.searchTracks(`track:${videos[videoIndex].title}`)
.then(function (data) {
client.funcs.handleVideo(
videos[videoIndex].link, msg, voiceChannel, client, false, "ytdl",
data.body.tracks.items[0]
);
}, function (err) {
console.log('Something went wrong!', err);
});
})
}
};
-36
View File
@@ -1,36 +0,0 @@
module.exports = {
name: "seek",
alias: ["none"],
usage: "<point in song (seconds)>",
description: "Seek to a specific point in the currently playing song.",
permission: "MANAGE_MESSAGES",
category: "music control",
async execute(msg, args, client, command) {
const queue = client.queue.get(msg.guild.id);
if (client.funcs.check(client, msg, command)) {
if (queue.nightCore)
return msg.channel.send(client.messages.disableNightCore);
if (!args[1])
return msg.channel.send(
`${client.messages.correctUsage}\`${
client.global.db.guilds[msg.guild.id].prefix
}seek ${command.usage}\``
);
const pos = parseInt(args[1]);
if (isNaN(pos)) return msg.channel.send(client.messages.validNumber);
if (pos < 0)
return msg.channel.send(client.messages.seekingPointPositive);
const totalLength = parseInt(queue.songs[0].info.lengthSeconds);
let message;
if (pos > totalLength) {
message = client.messages.seekMax.replace(
"%LENGTH%",
queue.songs[0].info.lengthSeconds
);
return msg.channel.send(message);
}
client.funcs.end(client, msg, pos, command);
}
},
};
-55
View File
@@ -1,55 +0,0 @@
const { EmbedBuilder } = require("discord.js");
module.exports = {
name: "settings",
alias: ["options", "ops", "preferences"],
usage: "<setting> <value(opt)>",
description: "Change the server settings for Musix.",
permission: "MANAGE_GUILD",
category: "util",
async execute(msg, args, client, command) {
let footer;
footer = client.messages.settingsFooter.replace(
"%PREFIX%",
client.global.db.guilds[msg.guild.id].prefix
);
const embed = new EmbedBuilder()
.setTitle(client.messages.settingsTitle)
.addFields(
{ name: client.messages.settingsPrefix, value: client.messages.settingsPrefixDesc, inline: true },
{ name: client.messages.settingsVolume, value: client.messages.settingsVolumeDesc, inline: true },
{ name: client.messages.settingsBlacklist, value: client.messages.settingsBlacklistDesc, inline: true },
{ name: client.messages.settingsPermissions, value: client.messages.settingsPermissionsDesc, inline: true },
{ name: client.messages.settingsSetDj, value: client.messages.settingsSetDjDesc, inline: true },
{ name: client.messages.settingsAnnounceSongs, value: client.messages.settingsAnnounceSongsDesc },
{ name: client.messages.settingsBass, value: client.messages.settingsBassDesc, inline: true },
{ name: client.messages.settingsAutoPlay, value: client.messages.settingsAutoPlayDesc, inline: true }
)
.setFooter({ text: footer })
.setAuthor({ name: client.user.username, iconURL: client.user.avatarURL() })
.setColor(client.config.embedColor);
const permissions = msg.channel.permissionsFor(msg.author);
if (msg.author.id !== client.config.devId) {
if (!permissions.has(command.permission))
return msg.channel.send(client.messages.noPermsManageSettings);
}
if (args[1]) {
const optionName = args[1].toLowerCase();
const option =
client.settingCmd.get(optionName) ||
client.settingCmd.find(
(cmd) => cmd.aliases && cmd.aliases.includes(optionName)
);
if (!option) return msg.channel.send(embed);
try {
option.execute(msg, args, client);
} catch (error) {
msg.reply(client.messages.errorExeOpt);
console.log(error.toString());
console.log(error.stack.replace(/at /g, "**at **"));
}
} else {
return msg.channel.send(embed);
}
},
};
-17
View File
@@ -1,17 +0,0 @@
module.exports = {
name: 'announcesongs',
async execute(msg, args, client) {
if (!args[2]) return msg.channel.send(`${client.messages.announceSongs} \`${client.global.db.guilds[msg.guild.id].announceSongs}\``);
if (args[2] === 'true') {
if (!client.global.db.guilds[msg.guild.id].announceSongs) {
client.global.db.guilds[msg.guild.id].announceSongs = true;
msg.channel.send(client.messages.announceSongsTrue);
} else return msg.channel.send(client.messages.announceSongsTrue);
} else if (args[2] === 'false') {
if (client.global.db.guilds[msg.guild.id].announceSongs) {
client.global.db.guilds[msg.guild.id].announceSongs = false;
msg.channel.send(client.messages.announceSongsFalse);
} else return msg.channel.send(client.messages.announceSongsFalse);
} else return msg.channel.send(client.messages.boolean);
}
};
-17
View File
@@ -1,17 +0,0 @@
module.exports = {
name: 'autoplay',
async execute(msg, args, client) {
if (!args[2]) return msg.channel.send(`${client.messages.autoPlay} \`${client.global.db.guilds[msg.guild.id].autoPlay}\``);
if (args[2] === 'true') {
if (!client.global.db.guilds[msg.guild.id].autoPlay) {
client.global.db.guilds[msg.guild.id].autoPlay = true;
msg.channel.send(client.messages.autoPlayTrue);
} else return msg.channel.send(client.messages.autoPlayTrue);
} else if (args[2] === 'false') {
if (client.global.db.guilds[msg.guild.id].autoPlay) {
client.global.db.guilds[msg.guild.id].autoPlay = false;
msg.channel.send(client.messages.autoPlayFalse);
} else return msg.channel.send(client.messages.autoPlayFalse);
} else return msg.channel.send(client.messages.boolean);
}
};
-14
View File
@@ -1,14 +0,0 @@
module.exports = {
name: 'bass',
async execute(msg, args, client) {
if (!args[2]) return msg.channel.send(client.messages.currentDefaultBass + client.global.db.guilds[msg.guild.id].bass);
if (args[2] === "false") {
client.global.db.guilds[msg.guild.id].bass = false;
return msg.channel.send(client.messages.bassFalse);
}
const level = parseInt(args[2]);
if (isNaN(level)) return msg.channel.send(client.messages.validNumber);
client.global.db.guilds[msg.guild.id].bass = level;
msg.channel.send(`${client.messages.bassLevel} ${level}!`);
}
};
-115
View File
@@ -1,115 +0,0 @@
const { EmbedBuilder } = require("discord.js");
module.exports = {
name: "blacklist",
async execute(msg, args, client) {
let embed;
switch (args[2]) {
case "add":
if (msg.mentions.channels.first()) {
if (
client.global.db.guilds[msg.guild.id].blacklist.includes(
msg.mentions.channels.first().id
)
)
return msg.channel.send(client.messages.channelAlreadyBlackListed);
} else if (
client.global.db.guilds[msg.guild.id].blacklist.includes(args[3])
)
return msg.channel.send(client.messages.channelAlreadyBlackListed);
if (
!msg.guild.channels.cache.get(args[3]) &&
!msg.mentions.channels.first()
)
return msg.channel.send(client.messages.idOrMentionChannel);
if (msg.mentions.channels.first()) {
client.global.db.guilds[msg.guild.id].blacklist.push(
msg.mentions.channels.first().id
);
let message;
message = client.messages.channelAdded.replace(
"%CHANNEL%",
msg.mentions.channels.first().name
);
msg.channel.send(message);
} else {
client.global.db.guilds[msg.guild.id].blacklist.push(args[3]);
let message;
message = client.messages.channelAdded.replace(
"%CHANNEL%",
msg.guild.channels.cache.get(args[3]).name
);
msg.channel.send(message);
}
break;
case "remove":
if (msg.mentions.channels.first()) {
if (
!client.global.db.guilds[msg.guild.id].blacklist.includes(
msg.mentions.channels.first().id
)
)
return msg.channel.send(client.messages.channelNotBlackListed);
if (
client.global.db.guilds[msg.guild.id].blacklist.indexOf(
msg.mentions.channels.first().id
) !== -1
) {
client.global.db.guilds[msg.guild.id].blacklist.splice(
client.global.db.guilds[msg.guild.id].blacklist.indexOf(
msg.mentions.channels.first().id
),
1
);
let message;
message = client.messages.channelRemoved.replace(
"%CHANNEL%",
msg.mentions.channels.first().name
);
msg.channel.send(message);
}
} else {
if (!client.global.db.guilds[msg.guild.id].blacklist.includes(args[3]))
return msg.channel.send(client.messages.channelNotBlackListed);
if (
client.global.db.guilds[msg.guild.id].blacklist.indexOf(args[3]) !==
-1
) {
client.global.db.guilds[msg.guild.id].blacklist.splice(
client.global.db.guilds[msg.guild.id].blacklist.indexOf(args[3]),
1
);
let message;
message = client.messages.channelRemoved.replace(
"%CHANNEL%",
msg.guild.channels.cache.get(args[3]).name
);
msg.channel.send(message);
}
}
break;
case "list":
embed = new EmbedBuilder()
.setTitle(client.messages.blacklistTitle)
.setDescription(
`${client.global.db.guilds[msg.guild.id].blacklist
.map((c) => `**-** <#${c}>`)
.join("\n")}`
)
.setColor(client.config.embedColor);
msg.channel.send(embed);
break;
case undefined:
embed = new EmbedBuilder()
.setTitle(client.messages.blacklistTitle)
.addFields(
{ name: "add", value: "Add a channel to the blacklist. (ID or mention)" },
{ name: "remove", value: "Remove a channel from the blacklist. (ID or mention)" },
{ name: "list", value: "List the currently blacklisted channels." }
)
.setColor(client.config.embedColor);
msg.channel.send(embed);
break;
}
},
};
-17
View File
@@ -1,17 +0,0 @@
module.exports = {
name: 'permissions',
async execute(msg, args, client) {
if (!args[2]) return msg.channel.send(`${client.messages.permission} \`${client.global.db.guilds[msg.guild.id].permissions}\``);
if (args[2] === 'true') {
if (!client.global.db.guilds[msg.guild.id].permissions) {
client.global.db.guilds[msg.guild.id].permissions = true;
msg.channel.send(client.messages.permissionsSetTrue);
} else return msg.channel.send(client.messages.permissionsTrue);
} else if (args[2] === 'false') {
if (client.global.db.guilds[msg.guild.id].permissions) {
client.global.db.guilds[msg.guild.id].permissions = false;
msg.channel.send(client.messages.permissionsSetFalse);
} else return msg.channel.send(client.messages.permissionsFalse);
} else return msg.channel.send(client.messages.boolean);
}
};
-9
View File
@@ -1,9 +0,0 @@
module.exports = {
name: 'prefix',
async execute(msg, args, client) {
if (!args[2]) return msg.channel.send(`${client.messages.currentPrefix} \`${client.global.db.guilds[msg.guild.id].prefix}\``);
if (args[2].length > 5) return msg.channel.send(client.messages.prefixMaxLength);
client.global.db.guilds[msg.guild.id].prefix = args[2];
msg.channel.send(`${client.messages.prefixSet} \`${args[2]}\``);
}
};
-27
View File
@@ -1,27 +0,0 @@
module.exports = {
name: "premium",
async execute(msg, args, client) {
if (!args[2])
return msg.channel.send(
client.messages.premiumState +
client.global.db.guilds[msg.guild.id].premium
);
if (client.global.db.guilds[args[2]].premium === false) {
client.global.db.guilds[args[2]].premium = true;
let message;
message = client.messages.nowPremium.replace(
"%GUILD%",
client.guilds.cache.get(args[2]).name
);
msg.channel.send(message);
} else if (client.global.db.guilds[args[2]].premium === true) {
client.global.db.guilds[args[2]].premium = false;
let message;
message = client.messages.noMorePremium.replace(
"%GUILD%",
client.guilds.cache.get(args[2]).name
);
msg.channel.send(message);
}
},
};
-18
View File
@@ -1,18 +0,0 @@
module.exports = {
name: 'reset',
async execute(msg, args, client) {
client.global.db.guilds[msg.guild.id] = {
prefix: client.config.prefix,
defaultVolume: client.config.defaultVolume,
permissions: client.config.permissions,
dj: client.config.dj,
djrole: client.config.djrole,
startPlaying: client.config.startPlaying,
bass: client.config.bass,
blacklist: [],
premium: false,
autoPlay: client.config.autoPlay,
};
msg.channel.send(client.messages.reset);
}
};
-30
View File
@@ -1,30 +0,0 @@
module.exports = {
name: 'setdj',
async execute(msg, args, client) {
if (!client.global.db.guilds[msg.guild.id].dj) {
if (!client.global.db.guilds[msg.guild.id].permissions) {
client.global.db.guilds[msg.guild.id].permissions = true;
}
if (msg.guild.roles.cache.find(x => x.name === "DJ")) {
client.global.db.guilds[msg.guild.id].djrole = msg.guild.roles.cache.find(x => x.name === "DJ").id;
msg.channel.send(client.messages.djRoleFound);
client.global.db.guilds[msg.guild.id].dj = true;
} else {
const permissions = msg.channel.permissionsFor(msg.client.user);
if (!permissions.has('MANAGE_ROLES')) return msg.channel.send(client.messages.noPermsManageRoles);
msg.guild.createRole({
name: 'DJ',
})
.then(role => client.global.db.guilds[msg.guild.id].djrole = role.id)
.catch((error) => {
console.log(error);
})
client.global.db.guilds[msg.guild.id].dj = true;
msg.channel.send(client.messages.djRoleCreated);
}
} else {
client.global.db.guilds[msg.guild.id].dj = false;
msg.channel.send(client.messages.djFalse);
}
}
};
-10
View File
@@ -1,10 +0,0 @@
module.exports = {
name: 'volume',
async execute(msg, args, client) {
if (!args[2]) return msg.channel.send(`${client.messages.currentDefaultVolume} \`${client.global.db.guilds[msg.guild.id].defaultVolume}\``);
if (isNaN(args[2])) return msg.channel.send(client.messages.defaultVolumeNumber);
if (args[2].length > 2) return msg.channel.send(client.messages.defaultVolumeMax);
client.global.db.guilds[msg.guild.id].defaultVolume = args[2];
msg.channel.send(`${client.messages.defaultVolumeSet} \`${args[2]}\``);
}
};
-15
View File
@@ -1,15 +0,0 @@
module.exports = {
name: 'shuffle',
alias: ["none"],
usage: '',
description: 'Shuffle the queue.',
permission: 'MANAGE_MESSAGES',
category: 'music control',
execute(msg, args, client, command) {
const queue = client.queue.get(msg.guild.id);
if (client.funcs.check(client, msg, command)) {
client.funcs.shuffle(queue.songs);
msg.channel.send(client.messages.shuffled);
}
}
};
-63
View File
@@ -1,63 +0,0 @@
module.exports = {
name: "skip",
alias: ["s", "next"],
usage: "",
description: "Skip the currently playing song.",
permission: "MANAGE_MESSAGES",
category: "music control",
execute(msg, args, client, command) {
const queue = client.queue.get(msg.guild.id);
const permissions = msg.channel.permissionsFor(msg.author);
if (!queue || !queue.playing)
return msg.channel.send(client.messages.noServerQueue);
if (msg.author.id !== client.config.devId) {
if (msg.member.voice.channel !== queue.voiceChannel)
return msg.channel.send(client.messages.wrongVoiceChannel);
if (client.global.db.guilds[msg.guild.id].permissions) {
if (
!msg.member.roles.cache.has(
client.global.db.guilds[msg.guild.id].djrole
) ||
!permissions.has(command.permission)
) {
return vote(queue, msg, client);
} else {
return skipSong(queue, msg, client);
}
} else {
return skipSong(queue, msg, client);
}
} else {
return skipSong(queue, msg, client);
}
},
};
function skipSong(queue, msg, client) {
msg.channel.send(client.messages.skipped);
queue.endReason = "skip";
queue.time = 0;
queue.connection.dispatcher.end();
}
function vote(queue, msg, client) {
queue.votesNeeded = Math.floor(queue.voiceChannel.members.size / 2);
queue.votesNeeded.toFixed();
if (queue.voiceChannel.members.size > 2) {
if (queue.voters.includes(msg.member.id))
return msg.channel.send(client.messages.alreadyVoted);
queue.votes++;
queue.voters.push(msg.member.id);
if (queue.votes >= queue.votesNeeded) {
queue.voters = [];
queue.votes = 0;
queue.votesNeeded = null;
return skipSong(queue, msg, client);
} else
return msg.channel.send(
`${client.messages.notEnoughVotes} ${queue.votes} / ${queue.votesNeeded}!`
);
} else {
return skipSong(queue, msg, client);
}
}
-30
View File
@@ -1,30 +0,0 @@
module.exports = {
name: "skipto",
alias: ["st"],
usage: "<point in queue>",
description: "Skip to a point in the queue",
permission: "MANAGE_MESSAGES",
category: "music control",
async execute(msg, args, client, command) {
const queue = client.queue.get(msg.guild.id);
if (client.funcs.check(client, msg, command)) {
if (!args[1])
return msg.channel.send(
`${client.messages.correctUsage}\`${command.usage}\``
);
let point = parseInt(args[1]);
point = point - 1;
if (isNaN(point)) return msg.channel.send(client.messages.validNumber);
if (point > queue.songs.length - 1)
return msg.channel.send(client.messages.noSongs);
if (point < 0) return msg.channel.send(client.messages.cantSkipToCurrent);
for (let i = 0; i < point; i++) {
queue.prevSongs.push(queue.songs.shift());
}
msg.channel.send(client.messages.skipped);
queue.endReason = "skipto";
queue.time = 0;
queue.connection.dispatcher.end();
}
},
};
-29
View File
@@ -1,29 +0,0 @@
const { EmbedBuilder } = require("discord.js");
module.exports = {
name: 'status',
alias: ["stats", "info"],
usage: '',
description: 'See the current status for Musix.',
permission: 'none',
category: 'info',
execute(msg, args, client, command) {
const uptime = client.funcs.msToTime(client.uptime, "dd:hh:mm:ss");
msg.channel.send(client.messages.pinging).then(m => {
const latency = m.createdTimestamp - msg.createdTimestamp;
const embed = new EmbedBuilder()
.setTitle(client.messages.statusTitle)
.addFields(
{ name: client.messages.statusField1, value: client.ws.ping, inline: true },
{ name: client.messages.statusField2, value: latency, inline: true },
{ name: client.messages.statusField3, value: uptime, inline: true },
{ name: client.messages.statusField4, value: client.shard.ids },
)
.setAuthor({ name: client.user.username, iconURL: client.user.avatarURL() })
.setColor(client.config.embedColor)
m.delete();
return msg.channel.send(embed);
});
}
};
-30
View File
@@ -1,30 +0,0 @@
module.exports = {
name: 'stop',
description: 'Stop the music and clear the queue.',
alias: ["none"],
usage: '',
permission: 'MANAGE_CHANNELS',
category: 'music control',
execute(msg, args, client, command) {
const queue = client.queue.get(msg.guild.id);
if (client.funcs.check(client, msg, command)) {
if (msg.content.includes("-force")) {
if (queue) {
queue.voiceChannel.leave();
queue.exists = false;
}
if (msg.guild.voice.channel) msg.guild.voice.channel.leave();
client.queue.delete(msg.guild.id);
return msg.channel.send(client.messages.stop);
}
if (!queue || !queue.playing) {
return msg.channel.send(client.messages.noServerQueue);
}
queue.songs = [];
queue.looping = false;
queue.endReason = "stop";
queue.connection.dispatcher.end();
msg.channel.send(client.messages.stop);
}
}
};
-22
View File
@@ -1,22 +0,0 @@
module.exports = {
name: 'volume',
description: 'Volume command.',
alias: ["none"],
usage: '<volume>',
cooldown: 5,
permission: 'MANAGE_MESSAGES',
category: 'music control',
execute(msg, args, client, command) {
const queue = client.queue.get(msg.guild.id);
if (!args[1] && queue) return msg.channel.send(`${client.messages.currentVolume}**${queue.volume}**`);
const volume = parseFloat(args[1]);
if (client.funcs.check(client, msg, command)) {
if (isNaN(volume)) return msg.channel.send(client.messages.validNumber);
if (volume > 100) return msg.channel.send(client.messages.maxVolume);
if (volume < 0) return msg.channel.send(client.messages.positiveVolume);
queue.volume = volume;
queue.connection.dispatcher.setVolume(volume / 100);
return msg.channel.send(`${client.messages.setVolume}**${volume}**`);
}
}
};
-99
View File
@@ -1,99 +0,0 @@
require("dotenv/config");
module.exports = {
discord_api_token: process.env.DISCORD_API_TOKEN,
bodKey: process.env.BODKEY,
youtube_api_key: process.env.YOUTUBE_API_KEY,
genius_api_key: process.env.GENIUS_API_KEY,
soundcloud_api_key: process.env.SOUNDCLOUD_API_KEY,
spotify_access_key: process.env.SPOTIFY_ACCESS_KEY,
spotify_client_secret: process.env.SPOTIFY_CLIENT_SECRET,
spotify_client_id: process.env.SPOTIFY_CLIENT_ID,
spotify_refresh_token: process.env.SPOTIFY_REFRESH_TOKEN,
lastfm_api_key: process.env.LASTFM_API_KEY,
lastfm_secret: process.env.LASTFM_SECRET,
port: 8888,
redirectUri: "http://localhost:8888/callback/",
testServer: "489111553321336832",
primary_test_channel: "617633098296721409",
secondary_test_channel: "570531724002328577",
devId: "360363051792203779",
embedColor: "#b50002",
invite: "https://musix-web.herokuapp.com/releases",
supportServer: "https://musix-web.herokuapp.com/discord",
devMode: false,
api: false,
saveDB: true,
respawn: true,
shards: 10,
shardDelay: 10000,
spawnTimeout: 60000,
respawnDelay: 1000,
prefix: ">",
devPrefix: "-",
defaultVolume: 50,
permissions: false,
dj: false,
djrole: null,
startPlaying: true,
bass: 1,
autoPlay: false,
};
module.exports.streamConfig = {
ytdlOptions: {
filter: "audio",
highWaterMark: 1 << 25,
volume: false,
requestOptions: {
maxRedirects: 4,
},
},
options: {
seek: null,
bitrate: 1024,
volume: 1,
type: "converted",
},
};
module.exports.queueConfig = {
textChannel: null,
voiceChannel: null,
connection: null,
songs: [],
volume: null,
bass: null,
nightCore: false,
playing: false,
paused: false,
looping: false,
songLooping: false,
votes: 0,
voters: [],
votesNeeded: null,
time: 0,
endReason: null,
};
module.exports.emojis = {
garbage: "🗑️ ",
green_check_mark: "<:green_check_mark:674265384777416705> ",
loading: "<a:loading:674284196700618783> ",
loudSound: ":loud_sound: ",
megaPhone: "📣 ",
notes: "<a:aNotes:674602408105476106>",
pause: "<:pause:674685548610322462> ",
previous: "<:reverse:705012312142119012> ",
redx: "<:redx:674263474704220182> ",
repeat: "<:repeat1:674685561377914892> ",
repeatSong: "<:repeatsong:674685573419761716> ",
resume: "<:resume:674685585478254603> ",
shuffle: "<:shuffle:674685595980791871> ",
signal: ":signal_strength: ",
skip: "<:skip:674685614221688832> ",
speaker: ":speaker: ",
stop: "<:stop:674685626108477519> ",
stopWatch: ":stopwatch: ",
volumeHigh: "<:volumehigh:674685637626167307> ",
};
-197
View File
@@ -1,197 +0,0 @@
const {
emojis
} = require("./config.js");
module.exports = {
emojis: emojis,
albumAdded: emojis.green_check_mark +
"Album has been added to the queue!",
alreadyPaused: emojis.redx + "The music is already paused!",
alreadyVoted: emojis.redx + "You have already voted to skip!",
announceSongs: emojis.megaPhone + "Current setting:",
announceSongsFalse: emojis.green_check_mark + "announcesongs now set to `false`!",
announceSongsTrue: emojis.green_check_mark + "announcesongs now set to `true`!",
autoPlay: "Current setting:",
autoPlayFalse: emojis.green_check_mark + "autoplay now set to `false`!",
autoPlayTrue: emojis.green_check_mark + "autoplay now set to `true`!",
bassApplied: emojis.volumeHigh + "The bass level **%BASS%** has been applied!",
bassFalse: emojis.green_check_mark + "Bass is now false!",
bassLevel: emojis.green_check_mark + "Bass level is now",
blacklistTitle: "Currently blacklisted channels:",
blackListedVC: emojis.redx +
"Your voiceChannel is blacklisted! Please choose another channel!",
boolean: emojis.redx + "Please define a boolean! (true/false)",
cancellingVideoSelection: emojis.redx + "Cancelling video selection",
cantSkipToCurrent: emojis.redx + "You can't skip to the song currently playing!",
channelAdded: emojis.green_check_mark + "Channel %CHANNEL% added to the blacklist!",
channelAlreadyBlackListed: emojis.redx + "That channel is already blacklisted!",
channelFull: emojis.redx + "Your voice channel is full!",
channelNotBlackListed: emojis.redx + "That channel is not blacklisted or does not exist!",
channelRemoved: emojis.green_check_mark +
"Channel %CHANNEL% has been removed from the blacklist!",
cmdUsesFooter: "These statistics are from the current uptime.",
cmdUsesTitle: "Musix Command Usage During Current Uptime",
correctUsage: emojis.redx + "correct usage: ",
currentBass: emojis.loudSound + "The current bass is: ",
currentDefaultBass: emojis.speaker + "Currect default bass level: ",
currentDefaultVolume: emojis.speaker + "Current default volume is:",
currentNightCore: emojis.speaker + "Currect Nightcore setting: ",
currentPrefix: "Current prefix:",
currentVolume: emojis.loudSound + "The current volume is: ",
dbSaved: emojis.green_check_mark + "DB Saved!",
defaultVolumeMax: emojis.redx +
"The default volume must be below `100` for quality and safety resons.",
defaultVolumeNumber: emojis.redx +
"I'm sorry, But the default volume needs to be a valid __number__.",
defaultVolumeSet: emojis.green_check_mark + "Default volume set to:",
devMode: emojis.redx +
"Dev mode has been turned on! Commands are only available to developer(s)!",
disabledSpotifySongs: emojis.redx + "Spotify songs cannot be played currently!",
disableNightCore: emojis.redx + "Please disable nightCore in order to use this command!",
dispatcherError: "Error with the dispatcher: ",
djFalse: emojis.green_check_mark + "`DJ` now set to `false`",
djRoleCreated: emojis.green_check_mark +
"I did not find a role `DJ` so i have created one for you!",
djRoleFound: emojis.green_check_mark +
"I found a `DJ` role from this guild! This role is now the DJ role.",
error: emojis.redx + "An error occured!.\nError: ",
errorConnecting: "Error with connecting to voice channel: ",
errorDetected: "Error detected: ",
errorDispatcher: emojis.redx +
"An error has occured while playing music! The queue has been deleted.\nError: ",
errorExe: emojis.redx + "there was an error trying to execute that command!",
errorExeOpt: emojis.redx + "there was an error trying to execute that option!",
evalTitle: "Evaluation Command",
failedToLoad: emojis.redx + "Songs failed to load: ",
helpCmdFooter: "Command Alias:",
helpFooter: '"%PREFIX%help <command>" to see more information about a command.',
helpTitle: "help",
idOrMentionChannel: emojis.redx + "Please provide a channel id or mention a channel!",
invalidGuild: emojis.redx + "Invalid guild id!",
invalidSpotifyUrl: emojis.redx + "That url cannot be played! If you believe this is a mistake please contact support!",
inviteTitle: "Invite a release of Musix to your discord server!",
joined: emojis.green_check_mark + "Joined",
joinSupport: "Join the musix support server: ",
keySet: emojis.green_check_mark + "Key set!",
leftAlone: "I have left the channel as i was left alone.",
loadingSongs: emojis.loading + "Loading song(s)",
looping: emojis.repeat + "Looping the queue now!",
loopingSong: emojis.repeatSong + "Looping **%TITLE%** now!",
lyricsTitle: "Lyrics",
lyricsUsage: emojis.redx + "Provide a song to search for!",
maxBass: emojis.redx + "The max bass is `10`!",
maxVolume: emojis.redx + "The max volume is `100`!",
mentionChannel: emojis.redx + "Please mention a channel!",
musicCommandsDisabled: emojis.redx +
"This channels has been blacklisted! Music commands cannot be used here!",
nightCoreApplied: emojis.green_check_mark +
"NightCore is now **%BOOLEAN%** this will be applied when the next song starts playing!",
noDj: emojis.redx + "You need the `DJ` role to use this command!",
noLooping: emojis.repeat + "No longer looping the queue!",
noLoopingSong: emojis.repeatSong + "No longer looping the song!",
noMorePremium: ":cry: Guild %GUILD% is no longer premium!",
noPerms: emojis.redx + `You need the %PERMS% permission to use this command!`,
noPermsConnect: emojis.redx +
"I cannot connect to your voice channel, make sure I have the proper permissions!",
noPermsEmbed: emojis.redx +
"I cannot send embeds (Embed links), make sure I have the proper permissions!",
noPermsManageRoles: emojis.redx +
"I cannot create roles (Manage roles), make sure I have the proper permissions! I will need this permission to create a `DJ` role since i did not find one!",
noPermsManageSettings: emojis.redx +
"You need the `MANAGE_SERVER` permission to change the settings!",
noPermsSpeak: emojis.redx +
"I cannot speak in your voice channel, make sure I have the proper permissions!",
noPermsUseExternalEmojis: emojis.redx +
"I cannot use external emojis, make sure I have the proper permissions!",
noPreviousSongs: emojis.redx + "No previous songs!",
noQuery: emojis.redx + "you need to use a link or search for a song!",
noResults: emojis.redx + "I could not obtain any search results!",
noResultsLyrics: emojis.redx + "I could not obtain any results!",
noResultsSpotify: emojis.redx +
"I could not obtain any results!",
noServerQueue: emojis.redx + "There is nothing playing!",
noSimilarResults: emojis.redx + "No similar songs found!",
noSongs: emojis.redx + "That song does not exist!",
noSongsInQueue: emojis.redx + "There are no songs in the queue!",
notPremium: emojis.redx + "This is not a premium guild!",
nowPlayingDesc: emojis.notes + "**Now playing:**",
notAllowed: emojis.redx + "You are not allowed to do that!",
notEnoughVotes: emojis.redx + "Not enough votes!",
notPaused: emojis.redx + "The music in not paused!",
noVoiceChannel: emojis.redx +
"I'm sorry but you need to be in a voice channel to play music!",
nowPlaying: "__Now playing__",
nowPremium: ":tada: Guild %GUILD% is now premium!",
paused: emojis.pause + "Paused the music!",
permission: "🔒 Permission requirement:",
permissionsFalse: emojis.redx + "That value is already `false`!",
permissionsSetFalse: emojis.green_check_mark + "Permissions requirement now set to: `false`",
permissionsSetTrue: emojis.green_check_mark + "Permissions requirement now set to: `true`",
permissionsTrue: emojis.redx + "That value is already `true`!",
pinging: emojis.loading + "Pinging...",
playlistAdded: emojis.green_check_mark +
"Playlist: **%TITLE%** has been added to the queue!",
positiveBass: emojis.redx + "The bass needs to be a positive number!",
positiveVolume: emojis.redx + "The volume needs to be a positive number!",
prefixHere: "My prefix here is: ",
prefixMaxLength: "The prefix must be shorter or equal to 5 letters!",
prefixSet: emojis.green_check_mark + "New prefix set to:",
premiumState: "Premium status: ",
previousSong: emojis.previous + "Previous",
provideANumber: "Please provide a number ranging from 1-10 to select one of the search results.",
provideASong: emojis.redx + "Please provide a song position in queue for me to remove!",
queueDeleted: "Queue deleted!",
queueDesc: "**Now playing:** %SONG%<a:aNotes:674602408105476106>\n:arrow_down: Next in queue :arrow_down:",
queueFooter: "songs in the queue!",
queueLength: emojis.redx + "There are only %SONGS% song(s) in the queue!",
queueTitle: "__Song queue__",
quotaReached: emojis.redx +
"Quota reached please try again after midnight Pacific Time (PT)!",
reloaded: "All files reloaded!",
removed: emojis.garbage + "removed `%SONG%` from the queue!",
reset: emojis.green_check_mark + "Reset __all__ guild settings!",
restart: "restarting all shards...",
resumed: emojis.resume + "Resumed the music!",
searchSimilarUsage: emojis.redx + "Correct usage: %USAGE%",
seekingPointPositive: emojis.redx + "The seeking point needs to be a positive number!",
seekMax: emojis.redx +
"The lenght of this song is %LENGTH% seconds! You can't seek further than that!",
settingsAnnounceSongs: "announcesongs",
settingsAnnounceSongsDesc: "Whether to announce songs that start playing or not.",
settingsAutoPlay: "autoplay",
settingsAutoPlayDesc: "When the queue ends similar songs will be played.",
settingsBass: "bass",
settingsBassDesc: "Change the default bass level.",
settingsBlacklist: "blacklist",
settingsBlacklistDesc: "Blacklist channels that you wan't to block music commands to be executed on or block the bot from joining certain voiceChannels.",
settingsFooter: "how to use: %PREFIX%settings <Setting name> <value>",
settingsPermissions: "permissions",
settingsPermissionsDesc: "Change whether to require permissions to use eg `skip, stop, pause, loop, etc...`",
settingsPrefix: "prefix",
settingsPrefixDesc: "Change the guild specific prefix. (string)",
settingsSetDj: "setdj",
settingsSetDjDesc: "Set a DJ role. This will allow chosen users to freely use all Musix commands. This will automatically set the `permissions` settings to true in order for the `DJ` role to have effect!",
settingsTitle: "Guild settings for Musix",
settingsVolume: "volume",
settingsVolumeDesc: "Change the default volume that the bot will start playing at. (number)",
setVolume: emojis.volumeHigh + "I set the volume to: ",
shuffled: emojis.shuffle + "Queue suffled!",
skipped: emojis.skip + "Skipped the song!",
songAdded: emojis.green_check_mark + "**%TITLE%** has been added to the queue!",
songBlockedWMG: emojis.redx +
"This song had been blocked by WMG (Warner Music Groud).\n<:skip:674685614221688832> Skipped to next song.",
songsAdded: emojis.green_check_mark + "%AMOUNT% songs added to the queue!",
songSelection: "__Song Selection__",
startPlaying: emojis.notes + "Start playing: ",
statusField1: emojis.signal + "Ping",
statusField2: "Latency",
statusField3: emojis.stopWatch + "Uptime",
statusField4: "Shard: ",
statusTitle: "Status for Musix",
stop: emojis.stop + "Stopped the music!",
tookTooLong: emojis.redx + "Something took too long! Please try again!",
validNumber: emojis.redx + "I'm sorry, But you need to enter a valid __number__.",
videoUnavailable: emojis.redx + "That video is unavaiable! Please try again.",
wrongVoiceChannel: emojis.redx +
"I'm sorry but you need to be in the same voice channel as Musix to use this command!",
};
-29
View File
@@ -1,29 +0,0 @@
module.exports = {
name: "guildcreate",
async execute(client, guild) {
client.db.collection("guilds").doc(guild.id).set({
prefix: client.config.prefix,
defaultVolume: client.config.defaultVolume,
permissions: client.config.permissions,
dj: client.config.dj,
djrole: client.config.djrole,
startPlaying: client.config.startPlaying,
bass: client.config.bass,
blacklist: [],
premium: false,
autoPlay: client.config.autoPlay,
});
client.global.db.guilds[guild.id] = {
prefix: client.config.prefix,
defaultVolume: client.config.defaultVolume,
permissions: client.config.permissions,
dj: client.config.dj,
djrole: client.config.djrole,
startPlaying: client.config.startPlaying,
bass: client.config.bass,
blacklist: [],
premium: false,
autoPlay: client.config.autoPlay,
};
},
};
-6
View File
@@ -1,6 +0,0 @@
module.exports = {
name: "guildcreate",
async execute(client, guild) {
delete client.global.db.guilds[guild.id];
},
};
-36
View File
@@ -1,36 +0,0 @@
module.exports = function (client) {
client.on('ready', () => {
require(`./ready.js`).execute(client);
}).on('message', (msg) => {
require(`./msg.js`).execute(client, msg);
}).on('guildCreate', (guild) => {
require(`./guildCreate.js`).execute(client, guild);
})
.on('guildDelete', (guild) => {
require(`./guildDelete.js`).execute(client, guild);
}).on('voiceStateUpdate', (oldState, newState) => {
require(`./voiceStateUpdate.js`).execute(client, oldState, newState);
}).on('error', (error) => {
console.log(error);
}).on('debug', (info) => {
if (client.config.devMode) console.log(info);
}).on('invalidated', () => {
console.log("Client session invalidated! Exiting the process!")
process.exit(1);
}).on('rateLimit', (rateLimitInfo) => {
}).on('shardDisconnect', (event, id) => {
client.logs.push(`Shard ${id} disconnected event ${event}`);
}).on('shardError', (error, shardId) => {
client.logs.push(`Shard ${shardId} error ${error}`);
}).on('shardReady', (id, unavailableGuilds) => {
client.logs.push(`Shard ${id} ready. Unavailable guilds: ${unavailableGuilds || 0}`);
}).on('shardReconnecting', (id) => {
client.logs.push(`shard ${id} reconnecting.`);
}).on('shardResume', (id, replayedEvents) => {
client.logs.push(`shard ${id} resume events ${replayedEvents}`);
}).on("warn", (info) => {
client.logs.push(`Warn! info: ${info}`);
console.log(`Warn! info: ${info}`);
});
}
-41
View File
@@ -1,41 +0,0 @@
module.exports = {
name: "message",
async execute(client, msg, Discord) {
if (msg.author.bot || !msg.guild) return;
if (!client.global.db.guilds[msg.guild.id]) client.funcs.checkDB(client);
let prefix = client.global.db.guilds[msg.guild.id].prefix || client.config.prefix;
const args = msg.content.slice(prefix.length).split(" ");
if (client.config.devMode) prefix = client.config.devPrefix;
const permission = msg.channel.permissionsFor(client.user);
if (!permission.has("SEND_MESSAGES")) return;
if (msg.mentions.users.first()) {
if (msg.mentions.users.first().id === client.user.id) {
if (!args[1] || args[0] !== `@!${client.user.id}>`) return;
if (args[1] === "prefix") {
if (!args[2])
return msg.channel.send(
`${client.messages.prefixHere}\`${prefix}\`.`
);
if (args[2] === "=" && args[3]) return (prefix = args[3]);
}
args.shift();
getCommand(client, args, msg, Discord);
}
}
if (!msg.content.startsWith(prefix)) return;
getCommand(client, args, msg, Discord);
},
};
function getCommand(client, args, msg) {
if (!args[0]) return;
const commandName = args[0].toLowerCase();
if (commandName === "none") return;
const command =
client.commands.get(commandName) ||
client.commands.find(
(cmd) => cmd.alias && cmd.alias.includes(commandName)
);
if (!command) return;
client.funcs.exe(msg, args, client, command);
}
-45
View File
@@ -1,45 +0,0 @@
module.exports = {
name: "ready",
async execute(client, Discord) {
const remoteMusixGuildsData = await client.funcs.dbget(
"guilds",
null,
client
);
remoteMusixGuildsData.forEach((guildData) => {
client.global.db.guilds[guildData.id] = guildData.d;
});
if (client.config.devMode) {
client.guilds.cache.forEach((guild) => {
client.global.db.guilds[guild.id] = {
prefix: client.config.devPrefix,
defaultVolume: client.config.defaultVolume,
permissions: client.config.permissions,
dj: client.config.dj,
djrole: client.config.djrole,
startPlaying: client.config.startPlaying,
bass: client.config.bass,
blacklist: [],
premium: true,
autoPlay: client.config.autoPlay,
};
});
}
console.log(`- DB Set - Shard: ${client.shard.ids} -`);
client.user.setActivity(`@${client.user.username} help | 🎶`, {
type: "LISTENING",
});
client.user.setStatus("online");
client.funcs.getSpotifyKey(client);
console.log(`- Activated - Shard: ${client.shard.ids} -`);
setInterval(() => {
if (!client.config.devMode) client.funcs.checkDB(client);
}, 60000);
setInterval(async () => {
client.funcs.saveDB(client);
}, 1800000);
setInterval(() => {
client.funcs.getSpotifyKey(client);
}, 3600000);
},
};
@@ -1,34 +0,0 @@
module.exports = {
name: 'voiceStateUpdate',
async execute(client, oldState, newState) {
if (oldState.channel === null) return newState.setSelfDeaf(true);
let change = false;
const queue = client.queue.get(newState.guild.id);
if (!queue) return;
if (newState.member.id === client.user.id && oldState.member.id === client.user.id) {
if (newState.member.voice.channel === null) {
queue.songs = [];
queue.looping = false;
queue.endReason = "manual disconnect";
return client.queue.delete(newState.guild.id);
}
if (newState.member.voice.channel !== queue.voiceChannel) {
change = true;
queue.voiceChannel = newState.member.voice.channel;
queue.connection = newState.connection;
}
}
if (oldState.channel.members.size === 1 && oldState.channel === queue.voiceChannel || change) {
setTimeout(() => {
if (!queue || !queue.connection.dispatcher || queue.connection.dispatcher === null) return;
if (queue.voiceChannel.members.size === 1) {
queue.textChannel.send(client.messages.leftAlone);
queue.songs = [];
queue.looping = false;
queue.endReason = "Timeout";
queue.connection.dispatcher.end();
}
}, 120000);
}
}
}
-21
View File
@@ -1,21 +0,0 @@
module.exports = function (client, connection) {
connection.on("authenticated", () => {
if (client.config.devMode) console.log("Voice connection initiated.");
}).on("debug", (message) => {
if (client.config.devMode) console.log(message);
}).on("disconnect", () => {
if (client.config.devMode) console.log("Voice connection disconnected.");
}).on("error", (error) => {
console.log(error);
}).on("failed", (error) => {
if (client.config.devMode) console.log(error);
}).on("newSession", () => {
if (client.config.devMode) console.log("New voice session id received!");
}).on("ready", () => {
if (client.config.devMode) console.log("Voice connection ready.");
}).on("reconnecting", () => {
if (client.config.devMode) console.log("Voice connection reconnecting.");
}).on("warn", (warning) => {
console.log(`Voice connection warning: ${warning}`);
})
}
-14
View File
@@ -1,14 +0,0 @@
module.exports = {
async execute(client, error, guild) {
const queue = client.queue.get(guild.id);
console.log(error);
/*if (error = "Error: input stream: This video contains content from WMG, who has blocked it on copyright grounds.") {
queue.endReason = "skip";
queue.connection.dispatcher.end();
return queue.textChannel.send(client.messages.songBlockedWMG);
}*/
queue.voiceChannel.leave();
client.queue.delete(guild.id);
return queue.textChannel.send(client.messages.errorDispatcher + `\`${error}\``);
},
};
-95
View File
@@ -1,95 +0,0 @@
const similarSongs = require("similar-songs");
const ytdl = require("ytdl-core");
module.exports = {
async execute(client, guild) {
const queue = client.queue.get(guild.id);
queue.playing = false;
if (queue.endReason === "seek") {
return (queue.playing = true);
}
if (!queue.songLooping) {
if (queue.looping) {
queue.songs.push(queue.songs[0]);
}
queue.time = 0;
queue.votes = 0;
queue.voters = [];
if (queue.endReason !== "replay") {
if (queue.endReason === "previous")
queue.songs.unshift(queue.prevSongs.pop());
if (queue.endReason !== "previous")
queue.prevSongs.push(queue.songs.shift());
if (
client.global.db.guilds[guild.id].autoPlay &&
!queue.songs[0] &&
queue.endReason !== "stop"
) {
if (queue.prevSongs.length > 0)
return findSimilar(client, queue, queue.prevSongs, guild);
}
}
}
client.funcs.play(guild, queue.songs[0], client, 0, true);
},
};
function findSimilar(client, queue, prevSongs, guild) {
let retries = 0;
const query =
prevSongs[Math.floor(Math.random() * Math.floor(prevSongs.length))];
if (!query || !query.track) return findSimilar(client, queue, prevSongs, guild);
similarSongs.find({
title: query.track.name,
artist: query.track.artists[0].name,
limit: 10,
lastfmAPIKey: client.config.lastfm_api_key,
lastfmAPISecret: client.config.lastfm_secret,
youtubeAPIKey: client.config.youtube_api_key,
},
async function (err, songs) {
if (err) {
if (
err.message ==
'The request cannot be completed because you have exceeded your <a href="/youtube/v3/getting-started#quota">quota</a>.'
) {
queue.voiceChannel.leave();
queue.exists = false;
client.queue.delete(guild.id);
queue.textChannel.send(client.messages.quotaReached);
return;
}
console.log(err.message);
queue.voiceChannel.leave();
queue.exists = false;
client.queue.delete(guild.id);
return queue.textChannel.send(client.messages.error);
}
if (songs[0]) {
const random = Math.floor(Math.random() * Math.floor(songs.length));
const songInfo = await ytdl.getInfo(
`https://www.youtube.com/watch?v=${songs[random].youtubeId}`
);
queue.songs.push({
title: songInfo.videoDetails.title,
url: `https://www.youtube.com/watch?v=${songs[random].youtubeId}`,
author: client.user,
type: "ytdl",
info: songInfo.videoDetails,
track: query.track,
});
client.funcs.play(guild, queue.songs[0], client, 0, true);
} else {
if (prevSongs.length > 4 && retries < 6) {
findSimilar(client, queue, prevSongs, guild);
retries++;
return;
}
queue.textChannel.send(client.messages.noSimilarResults);
client.funcs.play(guild, queue.songs[0], client, 0, true);
}
}
);
}
-16
View File
@@ -1,16 +0,0 @@
module.exports = function (client, dispatcher, queue, guild) {
dispatcher.on("finish", () => {
if (client.config.devMode) console.log("Dispatcher finish.");
require("./finish").execute(client, guild);
})
.on("start", () => {
if (client.config.devMode) console.log("Dispatcher start.");
queue.endReason = null;
dispatcher.player.streamingData.pausedTime = 0;
})
.on("error", (error) => {
require("./error").execute(client, error, guild);
}).on("debug", (info) => {
if (client.config.devMode) console.log(info);
})
}
-34
View File
@@ -1,34 +0,0 @@
module.exports = function (client, msg, command) {
const queue = client.queue.get(msg.guild.id);
const permissions = msg.channel.permissionsFor(msg.author);
if (!queue || !queue.playing && command.name !== "stop") {
msg.channel.send(client.messages.noServerQueue);
return false;
}
if (msg.author.id !== client.config.devId) {
if (msg.member.voice.channel !== queue.voiceChannel) {
msg.channel.send(client.messages.wrongVoiceChannel);
return false;
}
if (client.global.db.guilds[msg.guild.id].permissions === true) {
if (client.global.db.guilds[msg.guild.id].dj) {
if (
!msg.member.roles.cache.has(
client.global.db.guilds[msg.guild.id].djrole
)
) {
msg.channel.send(client.messages.noDj);
return false;
} else return true;
} else if (!permissions.has(command.permission)) {
let message;
message = client.messages.noPerms.replace(
"%PERMS%",
command.permissions
);
msg.channel.send(message);
return false;
} else return true;
} else return true;
} else return true;
};
-52
View File
@@ -1,52 +0,0 @@
module.exports = async function (client) {
client.guilds.cache.forEach((guild) => {
if (!client.global.db.guilds[guild.id]) {
client.db.collection("guilds").doc(guild.id).set({
prefix: client.config.prefix,
defaultVolume: client.config.defaultVolume,
permissions: client.config.permissions,
dj: client.config.dj,
djrole: client.config.djrole,
startPlaying: client.config.startPlaying,
bass: client.config.bass,
blacklist: [],
premium: false,
autoPlay: client.config.autoPlay,
});
client.global.db.guilds[guild.id] = {
prefix: client.config.prefix,
defaultVolume: client.config.defaultVolume,
permissions: client.config.permissions,
dj: client.config.dj,
djrole: client.config.djrole,
startPlaying: client.config.startPlaying,
bass: client.config.bass,
blacklist: [],
premium: false,
autoPlay: client.config.autoPlay,
};
return;
}
if (!client.global.db.guilds[guild.id].prefix)
client.global.db.guilds[guild.id].prefix = client.config.prefix;
if (!client.global.db.guilds[guild.id].defaultVolume)
client.global.db.guilds[guild.id].defaultVolume =
client.config.defaultVolume;
if (!client.global.db.guilds[guild.id].permissions)
client.global.db.guilds[guild.id].permissions = client.config.permissions;
if (!client.global.db.guilds[guild.id].dj)
client.global.db.guilds[guild.id].dj = client.config.dj;
if (!client.global.db.guilds[guild.id].djrole)
client.global.db.guilds[guild.id].djrole = client.config.djrole;
if (!client.global.db.guilds[guild.id].startPlaying)
client.global.db.guilds[guild.id].startPlaying =
client.config.startPlaying;
if (!client.global.db.guilds[guild.id].bass)
client.global.db.guilds[guild.id].bass = client.config.bass;
if (!client.global.db.guilds[guild.id].blacklist)
client.global.db.guilds[guild.id].blacklist = [];
if (!client.global.db.guilds[guild.id].premium)
client.global.db.guilds[guild.id].premium = false;
if (!client.global.db.guilds[guild.id].autoPlay) client.global.db.guilds[guild.id].autoPlay = client.config.autoPlay
});
};
-22
View File
@@ -1,22 +0,0 @@
module.exports = async function (collection, doc, client) {
if (doc) {
let d = await client.db.collection(collection).doc(doc).get().catch(err => {
console.log('Error getting document', err);
return 'error';
});
return d.data();
} else {
let d = await client.db.collection(collection).get().catch(err => {
console.log('Error getting document', err);
return 'error';
});
let finalD = [];
d.forEach(doc => {
finalD.push({
id: doc.id,
d: doc.data(),
});
});
return finalD;
}
};
-12
View File
@@ -1,12 +0,0 @@
module.exports = async function (client, msg, pos, command) {
const seek = parseInt(pos);
const queue = client.queue.get(msg.guild.id);
if (command.name === "seek") {
queue.time = seek * 1000;
} else {
queue.time = queue.connection.dispatcher.streamTime + queue.time;
}
queue.connection.dispatcher.end();
queue.endReason = "seek";
client.funcs.play(msg.guild, queue.songs[0], client, seek, false);
};

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