- Fixed mine_radius_one_deep
- Added ability to disable holder update on item pickup (Thanks EricSzabo!)
- Added sheep_color filter (Thanks exanthiax!)
- shear_entity now supports snowmen (Thanks exanthiax!)
- Added honey_level_full filter (Thanks exanthiax!)
- Added honey triggers (Thanks exanthiax!)
- Fixed points commands not working with global points (Thanks OfTeN!)
- Improved mine_radius_one_deep (Thanks b0hle!)
- Fixed damage_twice (Thanks OfTeN!)
- add_enchant, remove_enchant, and has_enchant all now support enchantments from datapacks
- has_skill_level now supports AuraSkills
- Filters can now have both the regular and inverse present at the same time
- Added spawner_entity filter (Thanks exanthiax!)
- Added custom item tags, you can create them in /plugins/libreforge/tags.yml
- Updated to eco 6.73.0, make sure to update
- Added has_enchant condition (Thanks Exanthiax!)
- Added enchant filter (Thanks Exanthiax!)
- Added add_durability effect to modify item durability (Requires Paper 1.21+)
- Improved add_enchant and remove_enchant
- Fixed EcoSkills add_stat flicker (make sure to be on latest EcoSkills)
- Added new EcoScrolls triggers, conditions, effects, and filters
- Fixed AuraSkills add_stat integration flickering on reload
- Fixed bonus_health flicker
- Added in_gamemode condition
- Fixed safe_fall_distance
- Fixed Java 17 Compatibility (1.17 - 1.19.4 servers)
- Fixed AuraSkills integration (Thanks mishonenchev!)
- Fixed attributes on pre-1.21 (Thanks Kapitowa!)
- Added AxEnvoy integration (Thanks exanthiax!)
- Added NuVotifier integration (Thanks exanthiax!)
- Fixed error with craft trigger on 1.21
- Fixed rotate effect and added new rotate_victim effect
- /libreforge points now works with global points, just pass "global" in as the player
- Added safe_fall_distance effect (1.21+)
- Added block_reach and entity_reach effects (1.21+)
- Added mining_efficiency, mining_speed_multiplier, and underwater_mining_speed_multiplier effects (1.21+)
- Added gravity_multiplier effect (1.21+)
- Added increase_step_height effect (1.21+)
- Added jump_strength_multiplier effect (1.21+)
- Added movement_efficiency_multiplier and sneaking_speed_multiplier effects (1.21+)
- trident_attack is now paper-only
- Updated various internals to be 1.21-based, please report any bugs that occur with previous versions
- Updated to Java 21
- Added option to add certain ItemFlags to all items on the server (e.g. to globally hide attributes). This will require display-without-meta to be set to true in /plugins/eco/config.yml
- Fixed cross world block break issue
- Fixed attribute bug
- Fixed 'heavy arrows' bug on 1.21+
- Fixed LevelledMobs version compatibility issues
- Fixed console spam on 1.20.6
- Fixed a long list of bugs related to slots
- Added several new effects/conditions and made several improvements to existing effects/conditions (Thanks Callum!)
- Several memory optimisations (Thanks Casper!)
- Added 1.20.6 support
- Added in_slot condition, see here for more info:
https://plugins.auxilor.io/effects/all-conditions/in_slot
- API: Added SlotType.isOrContains(SlotType) for compatibility with CombinedSlotType
- API: Added SlotItemProvidedHolder<T> which should be used instead of ItemProvidedHolder when fetching holders when possible
- Temporarily disabled holder refresh cooldown due to bugs
- Fixed memory leaks with add_holder, add_holder_in_radius, and add_holder_to_victim (Thanks Casper!)
- Massively improved general plugin performance with new holder refresh cooldown, set to 250ms by default but can be changed or disabled entirely (Thanks Casper!)
- API: Added Dispatcher<*>.forceRefreshHolders() if the cache must be bypassed. This should only be used in exceptional circumstances.
- Triggers that are disabled (i.e. not in use) will no longer have their listeners registered at all, improving performance and massively reducing memory use
- Trigger and TriggerData hashcodes are now lazy-evaluated instead of being evaluated on each call, improving performance (Thanks Casper!)
- Various improvements and fixes to several triggers, including fixing potential memory leaks (Thanks Casper!)
- Fixed dupe bug for some items with multiply_drops
- Fixed alt_click
- More optimisations to move and change_chunk
- More performance improvements
- Fixed item_points_above, item_points_below, item_points_equal (Thanks OfTeN!)
- Fixed disabled triggers still running
- Fixed add_holder_in_radius
- Fixed memory leak with add_holder_to_victim
- Improved hashCode() performance under load for holders (Thanks Kapitowa!)
- Added optional check for meta (defaults to true) for switching to an item updating the holders (Thanks Kapitowa!)
- AFK Players will no longer have their holders updated by default (Thanks Kapitowa!)
- Fixed regen_multiplier (Thanks Kapitowa!)
- Various small optimisations to effect triggering (Thanks Kapitowa!)
- spawn_particle now runs async (Thanks Kapitowa!)
- Significantly improved performance of ItemHolderFinder, this has been the main source of performance issues for users
- Fixed cancel_event not always working as expected
- Fixed condition-not-met lore not respecting some placeholders
- give_item effect now supports multiple items (Thanks OfTeN!)
- Improved send_message and shear_entity triggers (Thanks OfTeN!)
- Fixed severe bugs with static trigger
- Fixed severe bugs with /libreforge trigger
- Fixed many bugs with various effects, triggers, conditions, etc caused by reload
- Fixed many more other bugs
- Categories will no longer clear on shutdown
- Fixed the plugin not loading for certain users since last version
- Fixed compatibility with Veinminer (Thanks Choco!)
- Optimised move and change_chunk triggers (Thanks Casper!)
- Added animation effect to play animations, more will be added in the near future
- API: Added Animation API
- Fixed give_permission causing errors with NPCs
- Added Model Engine integration: play_animation effect
- API: Added EntityProvidedHolder
- Added this_item filter
- Added support for TerraformGenerator custom biomes (Thanks OfTeN!)
- Added /libreforge debug command
- Fixed broadcast effect
- API: Added TypedHolderProvider<T>, TypedProvidedHolder<T>, and further improved ItemHolderFinder
- API: Added Dispatcher#getHoldersOfType<T: Holder>(): Collection<T>
- Fixed potential memory leak with entities
- Fixed bug where some placeholders wouldn't work in some places in some effects
- API: TriggerData is no longer a data class
- Fixed custom biomes integration (Thanks OfTeN!)
- Fixed location_to_drop mutator (Thanks OfTeN!)
- Added keep_levels effect as xp counterpart to keep_inventory - use both if you want to have vanilla-style keep inventory
- Fixed transmission effect
- Fixed add_holder, add_holder_in_radius, add_holder_to_victim, and add_permanent_holder_in_radius not inheriting base holder placeholders
- Fixed several bugs with placeholders in effects / conditions / etc
- Fixed nested chains not working properly
- Fixed holder placeholders not working with permanent effects
- Several other bugfixes and stability improvements
- Added custom biomes integration with Terra (Thanks OfTeN!)
- Added location_to_drop mutator (Thanks OfTeN!)
- Updated Kotlin, should fix errors for some people
- Fixed move trigger not working
- Improved/Fixed smelt trigger (Thanks OfTeN!)
- Added drop_item_slot effect (Thanks OfTeN!)
- Removed paper-plugin.yml
- Added missing add_global_points effect
- Added complete_advancement trigger
- Added advancements filter
- Added has_completed_advancement condition
- Added smith_item trigger
- Added open_crafting effect
- Added TAB integration: has_scoreboard_visible, has_boss_bar_visible
- Big improvements to are and aoe_blocks: they will now run from the supplied location, rather than from the player's location. You may need to update some effects to have a location_to_player mutator
- Fixed all_players, random_player, run_chain, and nested chains for non-player triggers
- Added victim_as_dispatcher mutator
- Fixed Block and Location dispatchers
- Added dispatcher_as_player and dispatcher_as_victim mutators
- Improved all existing triggers for Dispatcher system
- Fixed run_command effect
- Fixed click_block and click_entity triggers firing twice (Thanks PQGuanfang!)
- API: Added TriggerData#dispatcher - there is no corresponding TriggerParameter as trigger data will always contain a dispatcher
- Several other performance and stability improvements
- 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 in /plugins/libreforge/config.yml. This is for more advanced users and should help fix not-met-lines not showing up in rare edge cases. However, changing the value from true to false may also make not-met-lines show up when they shouldn't at times.
- Added is_expression_true filter
- take_damage trigger will no longer trigger for void damage, /kill, or /suicide
- API: Added RegistrableCategory
- Added is_op condition
- Added value to shoot_bow trigger, between 0 and 1 depending on bow pull
- Added value_above, value_below, and value_equals filters
- fully_charged filter now works with shoot_bow
- Added item_durability_above_percent and item_durability_below_percent filters
- smelt trigger now gives the number of items smelted as the value
- Added optional filters for mine_vein
- Fixed projectile_hit not working correctly
- Added damage_offhand effect
- AureliumSkills integration will no longer load if EcoSkills is installed
- Fixed is_behind_victim
- Added is_passive filter
- aoe and aoe_blocks now supports its effects having their own conditions, filters, mutators, and generic arguments
- API: Combined and deprecated MultiplierModifier and AdditionModifier. The replacement is now IdentifiedModifier
- Fixed victim placeholders (Thanks PQguanfang!)
- Improved give_food effect (Thanks Keegan!)
- Added give_saturation, set_food, and set_saturation effects (Thanks Keegan!)
- Added replant_crops effect (Thanks Callum!)
- Fixed empty slots sometimes passing conditions like in_mainhand, in_offhand, etc.
- Cleaned up ItemData and ItemPoints
- Added option to not always process blocks with telekinesis, improves compatibility with other plugins
- Fixed console spam caused by Paper ItemStack#isEmpty change for people not on the latest version
- Nested chains now support their own Conditions, Mutators, Filters, and generic arguments like 'chance', 'repeat', 'cooldown', etc.
- Fixed color parsing in run_command and run_player_command
- Fixed plugin not starting up on paper 1.17.1
- Fixed standing_on_block not working for non full-height blocks
- click_entity trigger now only fires for living entities
- Fixed spectral and tipped arrows not working with bow_attack
- aoe and aoe_blocks now start at the player's eye location
- Fixed beam and scan_in_front AOE shapes not working properly
- particle_line effect now fires from eye height
- Fixed bugs with counters
- Fixed empty_bucket
- Added aoe_blocks effect, works the same as aoe but affects blocks instead of entities
- Effects given to aoe and aoe_blocks now also have the location of the entity/block, useful to have particle animations etc
- Added beam AOE shape
- break_block effect now prevents re-triggering of other block mining effects (e.g. mine_radius)
- Added on-complete effects to tasks
- Fixed alt_click firing twice if clicking on a block
- Added location to consume trigger (allows more effects to be used on it)
- Added item data system, like item points but for strings: comes with two new effects (set_item_data, remove_item_data), and two new conditions (has_item_data, item_data_equals).
- Added %libreforge_item_data_<key>% placeholder to be used with items
- Added value: <value> to counters as an alternative to multiplier
- Added is_falling condition
- Added is_flying condition
- Added is_boss filter to replace only_bosses and only_non_bosses
- Fixed play_sound
- API: Improved SlotType to be more general-purpose
- Fixed deprecation messages not being sent. You may get warnings in console when updating, just update your configs with what the warnings say
- Fixed set_item_points not working in most situations
- Fixed set_custom_model_data not working in most situations
- Fixed item_durability_above and item_durability_below filters not always working as expected
- Fixed projectile_hit not working properly
- Added set_armor_trim effect (Thanks Sen!)
- Added vicitm_speed_multiplier (Thanks Sen!)
- Fixed AOE not working properly (Thanks Sen!)
- Fixed age_crop not working (Thanks Sen!)
- Removed "Effects >" prefix for cooldown, cost, and others
- Improved some default messages in lang.yml
- Added custom effect arguments, read here for more information:
https://plugins.auxilor.io/effects/custom-arguments
- Fixed server crash bug
- (For debugging) Added ability to put libreforge.jar (with no version) into /plugins/libreforge/versions to force it to load
- (API) Added Effects.compileChain without specifying an executor
- Stopped shading minimessage, fixes bugs on 1.17