📢 PhantomBot v3.7.4.0 is now available as a stable build.
📢 We now have JavaDocs available for the core. Links in the top-right switch between stable and nightly
⚠️ To preserve current (customapi)
and (customapijson)
consistency, an update task will attempt to add a (encodeurl)
tag around the URI. This may break some URIs and require adjustment. It is recommended to test if the URI is valid without the (encodeurl)
tag
✅ Added:
➡️ Added the command tag (removerole) for Discord, allowing commands to remove Discord roles (gmt2001)
➡️ Added a new formula for command tag (age) which allows specifying a custom format (gmt2001, requested by TheProbo #3050)
➡️ Added the ability to set a required permission level to start the adventure game, separate from the command permission to join the adventure. For example: Only subscribers can start the adventure, but all viewers can join the heist (PrDatur #3082)
➡️ Added and activated EventSub WebSocket support for the topics channel.update
, stream.online
, stream.offline
, and Predictions (gmt2001)
➡️ Added predictionsHandler, which provides commands for running predictions via chat (gmt2001)
➡️ Added $.jsArgs(list)
, which attempts to auto-convert any List<>
or array[]
type into a JS array (gmt2001)
➡️ Added $.isJSArray(obj)
which is a drop-in replacement for ECMAScript Array.isArray(obj)
(gmt2001)
➡️ Added $.duration(str)
which converts Duration strings (eg. 12m15s) into an integer number of seconds. Supports Weeks, Days, Hours, Minutes, and Seconds (gmt2001)
➡️ Added a routine which sends a notification to the panel when it connects to the websocket if there are new scopes available (gmt2001)
➡️ Added char CaselessProperties.getPropertyAsChar(String) as well as overloads (String, char) and (String, Supplier) (gmt2001)
➡️ Added the ability to override the command prefix of !
in both Discord and Twitch from the Bot Settings page (gmt2001)
🌀 Changed:
➡️ Changed TMI to allow sending messages when not a moderator. It will still print a warning every so often (gmt2001 #3079)
➡️ Changed TMI to use a lower rate limit of 20 per 30 seconds when not a moderator (gmt2001 #3079)
➡️ Changed the initReady
hook to fire on channel join instead of on moderator detected (gmt2001 #3079)
➡️ Changed the notices/timers page on the panel to allow re-ordering the individual notices within a timer-group (gmt2001, requested by BloodyIron #2468)
➡️ Changed some errors in the YT playlist import to print to console instead of being hidden (gmt2001)
➡️ Updated $.jsString
and $.javaString
to allow an optional second parameter which overrides the default value returned if the input is null, undefined, or throws an exception while converting (gmt2001)
➡️ Changed $.lang.exists
to return a true boolean based on the existence of the key (gmt2001)
🛠️ Fixed:
➡️ Fixed ticketRaffle not responding with the Not enough points error if using the !ticket max
command when you don't have enough points to buy even 1 more ticket (gmt2001)
➡️ Fixed an issue where the cooldown for !adventure
was not working due to Java vs JS string comparison (gmt2001)
➡️ Fixed an issue where docker-entrypoint.sh could exit if it failed to update healthcheck.py, instead of ignoring it as intended (gmt2001, reported by 97carmine #3091)
➡️ Fixed an issue where attempting to query the current !coolcom
settings of a command would fail on commands that had a custom coolcom set (gmt2001)
➡️ Fixed an issue where (customapi)
and (customapijson)
would automatically encode the URI, leading to double-encoding if attempting to use (encodeurl)
or (encodeurlparam)
on individual parts of the URI (gmt2001)
🗑️ Deprecated:
➡️ com.gmt2001.HttpRequest
is Deprecated and should not be used for new development. com.gmt2001.httpclient.HttpClient
should be used instead
➡️ tv.phantombot.PhantomBot.getProperties()
is deprecated and should not be used for new development. tv.phantombot.CaselessProperties.instance()
should be used instead
➡️ com.gmt2001.TwitchAPIv5
is Deprecated and should not be used for new development. tv.phantombot.twitch.api.Helix
should be used instead
🛑 Removed:
➡️ Removed support for the deprecated rhino_es6 flag in botlogin.txt. ES6 mode is now always enabled (gmt2001)
➡️ Removed support for the useeventsub flag in botlogin.txt. EventSub mode is now always enabled (gmt2001)
➡️ Removed support for the Twitch Client Credentials Flow as app tokens aren't used (gmt2001)
🐞 Known Issues:
➡️ No known issues
🌐 Download It:
➡️ Downloads attached to the bottom of this release notice
❗ Remember to install to a separate folder, then copy over the config dir, as well as any custom scripts or files in addons
➡️ PhantomBot official builds are available on GitHub Container Registry at ghcr.io/phantombot/phantombot and ghcr.io/phantombot/nightly-build
➡️ PhantomBot official builds are available on DockerHub at gmt2001/phantombot-stable and gmt2001/phantombot-nightly. See the readme text on the appropriate Docker Hub pages for Docker Compose files
🗒️ Notes:
➡️ We have guides on PhantomBot. You can contribute by submitting a Pull Request adding or editing .md files in the /docs/guides/content folder of the repo. See the guides for info about formatting.