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
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