Releases: 200percentmicky/chadmusic
2024.4.1
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)
2024.4.0
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
2024.3.3
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
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
2023.3.1
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
2024.3.0
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. SetDEBUG_LOGGING
totrue
to enable. - Added: User's global nicknames to the footers of player windows.
- Added: Autocomplete to
/search
. - Added:
exitCode
parameter toChadMusic.die()
. Default is0
. - 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 useChadMusic.die()
with a exit code of1
. - Fixed: Playlists bypassing max queue limits, if any.
- Fixed:
[p]shutdown
not working without theBUG_CHANNEL
variable being defined, causing aTypeError
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
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 aTypeError
for a function that was renamed.
2024.2.0
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
andcompeting
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
tono
.
- Moved the currently playing track's title to the
- 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.
2024.1.0
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 usingnpm run
.update
updates the bot to themain
(stable) branch.update:dev
updates the bot to thedevelop
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
, andleaveonstop
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 aInvalid 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
.
2023.5.2
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.