📢 PhantomBot v3.8.3.0 is now available as a stable build.
✅ Added:
➡️ Added command !synconline
to force-sync the title, game, and online/offline state with Twitch API (gmt2001)
➡️ Added the ability to perform the StreamLabs API Authorization Code Flow via the panel. See the 🔗 icon next to the StreamLabs Alerts header in the panel on the Alerts > Chat alerts page (gmt2001)
➡️ Added HttpClientResponse#resourceUrl(), which returns the actual URL retrieved after following redirects (gmt2001)
➡️ Added the ability to use a Duration instead of an integer number of milliseconds for the constructor parameters of the RateLimiters (gmt2001)
➡️ Added ExponentialBackoff.html#BackoffOnce() and ExponentialBackoff.html#BackoffOnceAsync(), which no-op if a backoff is already in progress (gmt2001)
🌀 Changed:
➡️ Changed ViewerCache to push updates to the current chatters list generated by chat messages every 15 seconds (gmt2001)
➡️ Changed streamInfo to always toggle TwitchCache into EventSub mode when EventSub is fully available (gmt2001)
➡️ Changed streamInfo to not use API sync of stream title/game if EventSub is fully available, except for an initial sync on startup (gmt2001)
➡️ Changed EventSub Stream Online events to ignore the offline timeout in TwitchCache (gmt2001)
➡️ Changed the Force Online and Force Offline buttons on the panel tools menu into a Sync Online Status button which triggers a silent !synconline
(gmt2001)
➡️ Updated StreamLabs API to v2 (gmt2001)
➡️ Changed StreamLabs, StreamElements, and TipeeeStream caches to not require a bot restart after adding/changing the appropriate API keys or other settings, by reading directly from CaselessProperties when they are needed (gmt2001)
➡️ Changed StreamLabs, StreamElements, and TipeeeStream caches to not require their respective modules to be enabled during bot startup (gmt2001)
➡️ Changed StreamLabs, StreamElements, and TipeeeStream caches to run on the thread pool via ExecutorService instead of dedicated threads (gmt2001)
➡️ Changed EventSub to startup after TMI finishes joining the room (gmt2001)
➡️ Changed EventSub to not attempt to connect if the API OAuth is not valid (gmt2001)
➡️ Changed EventSub to use an ExponentialBackoff of up to 5 minutes to reconnect if a disconnect occurs (gmt2001)
➡️ Changed $.findCaller()
to return a full Rhino stack instead of just a single file/line (gmt2001)
➡️ Changed $.findFiles(string)
to immediately return a single-element array containing the input path if it is not a directory (gmt2001)
🛠️ Fixed:
➡️ Fixed the panel setting dialogs for greetingSystem and welcomeSystem imposing restrictions on the cooldown time that are not present in the actual scripts or the chat-based commands for changing those settings (gmt2001)
➡️ Fixed an issue where PhantomBot#getDatastoreType() did not use the correct default value (gmt2001)
➡️ Fixed $.findCaller()
requiring debug mode or a boolean parameter to return the caller info (gmt2001)
🗑️ Deprecated:
➡️ Multiple Java classes and methods are Deprecated for removal. Information can be found on the JavaDoc Deprecated List page
➡️ All legacy IRCv3 tags, or those which are manually set based on other tags, as defined in TMIMessage#parseLegacyBadges(String rawBadges) are Deprecated for removal. Use official tags from Twitch instead
🛑 Removed:
➡️ Nothing removed
🐞 Known Issues:
➡️ StreamLabs, StreamElements, and TipeeeStream caches can spam the error logs if the API token is invalidated for any reason
➡️ Old StreamLabs tokens will be considered invalid due to being created on the v1 API. This is intentionally caused by StreamLabs as part of the v2 transition. The StreamLabs module will require converting the app to v2 and re-authing. See the instructions in the panel for details
🌐 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