- Added new Dispatcher interface. A dispatcher can represent a Player, Entity, Block, or even the Server.
- Holders (e.g. Enchantment Levels, Talismans, EcoItems) are no longer held by Players, but by Dispatchers
- Chains / Effects are now triggered by Dispatchers
- Conditions are now checked against Dispatchers
- Triggers are now triggered by Dispatchers
For Developers:
- Deprecated most core API methods and replaced them with new Dispatcher-based methods: e.g. registerHolderProvider has been replaced with registerSpecificHolderProvider<T> and registerGenericHolderProvider
- Effect#onEnable and Effect#onDisable have had the player versions deprecated and replaced with new versions that take Dispatchers. Update your effects!
- Condition#isMet has had the player version deprecated and replaced with a new version that takes a Dispatcher
- All methods like Player#holders, Player#updateHolders, etc. have been deprecated and replaced with Dispatcher<*>#holders etc.
To convert between an Entity and a Dispatcher, just do Entity#toDispatcher - the core flow and most method names have remained the same.
Your existing Effects, Conditions, etc. will still work, however you should update them ASAP as the old methods will eventually be removed!
- - Added conditions.default-state-off-main-thread option to /plugins/libreforge/config.yml. This option is intended for more advanced users and should help fix the situation where not-met lines are not displayed in rare edge cases. However, changing the value from true to false can also cause not-met lines to sometimes appear where they shouldn't.
- - Fixed take_damage bug causing bugs in versions prior to 1.20
- - The drop_item_for_player is no longer valid, use drop_item instead
- - not-met-lines now works with effect conditions as well
- - Added cooldown_effects function
- - Added create_boss_bar, remove_boss_bar, and update_boss_bar effects
- - Fixed strikethrough bug
- - AOE and aoe_blocks now support effects that have their own conditions, filters, mutators, and common arguments
- - API: MultiplierModifier and AdditionModifier have been merged and deprecated. Their replacement is now IdentifiedModifier
- - Added a aoe_blocks effect that works the same way as aoe, but does not affect entities, but blocks
- - Effects passed by aoe and aoe_blocks now also have an entity/block location, which is useful for particle animations, etc.
- - Added AOE beam shape
- - break_block effect now prevents other block mining effects from being triggered again (e.g. mine_radius)
- Fixed alt_click triggering twice when clicking on a block
- Added location for consumption trigger (allows more effects to be used for it)
- Added an item data system, similar to items, but for rows: two new effects (set_item_data, remove_item_data) and two new conditions (has_item_data, item_data_equals).
- Added %libreforge_item_data_<key>% insertion for use with items
- Added is_falling condition
- Added is_flying condition
- Added is_boss filter to replace only_bosses and only_non_bosses filters
- Fixed sound playback
- API: Improved SlotType for more general purpose
- Fixed bug with sending deprecation messages. There may be warnings in the console when updating, just update your configurations according to the warnings