- Remote sources (like twitch) will now be automatically disabled if they fail to load instead of crashing the game
- Fixed the debug info occasionally crashing when trying to display the class name of the current GUI screen
- Fixed the output volume not respecting song and sound category volumes
- Decreased the frequency/severity of audio clipping (short popping/static noises that were generally louder than the music itself) that sometimes occurred when songs started playing
- Enhanced Music Discs now have attenuation capabilities
- Fixed the MOB case of the mob trigger activating for non hostile entities
- Fixed capability data not getting properly saved across player respawns
- Remote sources (like twitch) will now be automatically disabled if they fail to load instead of crashing the game
- Fixed the debug info occasionally crashing when trying to display the class name of the current GUI screen
- Fixed the output volume not respecting song and sound category volumes
- Decreased the frequency/severity of audio clipping (short popping/static noises that were generally louder than the music itself) that sometimes occurred when songs started playing
- Enhanced Music Discs now have attenuation capabilities
- Fixed the MOB case of the mob trigger activating for non hostile entities
- Fixed capability data not getting properly saved across player respawns
- Remote sources (like twitch) will now be automatically disabled if they fail to load instead of crashing the game
- Fixed the debug info occasionally crashing when trying to display the class name of the current GUI screen
- Fixed the output volume not respecting song and sound category volumes
- Decreased the frequency/severity of audio clipping (short popping/static noises that were generally louder than the music itself) that sometimes occurred when songs started playing
- Enhanced Music Discs now have attenuation capabilities
- Fixed capability data not getting properly saved across player respawns
- Remote sources (like twitch) will now be automatically disabled if they fail to load instead of crashing the game
- Fixed the debug info occasionally crashing when trying to display the class name of the current GUI screen
- Fixed the output volume not respecting song and sound category volumes
- Decreased the frequency/severity of audio clipping (short popping/static noises that were generally louder than the music itself) that sometimes occurred when songs started playing
- Enhanced Music Discs now have attenuation capabilities
- Fixed a crash when reloading the config from the main menu
- The coremod that loads early mixin stuff is no longer listed as a separate mod
- Updated lavaplayer-fork to 1.4.2 which adds support for ogg file seeking, fixes some source issues, adds support for linux-musl, and has a lot more native libraries included (which is why the file size is almost 3x as big)
- Added support for server enforced configurations via datapacks
- Added support for resource pack based configurations. Note that only vanilla songs are currently able to be loaded from the redirect, so the song files will still need to be in the client config folder.
- Reimplemented the music linking as a cross channel system
- Optimized some stuff for when the same track is played more than once per session
- Added 2 new debug parameters of ENCODING_QUALITY and RESAMPLING_QUALITY which can be lowered to combat potential audio stutters
- Added a MAX_HOVER_ELEMENTS debug parameter with a default value of 15 to truncate excessively long mouse hover information in the GUI
- Added support for an "all" modid in the BLOCKED_MOD_CATEGORIES debug parameter to block sound categories regardless of the modid the sound was registered under
- Added a forceOverwrite parameter to all addTrigger methods for devs that know what they are doing and want to add compatability to triggers that are already registered
- Fixed the channels thread crashing when there were no currently playable triggers with songs attached
- Added a max_tracks parameter for all triggers which determines how many songs a trigger is able to play before it is no longer active. Resets when the conditions to activate the trigger are no longer met
- Added additional levels to the play_once parameter where 3 plays once per login, 4 plays once per world, and 5 plays once per session
- Fixed the loop counter for song loops not getting reset when the song is stopped
- Added an inventory trigger to check whether certain inventory slots contain certain item types
- Added a blockentity trigger to check whether certain block entities are within a specified range of the player
- Added a detection_y_ratio for more nuanced detection_range checks
- Added a stop_delay parameters for all triggers to determine how many ticks it takes a trigger to be playable again once it stops being active
- Files in song folders that do not have valid file extentsions are now ignored
- Parameter values are no longer all stored as strings by default to allow for more intelligent parsing and to decrease the usage of separator characters
- Added a system for trigger specific default parameter values
- The level parameter is no longer required for the mob trigger as it will be set to 1 by default now
- Changed the separator character in the mob_nbt parameter from : to ;
- The BOSS case of the mob trigger now stores an entity reference for the boss bars it checks, giving the special case access to all of the parameters accepted for the mob trigger and the ability to use mob ids rather than only display names
- Fixed serverside trigger calculations not properly utilizing default parameters and random number ranges
- Default "ANY" values for list parameters will now always be capitalized
- Biome triggers now activate if either the resource_name or the biome_category pass, with the other checks still being additive
- Most resource_name checks will now pass if the list is empty or contains "ANY"
- Stopped the vanilla music ticker from messing up audio and impacting performance at times like the ender dragon fight
- Made the various log messages when a channel attempts to register an audio track more streamlined and comprehensive.
- Fixed some incorrect volume calculations that led to volume spikes when fading in, other weird fading issues, and very high volumes at low category/master volumes
- Fixed the "not" parameter running twice for server side triggers
- Added support for animated image cards via vertical (1 column) sprite sheets
- Added a resume_on_play song parameter that lets the current position of the audio be saved before getting stopped and resume when it starts playing again
- Added a play_x song parameter where a song has to play x number of times before the play_once parameter is activated
- Parameters incorrectly stored as a string that are supposed lists are now read in as if they are a single element list
- Fixed the pvp trigger
- Fixed the victory trigger
- Fixed reverse fading not working properly
- Fixed the menu and loading triggers not applying default parameters like fade and delay
- Removed the unused priority parameter from the loading, menu, and generic parameters
- Fixed a crash when using non-UTF-8 encoded strings in parameters for serverside triggers
- Added 2 new command shortcuts of '/musictriggers player reload' or '/mt reload' to quickly reload and '/musictriggers player debug' or '/mt player debug' to toggle the debug information on/off without the GUI
- Reformatted the command trigger to '/musictriggers player commandtrigger identifier' or '/mt player commandtrigger identifier'
- Channels are now listed alphabetically in the debug info
- Finished implementing the jukebox config
- Added a cache to the statistic and blockentity triggers
- Fixed various issues and bad code related to tick based parameter (persistence, fading, delays, etc)
- Fixed the difficulty trigger
- Added a Reload Event (mods.thecomputerizer.musictriggers.client.data.Trigger$ReloadEvent) that gets checked when trigger data is reloaded for other mods to be able to add custom triggers and parameters in the right spot
- Fixed the riding trigger check being reversed
- Moved initial channel registration to after resources are loaded instead of the mod constructor to give other mods a chance to register the new Reload Event
- Fixed a bunch of mixin and event related things that affected advancements, some serverside calculations, and important hooks for the vanilla sound system
- Toggle Changes:
- Improved error logging for toggle registration
- Added a toggle_save_status parameter for all triggers to determine if and how the current toggle status for a trigger gets saved between sessions and relogs.
- Triggers that get toggled on now queue their respective from conditions for the next check (5 ticks) instead of running immediately.
- Added a channel parameter for to tables so the toggle status for triggers registered to other channel can be manipulated.
- Added a channel_activation parameter for toggling entire channels on/off. Toggling a channel off while it is playing audio will still allow it to fade out when applicable.
- GUI Changes:
- The playback screen can now set the current position for audio tracks that are seekable
- Fixed the value for the channel parameter Overrides Normal Music (previously known as Overrides Default Audio) not getting saved
- Added the ability for all editable text fields to copy to (Ctrl+C) and paste from (Ctrl+V) the clipboard
- Messages in the log visualizer screen are now broken into multiple lines if needed
- Fixed messages in the log visualizer not always appearing in the correct order
- Added a search bar to the log visualizer screen
- Made the screens with the large square icons scrollable when necessary
- The sort type for any screens that accept it will now be saved even across restarts
- Moved the identifiers for registered triggers from the hover text to the labels
- Fixed numerous incorrect descriptions for title and image cards
- Made the rest of the valid title card parameters accessible (time, fade_in, fade_out, & opacity)
- Fixed multiple triggers sometimes being added when adding a new trigger
- Fixed some scroll calculation and rendering issues
- Removed unused hover information from the redirect info screen
- Fixed redirect entries getting saved without clicking on Apply Changes
- Fixed multiple elements being selected in the redirect and jukebox screens
- Parameters that are supposed to be lists are now enforced as such instead of dynamically determining the type
- Filtered out quotes for parameters since those are handled automatically
- Parameters are now listed alphabetically
- Parameters now show their text ID values as mouse hover information
- Moved loops to the parameters screen for songs so the parameters need 1 less click to access
- Button positions are now dynamically readjusted when the width of a button changes
- Universal Trigger Parameters and Universal Song Parameters are now always listed first in their respective screen regardless of the sort type
- Adding a song to the jukebox config now pulls up a list of registered songs to choose from
- Song and channel names with invalid characters are now properly refused
- Updated lavaplayer-fork to 1.4.2 which adds support for ogg file seeking, fixes some source issues, adds support for linux-musl, and has a lot more native libraries included (which is why the file size is almost 3x as big)
- Added support for server enforced configurations via datapacks
- Added support for resource pack based configurations. Note that only vanilla songs are currently able to be loaded from the redirect, so the song files will still need to be in the client config folder.
- Reimplemented the music linking as a cross channel system
- Optimized some stuff for when the same track is played more than once per session
- Added 2 new debug parameters of ENCODING_QUALITY and RESAMPLING_QUALITY which can be lowered to combat potential audio stutters
- Added a MAX_HOVER_ELEMENTS debug parameter with a default value of 15 to truncate excessively long mouse hover information in the GUI
- Added support for an "all" modid in the BLOCKED_MOD_CATEGORIES debug parameter to block sound categories regardless of the modid the sound was registered under
- Added a forceOverwrite parameter to all addTrigger methods for devs that know what they are doing and want to add compatability to triggers that are already registered
- Fixed the channels thread crashing when there were no currently playable triggers with songs attached
- Added a max_tracks parameter for all triggers which determines how many songs a trigger is able to play before it is no longer active. Resets when the conditions to activate the trigger are no longer met
- Added additional levels to the play_once parameter where 3 plays once per login, 4 plays once per world, and 5 plays once per session
- Fixed the loop counter for song loops not getting reset when the song is stopped
- Added an inventory trigger to check whether certain inventory slots contain certain item types
- Added a blockentity trigger to check whether certain block entities are within a specified range of the player
- Added a detection_y_ratio for more nuanced detection_range checks
- Added a stop_delay parameters for all triggers to determine how many ticks it takes a trigger to be playable again once it stops being active
- Files in song folders that do not have valid file extentsions are now ignored
- Parameter values are no longer all stored as strings by default to allow for more intelligent parsing and to decrease the usage of separator characters
- Added a system for trigger specific default parameter values
- The level parameter is no longer required for the mob trigger as it will be set to 1 by default now
- Changed the separator character in the mob_nbt parameter from : to ;
- The BOSS case of the mob trigger now stores an entity reference for the boss bars it checks, giving the special case access to all of the parameters accepted for the mob trigger and the ability to use mob ids rather than only display names
- Fixed serverside trigger calculations not properly utilizing default parameters and random number ranges
- Default "ANY" values for list parameters will now always be capitalized
- Biome triggers now activate if either the resource_name or the biome_category pass, with the other checks still being additive
- Most resource_name checks will now pass if the list is empty or contains "ANY"
- Stopped the vanilla music ticker from messing up audio and impacting performance at times like the ender dragon fight
- Made the various log messages when a channel attempts to register an audio track more streamlined and comprehensive.
- Fixed some incorrect volume calculations that led to volume spikes when fading in, other weird fading issues, and very high volumes at low category/master volumes
- Fixed the "not" parameter running twice for server side triggers
- Added support for animated image cards via vertical (1 column) sprite sheets
- Added a resume_on_play song parameter that lets the current position of the audio be saved before getting stopped and resume when it starts playing again
- Added a play_x song parameter where a song has to play x number of times before the play_once parameter is activated
- Parameters incorrectly stored as a string that are supposed lists are now read in as if they are a single element list
- Fixed the pvp trigger
- Fixed the victory trigger
- Fixed reverse fading not working properly
- Fixed the menu and loading triggers not applying default parameters like fade and delay
- Removed the unused priority parameter from the loading, menu, and generic parameters
- Fixed a crash when using non-UTF-8 encoded strings in parameters for serverside triggers
- Added 2 new command shortcuts of '/musictriggers player reload' or '/mt reload' to quickly reload and '/musictriggers player debug' or '/mt player debug' to toggle the debug information on/off without the GUI
- Reformatted the command trigger to '/musictriggers player commandtrigger identifier' or '/mt player commandtrigger identifier'
- Channels are now listed alphabetically in the debug info
- Finished implementing the jukebox config
- Added a cache to the statistic and blockentity triggers
- Fixed various issues and bad code related to tick based parameter (persistence, fading, delays, etc)
- Fixed the difficulty trigger
- Added a Reload Event (mods.thecomputerizer.musictriggers.client.data.Trigger$ReloadEvent) that [Forge] gets posted to the event bus when trigger data is reloaded for other mods to be able to add custom triggers and parameters in the right spot
- Fixed the riding trigger check being reversed
- Moved initial channel registration to the FMLCommonSetupEvent phase instead of the mod constructor to give other mods a chance to register the new Reload Event
- Added support for stopping the Blue Skies MusicTicker implementation
- Fixed the gamestage trigger
- Toggle Changes:
- Improved error logging for toggle registration
- Added a toggle_save_status parameter for all triggers to determine if and how the current toggle status for a trigger gets saved between sessions and relogs.
- Triggers that get toggled on now queue their respective from conditions for the next check (5 ticks) instead of running immediately.
- Added a channel parameter for to tables so the toggle status for triggers registered to other channel can be manipulated.
- Added a channel_activation parameter for toggling entire channels on/off. Toggling a channel off while it is playing audio will still allow it to fade out when applicable.
- GUI Changes:
- The playback screen can now set the current position for audio tracks that are seekable
- Fixed the value for the channel parameter Overrides Normal Music (previously known as Overrides Default Audio) not getting saved
- Added the ability for all editable text fields to copy to (Ctrl+C) and paste from (Ctrl+V) the clipboard
- Messages in the log visualizer screen are now broken into multiple lines if needed
- Fixed messages in the log visualizer not always appearing in the correct order
- Added a search bar to the log visualizer screen
- Made the screens with the large square icons scrollable when necessary
- The sort type for any screens that accept it will now be saved even across restarts
- Moved the identifiers for registered triggers from the hover text to the labels
- Fixed numerous incorrect descriptions for title and image cards
- Made the rest of the valid title card parameters accessible (time, fade_in, fade_out, & opacity)
- Fixed multiple triggers sometimes being added when adding a new trigger
- Fixed some scroll calculation and rendering issues
- Removed unused hover information from the redirect info screen
- Fixed redirect entries getting saved without clicking on Apply Changes
- Fixed multiple elements being selected in the redirect and jukebox screens
- Parameters that are supposed to be lists are now enforced as such instead of dynamically determining the type
- Filtered out quotes for parameters since those are handled automatically
- Parameters are now listed alphabetically
- Parameters now show their text ID values as mouse hover information
- Moved loops to the parameters screen for songs so the parameters need 1 less click to access
- Button positions are now dynamically readjusted when the width of a button changes
- Universal Trigger Parameters and Universal Song Parameters are now always listed first in their respective screen regardless of the sort type
- Adding a song to the jukebox config now pulls up a list of registered songs to choose from
- Song and channel names with invalid characters are now properly refused
- Updated lavaplayer-fork to 1.4.2 which adds support for ogg file seeking, fixes some source issues, adds support for linux-musl, and has a lot more native libraries included (which is why the file size is almost 3x as big)
- Added support for server enforced configurations via datapacks
- Added support for resource pack based configurations. Note that only vanilla songs are currently able to be loaded from the redirect, so the song files will still need to be in the client config folder.
- Reimplemented the music linking as a cross channel system
- Optimized some stuff for when the same track is played more than once per session
- Added 2 new debug parameters of ENCODING_QUALITY and RESAMPLING_QUALITY which can be lowered to combat potential audio stutters
- Added a MAX_HOVER_ELEMENTS debug parameter with a default value of 15 to truncate excessively long mouse hover information in the GUI
- Added support for an "all" modid in the BLOCKED_MOD_CATEGORIES debug parameter to block sound categories regardless of the modid the sound was registered under
- Added a forceOverwrite parameter to all addTrigger methods for devs that know what they are doing and want to add compatability to triggers that are already registered
- Fixed the channels thread crashing when there were no currently playable triggers with songs attached
- Added a max_tracks parameter for all triggers which determines how many songs a trigger is able to play before it is no longer active. Resets when the conditions to activate the trigger are no longer met
- Added additional levels to the play_once parameter where 3 plays once per login, 4 plays once per world, and 5 plays once per session
- Fixed the loop counter for song loops not getting reset when the song is stopped
- Added an inventory trigger to check whether certain inventory slots contain certain item types
- Added a blockentity trigger to check whether certain block entities are within a specified range of the player
- Added a detection_y_ratio for more nuanced detection_range checks
- Added a stop_delay parameters for all triggers to determine how many ticks it takes a trigger to be playable again once it stops being active
- Files in song folders that do not have valid file extentsions are now ignored
- Parameter values are no longer all stored as strings by default to allow for more intelligent parsing and to decrease the usage of separator characters
- Added a system for trigger specific default parameter values
- The level parameter is no longer required for the mob trigger as it will be set to 1 by default now
- Changed the separator character in the mob_nbt parameter from : to ;
- The BOSS case of the mob trigger now stores an entity reference for the boss bars it checks, giving the special case access to all of the parameters accepted for the mob trigger and the ability to use mob ids rather than only display names
- Fixed serverside trigger calculations not properly utilizing default parameters and random number ranges
- Default "ANY" values for list parameters will now always be capitalized
- Biome triggers now activate if either the resource_name or the biome_category pass, with the other checks still being additive
- Most resource_name checks will now pass if the list is empty or contains "ANY"
- Stopped the vanilla music ticker from messing up audio and impacting performance at times like the ender dragon fight
- Made the various log messages when a channel attempts to register an audio track more streamlined and comprehensive.
- Fixed some incorrect volume calculations that led to volume spikes when fading in, other weird fading issues, and very high volumes at low category/master volumes
- Fixed the "not" parameter running twice for server side triggers
- Added support for animated image cards via vertical (1 column) sprite sheets
- Added a resume_on_play song parameter that lets the current position of the audio be saved before getting stopped and resume when it starts playing again
- Added a play_x song parameter where a song has to play x number of times before the play_once parameter is activated
- Parameters incorrectly stored as a string that are supposed lists are now read in as if they are a single element list
- Fixed the pvp trigger
- Fixed the victory trigger
- Fixed reverse fading not working properly
- Fixed the menu and loading triggers not applying default parameters like fade and delay
- Removed the unused priority parameter from the loading, menu, and generic parameters
- Fixed a crash when using non-UTF-8 encoded strings in parameters for serverside triggers
- Added 2 new command shortcuts of '/musictriggers player reload' or '/mt reload' to quickly reload and '/musictriggers player debug' or '/mt player debug' to toggle the debug information on/off without the GUI
- Reformatted the command trigger to '/musictriggers player commandtrigger identifier' or '/mt player commandtrigger identifier'
- Channels are now listed alphabetically in the debug info
- Finished implementing the jukebox config
- Added a cache to the statistic and blockentity triggers
- Fixed various issues and bad code related to tick based parameter (persistence, fading, delays, etc)
- Fixed the difficulty trigger
- Added a Reload Event (mods.thecomputerizer.musictriggers.client.data.Trigger$ReloadEvent) that [Forge] gets posted to the event bus when trigger data is reloaded for other mods to be able to add custom triggers and parameters in the right spot
- Fixed the riding trigger check being reversed
- Moved initial channel registration to the FMLCommonSetupEvent phase instead of the mod constructor to give other mods a chance to register the new Reload Event
- Added support for Enhanced Celestials bloodmoon, bluemoon, harvestmoon, and custom moons
- Added support for stopping the Blue Skies MusicTicker implementation
- Fixed the gamestage trigger
- Toggle Changes:
- Improved error logging for toggle registration
- Added a toggle_save_status parameter for all triggers to determine if and how the current toggle status for a trigger gets saved between sessions and relogs.
- Triggers that get toggled on now queue their respective from conditions for the next check (5 ticks) instead of running immediately.
- Added a channel parameter for to tables so the toggle status for triggers registered to other channel can be manipulated.
- Added a channel_activation parameter for toggling entire channels on/off. Toggling a channel off while it is playing audio will still allow it to fade out when applicable.
- GUI Changes:
- The playback screen can now set the current position for audio tracks that are seekable
- Fixed the value for the channel parameter Overrides Normal Music (previously known as Overrides Default Audio) not getting saved
- Added the ability for all editable text fields to copy to (Ctrl+C) and paste from (Ctrl+V) the clipboard
- Messages in the log visualizer screen are now broken into multiple lines if needed
- Fixed messages in the log visualizer not always appearing in the correct order
- Added a search bar to the log visualizer screen
- Made the screens with the large square icons scrollable when necessary
- The sort type for any screens that accept it will now be saved even across restarts
- Moved the identifiers for registered triggers from the hover text to the labels
- Fixed numerous incorrect descriptions for title and image cards
- Made the rest of the valid title card parameters accessible (time, fade_in, fade_out, & opacity)
- Fixed multiple triggers sometimes being added when adding a new trigger
- Fixed some scroll calculation and rendering issues
- Removed unused hover information from the redirect info screen
- Fixed redirect entries getting saved without clicking on Apply Changes
- Fixed multiple elements being selected in the redirect and jukebox screens
- Parameters that are supposed to be lists are now enforced as such instead of dynamically determining the type
- Filtered out quotes for parameters since those are handled automatically
- Parameters are now listed alphabetically
- Parameters now show their text ID values as mouse hover information
- Moved loops to the parameters screen for songs so the parameters need 1 less click to access
- Button positions are now dynamically readjusted when the width of a button changes
- Universal Trigger Parameters and Universal Song Parameters are now always listed first in their respective screen regardless of the sort type
- Adding a song to the jukebox config now pulls up a list of registered songs to choose from
- Song and channel names with invalid characters are now properly refused
- Updated lavaplayer-fork to 1.4.2 which adds support for ogg file seeking, fixes some source issues, adds support for linux-musl, and has a lot more native libraries included (which is why the file size is almost 3x as big)
- Added support for server enforced configurations via datapacks
- Added support for resource pack based configurations. Note that only vanilla songs are currently able to be loaded from the redirect, so the song files will still need to be in the client config folder.
- Reimplemented the music linking as a cross channel system
- Optimized some stuff for when the same track is played more than once per session
- Added 2 new debug parameters of ENCODING_QUALITY and RESAMPLING_QUALITY which can be lowered to combat potential audio stutters
- Added a MAX_HOVER_ELEMENTS debug parameter with a default value of 15 to truncate excessively long mouse hover information in the GUI
- Added support for an "all" modid in the BLOCKED_MOD_CATEGORIES debug parameter to block sound categories regardless of the modid the sound was registered under
- Added a forceOverwrite parameter to all addTrigger methods for devs that know what they are doing and want to add compatability to triggers that are already registered
- Fixed the channels thread crashing when there were no currently playable triggers with songs attached
- Added a max_tracks parameter for all triggers which determines how many songs a trigger is able to play before it is no longer active. Resets when the conditions to activate the trigger are no longer met
- Added additional levels to the play_once parameter where 3 plays once per login, 4 plays once per world, and 5 plays once per session
- Fixed the loop counter for song loops not getting reset when the song is stopped
- Added an inventory trigger to check whether certain inventory slots contain certain item types
- Added a blockentity trigger to check whether certain block entities are within a specified range of the player
- Added a detection_y_ratio for more nuanced detection_range checks
- Added a stop_delay parameters for all triggers to determine how many ticks it takes a trigger to be playable again once it stops being active
- Files in song folders that do not have valid file extentsions are now ignored
- Parameter values are no longer all stored as strings by default to allow for more intelligent parsing and to decrease the usage of separator characters
- Added a system for trigger specific default parameter values
- The level parameter is no longer required for the mob trigger as it will be set to 1 by default now
- Changed the separator character in the mob_nbt parameter from : to ;
- The BOSS case of the mob trigger now stores an entity reference for the boss bars it checks, giving the special case access to all of the parameters accepted for the mob trigger and the ability to use mob ids rather than only display names
- Fixed serverside trigger calculations not properly utilizing default parameters and random number ranges
- Default "ANY" values for list parameters will now always be capitalized
- Biome triggers now activate if either the resource_name or the biome_category pass, with the other checks still being additive
- Most resource_name checks will now pass if the list is empty or contains "ANY"
- Stopped the vanilla music ticker from messing up audio and impacting performance at times like the ender dragon fight
- Made the various log messages when a channel attempts to register an audio track more streamlined and comprehensive.
- Fixed some incorrect volume calculations that led to volume spikes when fading in, other weird fading issues, and very high volumes at low category/master volumes
- Fixed the "not" parameter running twice for server side triggers
- Added support for animated image cards via vertical (1 column) sprite sheets
- Added a resume_on_play song parameter that lets the current position of the audio be saved before getting stopped and resume when it starts playing again
- Added a play_x song parameter where a song has to play x number of times before the play_once parameter is activated
- Parameters incorrectly stored as a string that are supposed lists are now read in as if they are a single element list
- Fixed the pvp trigger
- Fixed the victory trigger
- Fixed reverse fading not working properly
- Fixed the menu and loading triggers not applying default parameters like fade and delay
- Removed the unused priority parameter from the loading, menu, and generic parameters
- Fixed a crash when using non-UTF-8 encoded strings in parameters for serverside triggers
- Added 2 new command shortcuts of '/musictriggers player reload' or '/mt reload' to quickly reload and '/musictriggers player debug' or '/mt player debug' to toggle the debug information on/off without the GUI
- Reformatted the command trigger to '/musictriggers player commandtrigger identifier' or '/mt player commandtrigger identifier'
- Channels are now listed alphabetically in the debug info
- Finished implementing the jukebox config
- Added a cache to the statistic and blockentity triggers
- Fixed various issues and bad code related to tick based parameter (persistence, fading, delays, etc)
- Fixed the difficulty trigger
- Added a Reload Event (mods.thecomputerizer.musictriggers.client.data.Trigger$ReloadEvent) that [Forge] gets posted to the event bus when trigger data is reloaded for other mods to be able to add custom triggers and parameters in the right spot
- Dropped seemingly broken infernal mobs support
- Fixed the riding trigger check being reversed
- Moved initial channel registration to the FMLCommonSetupEvent phase instead of the mod constructor to give other mods a chance to register the new Reload Event
- Fixed the gamestage trigger
- Toggle Changes:
- Improved error logging for toggle registration
- Added a toggle_save_status parameter for all triggers to determine if and how the current toggle status for a trigger gets saved between sessions and relogs.
- Triggers that get toggled on now queue their respective from conditions for the next check (5 ticks) instead of running immediately.
- Added a channel parameter for to tables so the toggle status for triggers registered to other channel can be manipulated.
- Added a channel_activation parameter for toggling entire channels on/off. Toggling a channel off while it is playing audio will still allow it to fade out when applicable.
- GUI Changes:
- The playback screen can now set the current position for audio tracks that are seekable
- Fixed the value for the channel parameter Overrides Normal Music (previously known as Overrides Default Audio) not getting saved
- Added the ability for all editable text fields to copy to (Ctrl+C) and paste from (Ctrl+V) the clipboard
- Messages in the log visualizer screen are now broken into multiple lines if needed
- Fixed messages in the log visualizer not always appearing in the correct order
- Added a search bar to the log visualizer screen
- Made the screens with the large square icons scrollable when necessary
- The sort type for any screens that accept it will now be saved even across restarts
- Moved the identifiers for registered triggers from the hover text to the labels
- Fixed numerous incorrect descriptions for title and image cards
- Made the rest of the valid title card parameters accessible (time, fade_in, fade_out, & opacity)
- Fixed multiple triggers sometimes being added when adding a new trigger
- Fixed some scroll calculation and rendering issues
- Removed unused hover information from the redirect info screen
- Fixed redirect entries getting saved without clicking on Apply Changes
- Fixed multiple elements being selected in the redirect and jukebox screens
- Parameters that are supposed to be lists are now enforced as such instead of dynamically determining the type
- Filtered out quotes for parameters since those are handled automatically
- Parameters are now listed alphabetically
- Parameters now show their text ID values as mouse hover information
- Moved loops to the parameters screen for songs so the parameters need 1 less click to access
- Button positions are now dynamically readjusted when the width of a button changes
- Universal Trigger Parameters and Universal Song Parameters are now always listed first in their respective screen regardless of the sort type
- Adding a song to the jukebox config now pulls up a list of registered songs to choose from
- Song and channel names with invalid characters are now properly refused
- Updated lavaplayer-fork to 1.4.2 which adds support for ogg file seeking, fixes some source issues, adds support for linux-musl, and has a lot more native libraries included (which is why the file size is almost 3x as big)
- Added support for server enforced configurations via the config folder
- Added support for resource pack based configurations. Note that only vanilla songs are currently able to be loaded from the redirect, so the song files will still need to be in the client config folder.
- Reimplemented the music linking as a cross channel system
- Optimized some stuff for when the same track is played more than once per session
- Added 2 new debug parameters of ENCODING_QUALITY and RESAMPLING_QUALITY which can be lowered to combat potential audio stutters
- Added a MAX_HOVER_ELEMENTS debug parameter with a default value of 15 to truncate excessively long mouse hover information in the GUI
- Added support for an "all" modid in the BLOCKED_MOD_CATEGORIES debug parameter to block sound categories regardless of the modid the sound was registered under
- Added a forceOverwrite parameter to all addTrigger methods for devs that know what they are doing and want to add compatability to triggers that are already registered
- Fixed the channels thread crashing when there were no currently playable triggers with songs attached
- Added a max_tracks parameter for all triggers which determines how many songs a trigger is able to play before it is no longer active. Resets when the conditions to activate the trigger are no longer met
- Added additional levels to the play_once parameter where 3 plays once per login, 4 plays once per world, and 5 plays once per session
- Fixed the loop counter for song loops not getting reset when the song is stopped
- Added an inventory trigger to check whether certain inventory slots contain certain item types
- Added a blockentity trigger to check whether certain block entities are within a specified range of the player
- Added a detection_y_ratio for more nuanced detection_range checks
- Added a stop_delay parameters for all triggers to determine how many ticks it takes a trigger to be playable again once it stops being active
- Files in song folders that do not have valid file extentsions are now ignored
- Parameter values are no longer all stored as strings by default to allow for more intelligent parsing and to decrease the usage of separator characters
- Added a system for trigger specific default parameter values
- The level parameter is no longer required for the mob trigger as it will be set to 1 by default now
- Changed the separator character in the mob_nbt parameter from : to ;
- The BOSS case of the mob trigger now stores an entity reference for the boss bars it checks, giving the special case access to all of the parameters accepted for the mob trigger and the ability to use mob ids rather than only display names
- Fixed serverside trigger calculations not properly utilizing default parameters and random number ranges
- Default "ANY" values for list parameters will now always be capitalized
- Biome triggers now activate if either the resource_name or the biome_category pass, with the other checks still being additive
- Most resource_name checks will now pass if the list is empty or contains "ANY"
- Stopped the vanilla music ticker from messing up audio and impacting performance at times like the ender dragon fight
- Made the various log messages when a channel attempts to register an audio track more streamlined and comprehensive.
- Fixed some incorrect volume calculations that led to volume spikes when fading in, other weird fading issues, and very high volumes at low category/master volumes
- Fixed the "not" parameter running twice for server side triggers
- Added support for animated image cards via vertical (1 column) sprite sheets
- Added a resume_on_play song parameter that lets the current position of the audio be saved before getting stopped and resume when it starts playing again
- Added a play_x song parameter where a song has to play x number of times before the play_once parameter is activated
- Parameters incorrectly stored as a string that are supposed lists are now read in as if they are a single element list
- Fixed the pvp trigger
- Fixed the victory trigger
- Fixed reverse fading not working properly
- Fixed the menu and loading triggers not applying default parameters like fade and delay
- Removed the unused priority parameter from the loading, menu, and generic parameters
- Fixed a crash when using non-UTF-8 encoded strings in parameters for serverside triggers
- Added 2 new command shortcuts of '/musictriggers player reload' or '/mt reload' to quickly reload and '/musictriggers player debug' or '/mt player debug' to toggle the debug information on/off without the GUI
- Reformatted the command trigger to '/musictriggers player commandtrigger identifier' or '/mt player commandtrigger identifier'
- Channels are now listed alphabetically in the debug info
- Finished implementing the jukebox config
- Added a cache to the statistic and blockentity triggers
- Fixed various issues and bad code related to tick based parameter (persistence, fading, delays, etc)
- Fixed the difficulty trigger
- Added a Reload Event (mods.thecomputerizer.musictriggers.client.data.Trigger$ReloadEvent) that gets posted to the event bus when trigger data is reloaded for other mods to be able to add custom triggers and parameters in the right spot
- MixinBooter is once again a required dependency since it is available on Modrinth now
- The mob trigger now checks against the EntityLivingBase class instead of EntityLiving to catch players and more modded entities that may extend the lower level class
- Fixed the command for the command trigger not being registered which made it useless
- Moved initial channel registration to the FMLInitializationEvent phase instead of the mod constructor to give other mods a chance to register the new Reload Event
- Fixed the gamestage trigger
- Toggle Changes:
- Improved error logging for toggle registration
- Added a toggle_save_status parameter for all triggers to determine if and how the current toggle status for a trigger gets saved between sessions and relogs.
- Triggers that get toggled on now queue their respective from conditions for the next check (5 ticks) instead of running immediately.
- Added a channel parameter for to tables so the toggle status for triggers registered to other channel can be manipulated.
- Added a channel_activation parameter for toggling entire channels on/off. Toggling a channel off while it is playing audio will still allow it to fade out when applicable.
- GUI Changes:
- The playback screen can now set the current position for audio tracks that are seekable
- Fixed the value for the channel parameter Overrides Normal Music (previously known as Overrides Default Audio) not getting saved
- Added the ability for all editable text fields to copy to (Ctrl+C) and paste from (Ctrl+V) the clipboard
- Messages in the log visualizer screen are now broken into multiple lines if needed
- Fixed messages in the log visualizer not always appearing in the correct order
- Added a search bar to the log visualizer screen
- Made the screens with the large square icons scrollable when necessary
- The sort type for any screens that accept it will now be saved even across restarts
- Moved the identifiers for registered triggers from the hover text to the labels
- Fixed numerous incorrect descriptions for title and image cards
- Made the rest of the valid title card parameters accessible (time, fade_in, fade_out, & opacity)
- Fixed multiple triggers sometimes being added when adding a new trigger
- Fixed some scroll calculation and rendering issues
- Removed unused hover information from the redirect info screen
- Fixed redirect entries getting saved without clicking on Apply Changes
- Fixed multiple elements being selected in the redirect and jukebox screens
- Parameters that are supposed to be lists are now enforced as such instead of dynamically determining the type
- Filtered out quotes for parameters since those are handled automatically
- Parameters are now listed alphabetically
- Parameters now show their text ID values as mouse hover information
- Moved loops to the parameters screen for songs so the parameters need 1 less click to access
- Button positions are now dynamically readjusted when the width of a button changes
- Universal Trigger Parameters and Universal Song Parameters are now always listed first in their respective screen regardless of the sort type
- Adding a song to the jukebox config now pulls up a list of registered songs to choose from
- Song and channel names with invalid characters are now properly refused
- Channels will now wait until all queued audio is loaded before checking triggers and attempting to play audio that may not have finished loaded yet
- The config folder is no longer always assumed to exist
- Fixed triggers with no audio assigned crashing the channels thread
- Removed the manual stop for audio threads that are no longer in use which sometimes crashed the channels thread
- Fixed a crash from null sounds trying to get played
- Fixed the same song being able to play twice in a row for pools with more than 1 song in them
- Cleaned up some logging
- Fixed play_once not working
- Fixed universal audio parameters not getting applied
- Added a start_at parameter for songs that are seekable to control the millisecond position the song plays from without having to set a loop point
- Fixed toggles not working
- The detection_range parameter can now be applied to the pet trigger
- Added some methods for other mods to hook into and add their own triggers and parameters
- All trigger data now gets reloaded with the channels when reloading in game
- Fixed the debug info not always respecting the width of the screen
- Added the current entity ID to the debug info
- Slightly enhanced overall performance
- Fixed a crash with the home trigger
- Implemented the pvp trigger
- Added the class name of the current GUI to the debug info
- Fixed the health parameter for the mob trigger
- Fixed some inconsistencies in which mobs activate mob triggers
- Fixed the check_above_level parameter for the height trigger
- Reimplemented the victory trigger with the following changes:
- The victory_id parameter attached to a mob or pvp trigger now references the identifier of the victory trigger rather than a number
- The victory_id parameter is no longer needed for the victory trigger itself
- Moved the victory_timeout parameter to the victory trigger
- Added a victory_percentage parameter to the mob trigger to determine the percentage of mobs in relation to the level parameter that need to be killed for the referenced victory trigger to activate
- Separate triggers referencing the same victory trigger are now calculated separately
- Due to the mob and pvp triggers being server side triggers, the victory trigger is now also a server side trigger
- Changed various debug parameters:
- Merged the BLOCKED_MOD_MUSIC and BLOCKED_MOD_RECORDS into a single BLOCKED_MOD_CATEGORIES where sound categories can be dynamically referenced like "modid;category" where "music" is the default/fallback.
- The Minecraft modid is now explicitly listed under BLOCKED_MOD_CATEGORIES as "minecraft;music" and can even be removed if that is desired
- Added a BLOCK_STREAMING_ONLY parameter to determine whether BLOCKED_MOD_CATEGORIES can affect non streaming audio sources
- Added an INTERRUPTED_AUDIO_CATEGORIES parameter for control as to which audio categories are stopped/paused in the vanilla sound system when Music Triggers starts playing new audio
- Changed various channel info parameters:
- Renamed the overrides_default_music parameter to overrides_default_audio
- Added a pause_overrides parameter for determining whether currently playing audio gets stopped or paused during an override
- Added an explicit_overrides parameter for determing whether overrides only apply to the category the channel is assigned to
- Gui Changes:
- Fixed the log visualizer screen not being able to display 2 identical log entries
- Fixed the screen position of entries in the log visualizer screen taking other entries below the minimum LOG_LEVEL debug parameter into account
- Added some missing lang keys in the screen where you type the channel name
- Added an error for channel names having spaces
- Added hover information for when conditions are added to toggles
- Added click sounds to the normal button types
- Fixed delete mode not working in the channel selection screen
- Fixed channel sound categories always being set to music
- Fixed a server crash
- Channels will now wait until all queued audio is loaded before checking triggers and attempting to play audio that may not have finished loaded yet
- The config folder is no longer always assumed to exist
- Fixed triggers with no audio assigned crashing the channels thread
- Removed the manual stop for audio threads that are no longer in use which sometimes crashed the channels thread
- Fixed a crash from null sounds trying to get played
- Fixed the same song being able to play twice in a row for pools with more than 1 song in them
- Cleaned up some logging
- Fixed play_once not working
- Fixed universal audio parameters not getting applied
- Added a start_at parameter for songs that are seekable to control the millisecond position the song plays from without having to set a loop point
- Fixed toggles not working
- The detection_range parameter can now be applied to the pet trigger
- Added some methods for other mods to hook into and add their own triggers and parameters
- All trigger data now gets reloaded with the channels when reloading in game
- Fixed the debug info not always respecting the width of the screen
- Added the current entity ID to the debug info
- Slightly enhanced overall performance
- Fixed a crash with the home trigger
- Implemented the pvp trigger
- Added the class name of the current GUI to the debug info
- Fixed the health parameter for the mob trigger
- Fixed some inconsistencies in which mobs activate mob triggers
- Fixed the check_above_level parameter for the height trigger
- Reimplemented the victory trigger with the following changes:
- The victory_id parameter attached to a mob or pvp trigger now references the identifier of the victory trigger rather than a number
- The victory_id parameter is no longer needed for the victory trigger itself
- Moved the victory_timeout parameter to the victory trigger
- Added a victory_percentage parameter to the mob trigger to determine the percentage of mobs in relation to the level parameter that need to be killed for the referenced victory trigger to activate
- Separate triggers referencing the same victory trigger are now calculated separately
- Due to the mob and pvp triggers being server side triggers, the victory trigger is now also a server side trigger
- Changed various debug parameters:
- Merged the BLOCKED_MOD_MUSIC and BLOCKED_MOD_RECORDS into a single BLOCKED_MOD_CATEGORIES where sound categories can be dynamically referenced like "modid;category" where "music" is the default/fallback.
- The Minecraft modid is now explicitly listed under BLOCKED_MOD_CATEGORIES as "minecraft;music" and can even be removed if that is desired
- Added a BLOCK_STREAMING_ONLY parameter to determine whether BLOCKED_MOD_CATEGORIES can affect non streaming audio sources
- Added an INTERRUPTED_AUDIO_CATEGORIES parameter for control as to which audio categories are stopped/paused in the vanilla sound system when Music Triggers starts playing new audio
- Changed various channel info parameters:
- Renamed the overrides_default_music parameter to overrides_default_audio
- Added a pause_overrides parameter for determining whether currently playing audio gets stopped or paused during an override
- Added an explicit_overrides parameter for determing whether overrides only apply to the category the channel is assigned to
- Gui Changes:
- Fixed the log visualizer screen not being able to display 2 identical log entries
- Fixed the screen position of entries in the log visualizer screen taking other entries below the minimum LOG_LEVEL debug parameter into account
- Added some missing lang keys in the screen where you type the channel name
- Added an error for channel names having spaces
- Added hover information for when conditions are added to toggles
- Added click sounds to the normal button types
- Fixed delete mode not working in the channel selection screen
- Fixed channel sound categories always being set to music
- Channels will now wait until all queued audio is loaded before checking triggers and attempting to play audio that may not have finished loaded yet
- The config folder is no longer always assumed to exist
- Fixed triggers with no audio assigned crashing the channels thread
- Removed the manual stop for audio threads that are no longer in use which sometimes crashed the channels thread
- Fixed a crash from null sounds trying to get played
- Fixed the same song being able to play twice in a row for pools with more than 1 song in them
- Cleaned up some logging
- Fixed play_once not working
- Fixed universal audio parameters not getting applied
- Added a start_at parameter for songs that are seekable to control the millisecond position the song plays from without having to set a loop point
- Fixed toggles not working
- The detection_range parameter can now be applied to the pet trigger
- Added some methods for other mods to hook into and add their own triggers and parameters
- All trigger data now gets reloaded with the channels when reloading in game
- Fixed the debug info not always respecting the width of the screen
- Added the current entity ID to the debug info
- Slightly enhanced overall performance
- Fixed a crash with the home trigger
- Implemented the pvp trigger
- Added the class name of the current GUI to the debug info
- Fixed the health parameter for the mob trigger
- Fixed some inconsistencies in which mobs activate mob triggers
- Fixed the check_above_level parameter for the height trigger
- Reimplemented the victory trigger with the following changes:
- The victory_id parameter attached to a mob or pvp trigger now references the identifier of the victory trigger rather than a number
- The victory_id parameter is no longer needed for the victory trigger itself
- Moved the victory_timeout parameter to the victory trigger
- Added a victory_percentage parameter to the mob trigger to determine the percentage of mobs in relation to the level parameter that need to be killed for the referenced victory trigger to activate
- Separate triggers referencing the same victory trigger are now calculated separately
- Due to the mob and pvp triggers being server side triggers, the victory trigger is now also a server side trigger
- Changed various debug parameters:
- Merged the BLOCKED_MOD_MUSIC and BLOCKED_MOD_RECORDS into a single BLOCKED_MOD_CATEGORIES where sound categories can be dynamically referenced like "modid;category" where "music" is the default/fallback.
- The Minecraft modid is now explicitly listed under BLOCKED_MOD_CATEGORIES as "minecraft;music" and can even be removed if that is desired
- Added a BLOCK_STREAMING_ONLY parameter to determine whether BLOCKED_MOD_CATEGORIES can affect non streaming audio sources
- Added an INTERRUPTED_AUDIO_CATEGORIES parameter for control as to which audio categories are stopped/paused in the vanilla sound system when Music Triggers starts playing new audio
- Changed various channel info parameters:
- Renamed the overrides_default_music parameter to overrides_default_audio
- Added a pause_overrides parameter for determining whether currently playing audio gets stopped or paused during an override
- Added an explicit_overrides parameter for determing whether overrides only apply to the category the channel is assigned to
- Gui Changes:
- Fixed the log visualizer screen not being able to display 2 identical log entries
- Fixed the screen position of entries in the log visualizer screen taking other entries below the minimum LOG_LEVEL debug parameter into account
- Added some missing lang keys in the screen where you type the channel name
- Added an error for channel names having spaces
- Added hover information for when conditions are added to toggles
- Added click sounds to the normal button types
- Fixed delete mode not working in the channel selection screen
- Channels will now wait until all queued audio is loaded before checking triggers and attempting to play audio that may not have finished loaded yet
- The config folder is no longer always assumed to exist
- Fixed triggers with no audio assigned crashing the channels thread
- Removed the manual stop for audio threads that are no longer in use which sometimes crashed the channels thread
- Fixed a crash from null sounds trying to get played
- Fixed the same song being able to play twice in a row for pools with more than 1 song in them
- Cleaned up some logging
- Fixed play_once not working
- Fixed universal audio parameters not getting applied
- Added a start_at parameter for songs that are seekable to control the millisecond position the song plays from without having to set a loop point
- Fixed toggles not working
- The detection_range parameter can now be applied to the pet trigger
- Added some methods for other mods to hook into and add their own triggers and parameters
- All trigger data now gets reloaded with the channels when reloading in game
- Fixed the debug info not always respecting the width of the screen
- Added the current entity ID to the debug info
- Slightly enhanced overall performance
- Fixed a crash with the home trigger
- Implemented the pvp trigger
- Added the class name of the current GUI to the debug info
- Fixed the health parameter for the mob trigger
- Fixed some inconsistencies in which mobs activate mob triggers
- Fixed the check_above_level parameter for the height trigger
- Reimplemented the victory trigger with the following changes:
- The victory_id parameter attached to a mob or pvp trigger now references the identifier of the victory trigger rather than a number
- The victory_id parameter is no longer needed for the victory trigger itself
- Moved the victory_timeout parameter to the victory trigger
- Added a victory_percentage parameter to the mob trigger to determine the percentage of mobs in relation to the level parameter that need to be killed for the referenced victory trigger to activate
- Separate triggers referencing the same victory trigger are now calculated separately
- Due to the mob and pvp triggers being server side triggers, the victory trigger is now also a server side trigger
- Changed various debug parameters:
- Merged the BLOCKED_MOD_MUSIC and BLOCKED_MOD_RECORDS into a single BLOCKED_MOD_CATEGORIES where sound categories can be dynamically referenced like "modid;category" where "music" is the default/fallback.
- The Minecraft modid is now explicitly listed under BLOCKED_MOD_CATEGORIES as "minecraft;music" and can even be removed if that is desired
- Added a BLOCK_STREAMING_ONLY parameter to determine whether BLOCKED_MOD_CATEGORIES can affect non streaming audio sources
- Added an INTERRUPTED_AUDIO_CATEGORIES parameter for control as to which audio categories are stopped/paused in the vanilla sound system when Music Triggers starts playing new audio
- Changed various channel info parameters:
- Renamed the overrides_default_music parameter to overrides_default_audio
- Added a pause_overrides parameter for determining whether currently playing audio gets stopped or paused during an override
- Added an explicit_overrides parameter for determing whether overrides only apply to the category the channel is assigned to
- Gui Changes:
- Fixed the log visualizer screen not being able to display 2 identical log entries
- Fixed the screen position of entries in the log visualizer screen taking other entries below the minimum LOG_LEVEL debug parameter into account
- Added some missing lang keys in the screen where you type the channel name
- Added an error for channel names having spaces
- Added hover information for when conditions are added to toggles
- An example channel is now generated if none are present
- Empty song folders are now generated for any channel whose song folder does not yet exist
- Fixed the mob_targeting parameter always passing
- Fixed some blacklist/whitelist issues with the mob trigger causing the MOB special case to not work correctly
- Fixed the BOSS special case for the mob trigger not deactivating properly after certain unconventional killing methods are used
- Fixed default values for list parameters not being applied
- Added a debug option for controlling whether or not music gets paused when the game is not in focus
- Fixed redirect parsing so that URLs can contain the = character
- Fixed high priority triggers that are part of a trigger combination blocking other triggers when all triggers of the combination are not active
- Playable triggers are now always listed in the debug info, even when no valid audio is attached to them
- Triggers that are not present on the current version will no longer crash the channels thread
- When the channels thread crashes, the issue will now be logged while the channels are frozen but recoverable from a reload
- Title cards and image cards now work again
- Added Spanish translations (thanks to Huetete#3721)
- Added the category name of the current biome to the debug info
- Fixed the raid trigger not working due to the identifier parameter not being required
- Fixed client side classes trying to be loaded on server causing it to crash on dedicated servers
- The name of the current structure will now trigger a sync when it changes so the debug info isnt seemingly stuck on the last one found
- Fixed the structure trigger
- Decreased the required fabric version to 0.14.14 for better quilt support
- GUI Changes:
- Default list parameters no longer get written
- The default song parameter value 'must_finish = false' no longer gets written
- Updated the wiki link in the header for files that get written
- The LOG_LEVEL debug parmeter now gets properly applied to the log visualizer screen
- The width of buttons that can be cycled is now dependent on the updated text
- Implemented the playback screen
- Fixed some issues with channel info not getting written
- Fixed the scroll bar in the parameters screen getting cut off early sometimes hiding 1 or 2 parameters at the bottom
- Fixed an issue with multiple parameters being selected when typing in the parameters screen
- Fixed various issues with the search bar
- Fixed not being able to interact with some buttons like delete mode