- Removed broken fly_speed_multiplier effect; use movement_speed_multiplier and in_air instead.
- Added shorthand run_chain_inline; specify effects: [] instead of effects in a chain block..
- Added camelCase and nospaces to config getting; you can now specify parameters with underscore_separators, hyphen-separators, camelCaseSeparators, and unspacedseparators.
- Added knockback_resistance_multiplier
- Fixed persistent/serialized permanent effects causing issues on relog (e.g. AttributeModifier-based effects, like bonus_health, movement_speed_multiplier). Holders will now be purged on quit and all effects will be shut down.
- Added trigger_custom effect and a new custom trigger system; lets you have custom triggers based on filters, conditions, chains, cooldowns, whatever else.
- Added no_corners option to mine_radius_one_deep effect (finally!)
- Added teleport_to effect, like teleport except you specify an exact location
- Fixed consume_held_item effect not working
- 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 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