Channels - Completion - Api - And much, much more
Pre-releaseBeta notice
please use the client https://beta.openaudiomc.net/
while using this as a pre-release version.
Change log and notes for 6.10.0
Update time again! and a juicy one at that!
This release includes major changes, new features and improvements to voice chat, the API, the web client, media, commands, and much more!
This update spent over a month in development, with multiple weeks of daily full-time work and contributions from multiple community members.
It’s a big change log, but please take a moment to go through it to see what it means for your server. Changes/notes are grouped by topic but in no particular order.
Voice Chat
- Added voice channels!
You can now create voice chat channels, letting players talk globally and in groups without needing them to be nearby (or even in the same world). You can create channels in the config with optional custom permissions (locking some behind ranks for example), or allow players to create temporary channels and invite others. There’s a lot more to it, all covered in the new matching documentation article. OpenAudioMc Documentation - VoiceChat Channels
- Filters are now built into the plugin! (these used to be separate modules)
Filters give you control over who players can talk to in proximity voice chat and can be found in your config file. Filters includerequire-same-gamemode
,require-common-team
andrequire-no-channel
. More details can be found in the matching documentation article OpenAudioMc Documentation - VoiceChat Filters - The system to gather voice chat peers has been improved, almost doubling performance on large servers and adding new cancellable API events to modify metadata for peers.
- Added support for peer metadata updates, letting you hide specific players from the UI (while still being able to hear them) or disable their spatial audio effect. This can be updated on the fly, without dropping the peer.
- Expanded the API to add support for non-proximity-based peers, allowing you to implement features like phones. More on this later.
Command handling
- Tab-completion has been overhauled! providing full completion for sub-arguments. The plugin also synchronises uploaded files within your account, letting you tab-complete media sources. It can also tab-complete aliases and playlists on spigot servers (which you can now force to handle your command with
/oas
)
- Tab-completion now works on BungeeCord servers
- added the
/oas
or/openaudiospigot
command, for when you’re running a proxy but need to specify a command to run on the subserver. - There have been a ton of internal improvements for commands, namely for selector providers.
- added
/channel
for the voice channel feature
Media
- Media caching was redesigned from the ground up
The media pool was broken on some modern browsers, which have now been fixed, and it’s way better at handling sources of different types. The pool will now also rehydrate itself after a source is used, meaning that you can keep media in the cache after it gets played. This is enabled by default in the config and provides significant performance improvements to re-used media sources in features like regions (as long as preloading is used) - You can now forcefully preload media through a command (
/oa preload <source>
), which is extremely useful for time-sensitive media (such as shows). More on this can be found in its new documentation article OpenAudioMc Documentation - The Preload command - Fixed cors for 3d speakers using media from a third-party domain
API
- The major changes this update brings across the board were the trigger to re-evaluate the API the plugin previously offered, and how limited it was. A good amount of time was spent during this update rebuilding the API. The new API is similar enough to the old one that migrating shouldn’t take more than 5 minutes. It’s now its dedicated artefact too, no longer requiring you to build the entire plugin, while exposing a lot more functionality. The old API is still where it is, and powered by a mostly backwards-compatible layer (though everything is marked as deprecated, and will be removed in a future release. You can read more about the migration here: OpenAudioMc Documentation - Migrating your integrations to ^6.10.0
- We now have a living javadoc site at https://javadoc.openaudiomc.net/, with a lot more documentation for everything.
- The documentation article has been rewritten to reflect the new API and provides a ton of examples and details to get you going fastest OpenAudioMc Documentation - Building against the Java API
Misc
- The plugin now uses proper log levels
- PlaceholderAPI placeholders will now persist even if it reloaded (through for example
/papi reload
) - Servers running in offlinemode or using a free server host (such as minehut) now get a clickable message which will automatically set some common config values, instead of giving them an error message with instructions.
- Teleporting will now instantly force a player’s set of regions to update
- Regions will now all initialise on start, syncing their initial time code. This new behaviour is enabled by default, but you can disable it in the config which will completely restore the original behaviour.
- The documentation now also lists relevant permissions per topic and links to useful Javadoc pages (if applicable)
- 1.8 is now supported out-of-the-box, no longer requiring the legacy module to be installed manually. You will need to manually uninstall the module if you still have it.
- Updated internal dependencies
- General client UX improvements
- Vistas now supports Redis Sentinel and ipv6! Courtesy of Mathéo (aka @DiscowZombie)
- Config/database backups now work on Windows servers, use the proper folder and will log fatal errors.
- The plugin is now far more fault-tolerant to spontaneous network interruptions between the plugin and our infrastructure. Both connection types will now try to reconnect a few times after an unexpected connection loss. Web clients will remain logged in for a few moments, waiting for the plugin to come back online and are only kicked after extended connection issues, meaning that voice chat and normal media will not be interrupted in most cases. The plugin will queue important packets (media start/stop and peer changes) to sync back up with the client once the connection is restored.
Where is 6.9.0? did you skip a version?
Yes, I did! This updated started as 6.8.10, but quickly outgrew that status as this cannot be described as a minor release. I also chose to skip the 6.9.0 major entirely because of its meme status.
Special thanks
A lot of changes in this update are based on community feedback, and there are quite a few people who stood out for their help.
- Thank you DiscowZombie for your Redis sentinel PR, and early testing/feedback from the new API
- Thank you Verum for the help implementing the persistent PlaceholderAPI hooks
- Thank you SROrel for early testing and helping debug early issues with voice chat channels