📢 PhantomBot v3.10.0.0 is now available as a stable build.
⚠️ NOTE: This version updates the Java requirements to JDK 17
⚠️ NOTE: For Apple Silicon, use the full or arm-bsd-other downloads
✅ Added:
➡️ Added Datastore2, backed by JOOQ (gmt2001)
➡️ Added JS global $.datastore
to access the instance of Datastore2 (gmt2001)
➡️ Added new methods to DataStore which return Optional (gmt2001)
➡️ Added an arm64/aarch64/Apple Silicon build of Java (gmt2001)
➡️ Added flags to the launch scripts to force using G1GC and enable string deduplication (gmt2001)
➡️ Activated support for ECDSA SSL certificates (gmt2001)
➡️ Added the ability to allow sub-users of the panel to manage other sub-users or to use the Restart Bot button (Sartharon #3309)
➡️ Added a PowerShell launcher script (launch.ps1) for Windows 11 users (gmt2001)
➡️ Added a warning to the panel login pages when cookies are blocked or disabled in detectable ways (gmt2001)
🌀 Changed:
➡️ Changed DataStore (v1) to use Datastore2 as it's backend (gmt2001)
➡️ Changed the required Java version to JDK 17 (gmt2001)
➡️ Changed reflection loading of subclasses to use a custom cache, removing the need to access Java internals and removing the need to use the add-opens launch flags (gmt2001)
➡️ Changed the initial VM memory allocation (Xms) to 256 MB to optimize startup (gmt2001)
➡️ Changed DataStore.HasKey
/DataStore.exists
to perform an actual row lookup (gmt2001)
➡️ Upgraded dependency H2 2.214 -> 2.2.220 (gmt2001)
➡️ Changed Docker to always use the latest Ubuntu LTS at build time (gmt2001)
➡️ Changed the (playsound)
tag to automatically remove file extensions that would cause it to fail (gmt2001)
➡️ Changed SQLiteStore to checkpoint (commit and blank) the WAL instead of doing a full VACUUM on startup, daily, and when getting too large (gmt2001)
➡️ Changed SQLiteStore to perform a full VACUUM every 3 days (gmt2001)
➡️ Changed SQLiteStore to only perform WAL checkpoint and VACUUM when the stream is offline (gmt2001)
➡️ Improved the speed and resource usage of the follower processing logic (Sartharon #3320)
➡️ Improved the speed and resource usage of the restoreSubscriberStatus processing logic (Sartharon #3320)
➡️ Moved some classes to different namespaces (gmt2001)
➡️ Rewrote launch.sh and launch-service.sh (gmt2001)
🛠️ Fixed:
➡️ Fixed CaselessProperties.getPropertyAsBoolean not having a default value, leading to NPEs (gmt2001)
➡️ Fixed !lang
command responses not working (Sartharon #3303)
➡️ Fixed points for being in the channel not paying out (Sartharon #3303)
➡️ Fixed a potential memory leak in channelPointsHandler (gmt2001)
➡️ Fixed updates not skipping properly when starting a brand new bot (gmt2001)
➡️ Fixed an issue where the panel would not load sometimes due to order of operations (therentabrain #3321)
➡️ Fixed the commercial auto timer not accepting any lengths due to a conversion error (gmt2001)
➡️ Fixed an issue where $.users
was always empty (gmt2001)
➡️ Fixed an issue where HttpClientResponse.jsonOrThrow
would prioritize returning JSON instead of throwing a caught exception (gmt2001)
➡️ Fixed an ArrayIndexOutOfBoundsException when checking panel permissions (gmt2001)
➡️ Fixed an issue where certain types of panel authentication could throw an exception for illegal characters (gmt2001)
➡️ Fixed the panel sub-user edit dialogue expanding off-screen on smaller 1080p screens when more than 7 permissions are added, preventing access to the save/cancel buttons (gmt2001)
➡️ Fixed followers not announcing on Twitch (Sartharon #3354)
🗑️ 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:
➡️ Removed overloads from CaselessProperties that allowed providing a Supplier function for generating a default value (gmt2001)
➡️ Removed support for Discord discriminators (gmt2001)
🐞 Known Issues:
➡️ The update of mysql-connector 5.1.49 -> 8.0.33 may cause compatibility issues with MySQL Server versions older than 5.7
➡️ The update of mysql-connector 5.1.49 -> 8.0.33 causes compatibility issues with newer versions of MariaDB server, switch to MariaDBStore to continue using MariaDB (Stop the bot, edit botlogin.txt, and change datastore=
to a value of MariaDBStore
)
🌐 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