- Added consume_held_item effect, runs Player#updateEffects to be able to create consumable items to interact with other holders
- Fixed bug when enabling/disabling permanent effects in different orders than they were disabled/enabled in; this led to effects such as add_stat giving the wrong bonuses for some users with some configs.
- API: Effect#getUUID, Effect#getNamespacedKey, Player#getEffectAmount have been removed, and a new Identifiers parameter is passed to effects on enable / disable instead (A data class of a UUID and NamespacedKey to be used)
- Rewrote the entire effect scanning system (again), will be faster and more reliable now.
- Fixed arrow_ring effect ignoring the antigrief for nearby players
- Updated kotlin to 1.7.10
- Changed how effects detect trigger compatibility. (API) - Instead of supplying a Collection<Trigger> in the constructor, a () -> Collection<Trigger> is supplied instead. Triggers.withParameters returns () -> Collection<Trigger> now, and specifying all triggers uses Triggers.all() rather than Triggers.values(). Effect#applicableTriggers remains unchanged; however the named parameter in the effect constructor is now triggers rather than applicableTriggers.
This will fix issues with triggers being registered after effect constructor invocation but before effect compilation, for example the kill_boss trigger not working with give_points.
- Added rotate effect; spins you around a certain number of degrees
- Added more trigger parameters supplied from: bow_attack, jump, melee_attack, mine_block, mine_block_progress, move, projectile_hit, static, toggle_flight, toggle_sneak, toggle_sprint, trident_attack
- TriggerData can now automatically infer Item and Velocity (where not explicitly supplied) from the Player and the Victim components (if present)
- Added no_source option to shoot and shoot_arrow, prevents retriggering effects (Like a ricochet effect for arrows)
- Added traceback effect: teleport back to where you were a few seconds ago, configurable between 1 and 30 seconds in the past
- Added create_explosion effect (Thanks theAstra!)
- Fixed boosters breaking on restart
- Fixed error on startup for some EcoPets users
- Added spawn_potion_cloud effect
- Added add_holder effect; allows you to give custom effects/conditions temporarily on a trigger, for example you can give permanent effects temporarily using this, and a lot of other beautifully complex magic
- Fixed UUID clashes breaking attribute modifier effects between plugins
- Added add_points effect; like give_points but acts permanently - if you're making a mana type system with your points, this works like a modifier (e.g. +40 Mana) - You can take as well as add
- Fixed potential performance issues with in_mainhand, in_offhand, wearing_helmet, wearing_chestplate, wearing_leggings, and wearing_boots by moving Item lookups to CompileData rather than running on each invocation
- Added jobs_level_up trigger
- Added fly_speed_multiplier effect
- API: Added data to TriggerPreProcessEvent
- API: Added data to TriggerProcessEvent
- Added pet filter
- Fixed skill filter
- Added skill filter
- Added win_raid trigger
- Added %boosters_active_list% placeholder (Thanks grzybeek!)
- Added item as trigger parameter
- Added in_mainhand and in_offhand conditions
- Added wearing_helmet, wearing_chestplate, wearing_leggings, and wearing_boots conditions
- Added value to level_up_pet and level_up_skill triggers
- Added craft trigger
- Added enchant_item trigger
- Added EcoEnchants-specific trigger, obtain_special
- Added damage_item trigger
- Added value to heal trigger
- Added has_active_pet condition
- Added has_pet_level condition
- Added give_pet_xp effect
- Added pet_xp_multiplier effect
- Added gain_pet_xp trigger
- Added level_up_pet trigger