Skip to content

Releases: 200percentmicky/chadmusic

2024.4.1

01 Oct 21:42
a9a834e
Compare
Choose a tag to compare

This is a maintenance release.

Important

Update 10/10/2024

A while ago, I previously stated that ChadMusic was going to be rewritten and rebranded. For now, I've decided to vault the rewrite for the time being and resume active development on this repository. I may return to rewriting the bot in the future, but it will be done on this repository in a seperate branch. I probably won't rebrand the project or anything of that nature since it's not really necessary to do so.

In regards to the Sign in to confirm you're not a bot and Status code: 403 errors, I'm well aware that this is an ongoing issue. As of right now, providing your cookies in the cookies.json file will no longer work if this error occurs. I will be implementing a fix for it in the future, but right now it's currently not my top priority to implement a fix for it at this time. If you have a valid IPv6 range address, try utilizing IP rotation for now.

Note

If the bot fails to build with the npm run build script, delete package-lock.json and the node_modules folder (if it exists), and run npm install.

  • Changed: [Internal] hasExt function will now check if a file exists in Discord's CDN.
  • Changed: [Internal] Merged all createAgent functions into one function.
  • Fixed: Masked links for the Uploader field PlayerWindow showing undefined.
  • Fixed: Build errors occuring when attempting to run the build script or from running npm install. (#21)

Full Changelog

2024.4.0

23 Aug 19:52
1ed472e
Compare
Choose a tag to compare

This release updates the bot to DisTube v5 and incorporates new featues and changes introduced in the new version.

  • Added: New environment variables.
    • SOUNDCLOUD_CLIENT_ID
    • SOUNDCLOUD_OAUTH_TOKEN
    • SPOTIFY_CLIENT_ID
    • SPOTIFY_CLIENT_SECRET
    • SPOTIFY_TOP_TRACKS_COUNTRY
    • FFMPEG_DEBUG_LOGGING
  • Added: playerDebug event.
  • Added: Missing Track Title as VC Status field to [p]settings and /settings current.
  • Added: New a subcommand to [p]blocksong and /settings blocksong.
    • [p]blocksong
    • /settings blocksong list
  • Added: A newly added track's position in the queue to player windows.
  • Changed: SoundCloud is now the default source when using [p]play and /play track.
  • Changed: App owner information is now fetched during boot.
  • Changed: The list of blocked songs no longer show in settings in favor of the new subcommands above.
  • Changed: The search menu in [p]search and /search to properly defer after selecting a track.
  • Changed: Player errors now show the track that errored out. The errors also no longer show the error name, only its message.
  • Changed: Replaced functions for IP Rotation to not use a proxy.
  • Changed: Simplified the message for setting a DJ role with a role that's already recognized as a DJ.
  • Changed: Reverted eval to being synchronous due to an issue of not being able to define variables.
  • Changed: The clientReady event to run once.
  • Changed: ffmpegDebug now requires both DEBUG_LOGGING and FFMPEG_DEBUG_LOGGING to log.
  • Fixed: An issue causing a TypeError exception in [p]play when providing no content in between the <> characters. (These characters are used to prevent generating embeds for links.)
  • Fixed: Current player volume not being shown (causing an exception) when running [p]volume without arguments and /player volume view.
  • Fixed: An issue in [p]allowexplicit that causes the usage prompt to always show regardless if arguments are provided.
  • Updated: DisTube to 5.0.2
  • Updated: @distube/ytdl-core to 4.14.3
  • Updated: undici to 6.19.2
  • Removed: The following environment variables.
    • OWNER_ID (The app owner's user ID is automatically fetched after boot.)
    • SPOTIFY_EMIT_EVENTS_AFTER_FETCHING
    • SPOTIFY_PARALLEL

Full Changelog

2024.3.3

10 Jul 21:27
dc9260b
Compare
Choose a tag to compare

Important

There is an issue that prevents some tracks from loading. This has been fixed, and can be patched by running npm run update from the terminal. @distube/ytdl-core will now be updated to 4.13.6 instead.

This release fixes a major bug and patches security vulnerabilities.

  • Updated: @distube/ytdl-core to 4.13.5 (#20)
  • Updated: undici to 6.19.2
  • Updated: ws to 8.18.0

Full Changelog: 2024.3.2...2024.3.3

2024.3.2

21 Jun 00:43
Compare
Choose a tag to compare

This is a maintenance release.

  • Changed: The message when enabling Leave on Empty to include the currently set Empty Cooldown time.
  • Fixed: Permission issues for the following commands that were falsely marked as "Owner Only". These commands are available to everyone and require the Manage Server permission to use.
    • [p]emptycooldown
    • [p]leaveonempty
    • [p]leaveonfinish
    • [p]leaveonstop
    • [p]songvcstatus

Full Changelog

2023.3.1

16 Jun 01:03
Compare
Choose a tag to compare

This is a maintenance release.

  • Fixed: Leave on empty activating when a voice channel is not empty.
  • Updated: Discord.js to 14.15.3
  • Updated: slash-create to 6.1.4

Full Changelog

2024.3.0

13 Jun 22:46
Compare
Choose a tag to compare

This release adds sudo access which grants the bot owner DJ for a server regardless of permissions, changes sharding to use discord-hybrid-sharding, and fixes additional bugs that have been present in the bot for quite some time. This release also adds a few new features that may be useful for debugging purposes.

  • Added: Sudo access. (#17)
  • Added: New commands.
    • [p]sudo | /core owner sudo
  • Added: creatorError event.
  • Added: processExit event. This is useful if the bot's Node.js process exited with a non-zero status code.
  • Added: SHARDS_PER_CLUSTER variable.
  • Added: ffmpegDebug event. Set DEBUG_LOGGING to true to enable.
  • Added: User's global nicknames to the footers of player windows.
  • Added: Autocomplete to /search.
  • Added: exitCode parameter to ChadMusic.die(). Default is 0.
  • Added: Sharding info to /core debug.
  • Changed: Blocked live streams and radio broadcasts from being added to the queue while a max time limit is set.
  • Changed: Sharding to use discord-hybrid-sharding. (#15)
  • Changed: Eval is now asynchronous.
  • Changed: DJ check variables throughout the bot to use isDJ function.
  • Changed: unhandledException event to use ChadMusic.die() with a exit code of 1.
  • Fixed: Playlists bypassing max queue limits, if any.
  • Fixed: [p]shutdown not working without the BUG_CHANNEL variable being defined, causing a TypeError exception.
  • Fixed: Max time limits not destroying the player if the queue is empty causing a TypeError exception in some commands. (#19)
  • Fixed: An error occurring in /core debug due to a package with an undefined export.
  • Updated: DisTube to 4.2.2
  • Updated: Discord.JS to 14.15.2
  • Updated: slash-create to 6.1.3
  • Removed: Commit hash string from version number.
  • Known issue: There is a slight delay by around ~1 second when changing filters. There is currently no fix for this at the moment.
  • Known issue: It's possible for members without DJ permissions to add a playlist with tracks that exceed max time limits. Currently looking into this issue.

Full Changelog: 2024.2.1...2024.3.0

2024.2.1

16 Apr 13:21
Compare
Choose a tag to compare

This is a maintenance release.

  • Changed: Inhibitors are no longer reloaded when using [p]reload and /core owner reload.
  • Fixed: [p]reload and /core owner reload throwing a TypeError for a function that was renamed.

Full Changelog

2024.2.0

02 Apr 16:10
Compare
Choose a tag to compare

This release adds a few new features such as changing the voting system when skipping a track to have a per-server custom percentage, a way for the bot to set the playing track's title as a voice channel status, and ways to easily change the bot's avatar and (more recently) its profile banner.

Warning

This release contains an experimental feature.
Voice channel statuses are considered experimental as they're not documented in Discord's API and may change or break at any time. Learn more.

  • Added: New commands.
    • [p]songvcstatus | /settings songvcstatus
    • [p]votepercentage | /settings votepercentage
    • [p]setavatar | /core owner setavatar
    • [p]setbanner | /core owner setbanner
    • /core owner setgame
  • Added: custom and competing as valid playing status types to [p]setgame and /core owner setgame
  • Added: [Experimental] The ability for the bot to add the playing track's title as a voice channel status.
  • Added: [Internal] die() to client. Used for destroying the client when shutting down.
  • Added: [Internal] CMPlayerWindow class.
  • Changed: Default playing status type to custom in [p]setgame and /core owner setgame.
  • Changed: More emojis from raw unicode to strings.
  • Changed: Changed command descriptions for various commands.
  • Changed: Various UI changes.
    • Moved the currently playing track's title to the description field in the Now playing embeds.
    • Changed some prompts regarding blocked features during livestreams from error to no.
  • Changed: [Internal] Moved register slash command functions to the ready event.
  • Fixed: A typo that displayed undefined when a player error occured.
  • Fixed: An issue where votes for skipping are not being removed when the track finishes itself, if votes are present.
  • Fixed: A regression that prevented a stack trace from being logged to a text channel when a slash command errored.
  • Fixed: A regression in /play attachment that prevented attachments from being added to the queue.
  • Fixed: Security vulnerabilities regarding some old packages.
  • Fixed: A memory-leak that occured in an older version of undici.
  • Updated: Discord.js to 14.14.1
  • Updated: Fork of discord-akairo to 10.1.2-dev
  • Updated: slash-create to 6.0.2
  • Updated: undici to 6.6.0
  • Removed: Unnecessary Embed Links client permissions from many commands that don't need it.
  • Removed: Global setting values from [p]globalsettings and /settings global current.
  • Removed: [Internal] Unused functions and variables.

Full Changelog

2024.1.0

11 Feb 00:30
Compare
Choose a tag to compare

First and foremost, Happy New Year to everyone! I hope everyone had a great holiday season. To welcome 2024, this release marks the beginning of the 2024 builds of ChadMusic.

This release contains a lot of internal changes including overhauling the bot's console log. This release also fixes some lingering issues as well as adding and changing additional features.

Warning

Changes to slash commands.
This release contains changes to slash commands. It's recommended to change DELETE_INVALID_COMMANDS to true in the environment variables before starting the bot.

  • Added: [Internal] Added CMError class.
  • Added: [Internal] Added partials and intents for Direct Messages.
  • Added: [Internal] Error handling when starting the bot. If the bot crashes on startup, it's now logged as FATAL.
  • Added: New commands.
    • [p]pulsator is now a prefix command.
    • [p]move | /queue move
  • Added: List of available slash commands to [p]help.
  • Added: A comformation prompt to [p]setdj and /settings djrole when adding a role that already has DJ permissions.
  • Added: [Internal] Two new scripts to package.json. Run these scripts by using npm run.
    • update updates the bot to the main (stable) branch.
    • update:dev updates the bot to the develop branch.
  • Added: [Internal] New packages.
  • Added: Voice Channel field to Now Playing embeds.
  • Changed: [Internal] Updated permission bits.
  • Changed: [p]iheartradio and /play radio iheartradio will now provide search results instead of playing the first station.
  • Changed: emptycooldown, leaveonempty, leaveonfinish, and leaveonstop are now configurable per-server. Because of this, the following commands were changed:
    • [p]emptycooldown, [p]eaveonempty, [p]leaveonfinish, and [p]leaveonstop now requires the Manage Server permission to use.
    • [Breaking] Changed slash command names.
      • /settings global emptycooldown -> /settings emptycooldown
      • /settings global leaveonempty -> /settings leaveonempty
      • /settings global leaveonfinish -> /settings leaveonfinish
      • /settings global leaveonstop -> /settings leaveonstop
  • Changed: [Interal] Overhauled logging to use tslog.
  • Changed: Prevent slash commands from executing in Direct Messages. (except for /core)
  • Changed: [p]license will default to sending a direct message to the user.
    • If direct messages are not being accepted, it will send it to the channel instead.
  • Changed: Prevented the following commands from being used during live broadcasts.
    • [p]seek
    • [p]reverse
    • [p]tempo
    • /player seek
    • /filter reverse
    • /filter tempo
  • Changed: Prompts in [p]startover and /player startover to acknowledge live streams.
  • Fixed: [p]nowplaying and /player nowplaying throwing an exception whenever a track's duration isn't provided.
  • Fixed: The bot not responding in Direct Messages.
  • Fixed: [p]search throwing a Invalid string length exception.
    • This was suppose to be fixed in 2023.4.3, but failed since it still provided a string that broke the menu.
    • After testing, this is now fully resolved.
  • Fixed: IPv6 Rotation not being properly applied. It's now being applied every time a track is added to the queue.
  • Fixed: [p]help showing the command's name in a list of aliases for a command.
  • Fixed: /settings djmode not allowing DJs without the Manage Server permission to use the command.
  • Fixed: Missing permissions message returning an empty string.
  • Fixed: Reactions throwing an exception if the bot was missing the Add Reactions permission.
  • Removed: Unused packages, including underscore.

Full Changelog

2023.5.2

30 Nov 04:59
Compare
Choose a tag to compare

I totally forgot to mark this as the latest version. This version has been stable for a good few weeks lol... Anyway...

This is a maintenance release.

This release mainly reinstates the support for classic prefix commands and removes the deprecation warning regarding it.

  • Added: Link to documentation in [p]about, [p]license, /core about, and /core license.
  • Removed: Deprecation message regarding classic prefix commands.

Full Changelog