- 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
- Fixed AttributeEffect console spam from last version
- 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
- Fixed take_damage causing errors on versions before 1.20
- Deprecated drop_item_for_player, use drop_item instead
- not-met-lines now also works with per-effect conditions
- Added cooldown_effects
- Added create_boss_bar, remove_boss_bar, and update_boss_bar effects
- Added support for item placeholders in lore
- 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)
- 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 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
- Fixed brew trigger, again (Thanks OfTeN!)
- Fixed custom run_order not working
- Added left_click_npc and right_click_npc triggers (Requires Citizens)
- Added npc filter (Requires Citizens)
- brew and brew_ingredient no longer require the player to have the brewing stand open when brewing finishes (Thanks OfTeN!)
- Added /libreforge points commands: set / give / get / take (Thanks OfTeN!)
- API: Counters are now cloneable
- Categories will now clear on shutdown
- Added run_order argument to all effects to override the default order in which effects run. This isn't needed in most circumstances and may cause unintended behaviour if used incorrectly, however it can be used (for example) to make add_damage run before damage_multiplier.
- Fixed give_permission effect not working correctly
- Fixed error with bleed effect for non-paper users
- Added API events (Thanks OfTeN!)
- Fixed equip / unequip sounds not working
- Fixed exploit with damage_nearby_entities (Thanks Kapitowa!)
- Improved take_entity_damage trigger to work with projectiles
- Fixed click_block trigger working on left-click
- Fixed play_sound not working with placeholders
- Values in placeholder_equals and placeholder_contains can now themselves contain placeholders (Thanks Sen!)
- Added support for multiple commands in run_player_command and run_command effects (Thanks Sen!)
- Added support for glow berries with fully_grown filter (Thanks Sen!)
- Fixed block_item_drop not working with the block filter
- Fixed bug where bedrock could be broken with drill
- Improved transmission effect
- Added support for nested chains, you can put chains inside other chains now
- Deprecated drop_random_item_for_player, merged into drop_random_item
- Deprecated run_chain_inline, replaced fully with native chains
- Removed all previously deprecated APIs
- Fixed plugin performance! The vast majority of all performance was taken up by Config#getDoubleFromExpression and Config#getIntFromExpression, and this has been fixed. Make sure to update to the latest version of eco to get these performance benefits.
- Heavily optimised conditions, unused conditions will no longer trigger updates at all
- Added on_ground condition (Thanks Sen!)
- Added in_rain condition (Thanks Sen!)
- Added in_bubble condition (Thanks Sen!)
- Added in_lava condition (Thanks Sen!)
- Improved replace_near condition, it's now possible to make frost walker-style effects and an example has been added on the wiki (Thanks Sen!)
- Added click_block trigger as limited range alternative to alt_click
- Fixed in_region condition
- Fixed potential lag exploit
- Heavily optimised trigger dispatching to prevent unused triggers from ever dispatching (API-wise, TriggerDispatchEvent will now only be called if the trigger would be used by anything)
- Updated config.yml, added effects.use-setblock-break for advanced users
- 'every' argument will no longer fire the first time (Thanks Kapitowa!)
- Optimised effect triggering by >30% (Thanks Kapitowa!)
- Added tame_animal trigger
- Added name_entity effect
- Fixed MultiMultiplierEffect-based effects, e.g. skill_xp_multiplier, job_xp_multiplier, pet_xp_multiplier, regen_multiplier, etc.
- Fixed empty item_levels NBT tag
- Added rapid_bows effect
- Added telekinesis effect
- Added close_inventory effect
- Fixed elytra_boost_save_chance effect (and all ChanceMultiplierEffect-based effects)
- Improved and optimised change_world trigger (Thanks OfTeN!)
- Fixed bleed effect triggering kill multiple times
- Fixed static triggers not working since last version
- Added decimal support to bonus_health
- Added reason to regen_multiplier
- Added swarm effect
- Added target_player effect
- API: Updated how triggers are enabled
- Optimised trigger dispatching to prevent overhead from unused triggers
- Fixed effects not supporting certain triggers when the mutators would allow it
- API: Mutators now come with TriggerParameterTransformers to specify this behaviour
- Fixed bugs with dynamically registered triggers (e.g. enchant_<type>)
- Added send_minimessage effect (Requires Paper)
- Chain elements are now weighted, so you can make certain elements (effects) more likely than others if using the 'random' run-type.
- API: Chains can now be triggered directly without manually creating a DispatchedTrigger.
- Chains will now be considered executed if any element in them triggered successfully. This fixes bugs where effects lower down in chains are not executed if effects above them failed to run
- Fixed %hits% and %distance% not working
- Fixed feather_step effect breaking pressure plates
- Fixed multiply_velocity effect
- ConditionBlock#isMet is now thread-safe: this fixes many bugs, including where players could be kicked for seemingly no reason
- Massively optimised Condition not-met-lines
- Fixed custom placeholders not being formatted properly
- Fixed bugs with give_health effect
- Added drop_weighted_random_item effect
- Deprecated drop_random_item_for_player (merged into drop_random_item)
- API: Added more ways to register holder placeholder providers
- Unused triggers will no longer be dispatched, which should improve server performance
- Added item points and item levels, read more here:
https://plugins.auxilor.io/effects/item-levels
- Added item_level_above, item_level_below, and item_level_equals conditions
- Added item_points_above, item_points_below, and item_points_equal conditions
- Added give_item_points effect
- Added multiply_item_points effect
- Added level_item_effect
- Added set_item_points effect
- Added set_global_points effect
- Added set_custom_model_data effect
- Added level_up_item trigger
- API: Added TriggerData#foundItem as a shorthand for data.holder.getProvider<ItemStack> ?: data.item
- Added jump option to pull_to_location
- Fixed set_block effect
- Fixed leave_region trigger
- Added in_region condition (Requires WorldGuard)
- Added enter_region trigger (Requires WorldGuard)
- Added leave_region trigger (Requires WorldGuard)
- Added region filter for the above triggers (Requires WorldGuard)
- Added drop_pickup_item effect that drops an item that runs a chain when it's picked up (Requires Paper)
- Added open_ender_chest effect
- Added add_enchant and remove_enchant effects
- Added all_players effect to run a chain for all players
- Added random_player effect to run a chain for a random player
- Added click_entity trigger
- Added age_crop effect
- Added slot options to give_item effect
- Added message option to block_commands effect
- Fixed drop_item effect
- Fixed trigger_custom effect
- Fixed location_to_cursor mutator
- Various other stability improvements
- Fixed configs that exist by default occasionally losing all formatting
- Fixed flicker with permanent_potion_effect
- Fixed send_message not working in action bar since a few versions ago
- Fixed tons of triggers firing multiple times (Fixes multiply_drops among others)
- Added conditional custom placeholders, you can now make completely dynamic placeholders based on conditions that integrate with PlaceholderAPI! Read more here:
https://plugins.auxilor.io/effects/custom-placeholders
- Added drop_random_item and drop_random_item_for_player effects
- Fixed bug with Attribute effects
- Identical triggers will no longer dispatch in the same tick: this not only removes the cooldown workaround as a necessity, but this should also lead to significant performance improvements!
- Added global points which belong to the server rather than to the player: you can access these with %libreforge_global_points_<id>% and control them with new give_global_points and multiply_global_points effects, and new above_global_points, below_global_points, and global_points_equal conditions
- Added custom placeholder system, read more here:
https://plugins.auxilor.io/effects/custom-placeholders
- Added load-weight option to all configs, you can add it to any config to change the load order, read more here:
https://plugins.auxilor.io/effects/configuring-an-effect#load-weight
- Added reel_speed_multiplier effect
- Added multi-message support to send_message effect
- Fixed pointless limitation with points
- API: Cleaned up ProvidedHolder, to get the ItemStack from a ProvidedHolder you can do holder.getProvider<ItemStack>() now
- Added damage_twice effect
- Added brew_ingredient trigger
- catch_fish now passes the XP dropped as the value
- Added damage_item effect
- Added repair_item effect
- Added `multiplier` option to multiply_drops instead of fortune
- Counters now support all effect arguments (e.g. chance, every, etc.)
- Added brew_time_multiplier effect
- Added potion_duration_multiplier effect
- Added dont_consume_lapis_chance effect
- Added dont_consume_xp_chance effect
- Added item_durability_above filter
- Added item_durability_below filter
- add_holder (and related effects) no longer require specifying conditions
- Various fixes
- Added run_command trigger
- Added teleport trigger (Thanks Sen!)
- Fixed add_stat flickering for AureliumSkills users
- Added homing effect to make projectiles hone in on enemies (Homing Arrows, Homing Tridents)
- Added piercing effect to allow projectiles to pass through entities and hit multiple at once
- (API) Added new TriggerPlaceholder API to generate placeholders from TriggerData, much cleaner than using a TriggerDispatchEvent listener
- Fixed crit_multiplier
- TriggerData#item will now be passed in to get ItemStack-based placeholders if the holder provider is not an ItemStack
- Added %location_x%, %location_y%, %location_z%, and %location_world% placeholders (shorthand: %x%, %y%, %z%, %world%)
- Added /libreforge reloadextensions command
- Fixed repeats not working correctly
- Fixed elytra_boost_save_chance
- Fixed placeholder injections not working for permanent effects
- Updated to use new eco 6.56.0 placeholder system
- Added enable and disable triggers
- Added create_hologram effect
- Added kick effect
- Added clear_invulnerability effect
- Optimised mining effects (mine_radius, vein, drill, etc)
- Various other optimisations
- Reworked holder loading, duplicate holders will now load properly
- Fixed critical bug with bonus_health and health with add_stat (Thanks SenMC for testing!)
- Fixed bug with the price effect argument (Thanks OzzeR for providing a config to test with!)
- Prices will now throw an exception if they are set to a negative value
- Fixed all effect arguments being called twice for direct-ID chains
- (API) Made all block (EffectBlock/ConditionBlock/etc) constructors internal, this was an oversight, these should not have been public
- Rewrote AttributeModifier-based effects
- Fixed flight effect
- Fixed inverse filters not working
- Fixed potential 'flicker' bug with attribute effects
- Fixed points not integrating with price system
- Config categories can now preload to resolve load order issues
- Removed any use of DefaultArtifactVersion to fix 1.17 support
- Updated to eco 6.55.0
- Fixed extremely critical bug with Counters (Thanks everyone who reported!)
- (API) LibreforgePlugin#categories is now locked, you have to use LibreforgePlugin#addCategory to prevent desync
- (API) Added ViolationLogger and SilentViolationContext to allow for silent compilation
- Fixed ignite effect errors
- Added item_durability_multiplier effect
- Fixed DefaultArtifactVersion not existing for 1.17 users
- Improved exception handling and error logging on reload / startup
- Fixed legacy chains.yml's not working
- Fixed spawn_entity effect being marked as permanent
- Fixed static trigger
- Fixed all effects with runnables
- Fixed inverse: true not working for conditions
- Fixed several critical bugs with permanent effects
- Fixed legacy config loading
- Added launch-at-location option to shoot and shoot_arrow
- Fixed loading error with mismatched libreforge versions (Thanks in part to OfTeN!)
- Improved violation messages (Thanks OfTeN!)
- Fixed points placeholder
- Fixed spawn_mobs effect being considered permanent (Thanks OfTeN!)
- Fixed AOE effects compiling wrong (Thanks OfTeN!)
- Added holder placeholders
- And added %text%, %string%, and %message% to access the TEXT parameter in placeholders
- Fixed top-level conditions not working
- Fixed not met effects not working
- Conditions can now access ProvidedHolder
- Deprecated config methods without ProvidedHolder, will be removed in a future release
We've updated from libreforge v3 to v4!
libreforge is the system that powers all of the effects in my plugins, and the v4 update is a total rewrite from the ground up to make your effects faster, more flexible, and more powerful!
So what's new?
- libreforge 4 installs
itself as a standalone plugin, making libreforge 4 up to 11 times faster
- One unified API for all libreforge plugins; it's easier than ever to create extensions and make your own custom Effects/Conditions/Triggers, etc
- Streamlined project setup for developers with the new libreforge gradle plugin, and no more boilerplate config / lang / chains / etc. This also comes with a move to repo.auxilor.io rather than jitpack!
- Native support for CompileData, Chains, etc.
- Ability to actually access and modify the item / entity that provides effects; in the future it will be possible to change the actual item damage etc.
- Streamlined configuration found at /plugins/libreforge instead of having 11 different lrcdb.yml's, etc. config.yml and lang.yml are simpler now too!
- Massively improved performance and stability
- Tons of bugfixes
Will my configs break?
No! All your configs will still work exactly as they did before, it's just a new engine under the hood to bring them to life.
As you can see - I'm absolutely thrilled about this update and the possibilities it's going to bring in the future. It's been over 2 months in the making and I've never been happier to publish a release!
- Changed load order to POSTWORLD
- Fixed elytra_boost_save_chance (Thanks WobbyChip!)
- Fixed damage_item trigger (Thanks WobbyChip!)
- Made damage_item cancellable (Thanks Casper!)
- Improved alt_click location detection (Thanks OfTeN!)
- Improved change_world trigger (Thanks OfTeN!)
- Updated EcoJobs integration to work with 2.0.0
- Fixed edge cases with craft trigger (Thanks Jeck!)
- Fixed bug with shuffle_hotbar (Thanks OfTeN!)
- Fixed flight effect (Thanks OfTeN!)
- Added fill_bucket, empty_bucket, and shear_entity triggers (Thanks Exanthian!)
- Fixed keep_inventory effect not clearing drops, breaking support with some plugins (Thanks PQguanfang!)
- Updated points placeholders to not require initialization
- Fixed projectile effects not working on bow_attack (Thanks OfTeN!)
- Fixed has_job_level condition (Thanks OfTeN!)
- Added flight effect (Thanks OfTeN!)
- Added block parameter to alt_click (Thanks OfTeN!)
- Added block_to_location mutator (Thanks OfTeN!)
- Fixed pumpkins and player heads not working as helmets (Thanks OfTeN!)
- Recoded remove_item effect to use the Price system under the hood
- Fixed bug with autosmelt and block_item_drop
- Fixed bug with entity_item_drop
- Added villager_trade trigger
- Fixed leave_job trigger
- Fixed has_active_job condition
- Fixed block_item_drop and entity_item_drop being called on empty block drops (e.g. breaking glass)
- Updated prices internally for grouping in messages
- Fixed potential bug with static trigger / triggers where the player is the victim not working with certain antigrief integrations
- Added enter_bed and leave_bed triggers
- Added entity_target trigger
- Updated to new eco price API (fixes support with EcoShop)
- Added player_name and victim_name filters
- Added at_least_of condition, like any_of except you specify a minimum number of conditions to be met
- Added near_entity condition
- Added is_npc filter (Thanks OfTeN!)
- Fixed bugs with chunk loading/unloading and the glow_nearby_blocks effect (Thanks OfTeN!)
- Added option to disable automatic color updates in display (Thanks OfTeN!)
- Fixed alt_click firing with pressure plates (Thanks danieleguglietti!)
- Fixed bug with craft trigger (Thanks OfTeN!)
- Added can_afford_price condition
- Fixed many triggers not working with effects that they should work with (because location can automatically be inherited from victim, etc); you now only have to specify the exact parameters you export and inherited trigger parameters will automatically be applied.
- Added give_price and pay_price effects
- Fixed multiply_all_stats
- Added job filter to join_job trigger (Thanks OfTeN!)
- Added add_holder_to_victim (Thanks OfTeN!)
- Fixed placeholder parsing with victim_as_player and player_as_victim mutators
- Added option to not specify items with multiply_drops trigger
- Added potion_effect filter (Thanks OfTeN!)
- Fixed traceback not working
- Added damage_mainhand effect
- Added is_behind_victim filter
- Fixed add_holder_in_radius not working
- Fixed camelCase config keys not working (if you use them)
- Removed debug messages that were accidentally left behind when using cooldowns
- Fixed remove_item not working properly
- Added item as an option instead of items to in_mainhand, in_offhand, wearing_helmet, wearing_chestplate, wearing_leggings, wearing_boots, and recoded all of those conditions
- Added true-damage option to damage_victim, to bypass reductions (armor, defense, etc)
- Added AOE effect to run effects on a group of entities around the player (or in a cone, ahead of the player, etc) - read more about it here:
https://plugins.auxilor.io/effects/all-effects/aoe
- Reworked filters (again) and rewrote them with a much cleaner API
- Massively cleaned up Effect / ConfiguredEffect internals
- Added API for generic effect arguments to add your own (e.g cost, mana_cost, chance, cooldown, etc.)
- Added %hits% placeholder to track the amount of times a player has hit an entity
- Added require as a generic argument, which requires some expression to be true (e.g. require: %hits% < 3) - this functions like a shorthand version of is_expression_true
- Optimisations to chains / add_holder / other effect groups
- Lots of internal cleanups and various other bug fixes
- Added drop_item and drop_item_for_player effects
- Fixed spawn_mobs effect allowing the mobs to attack the player
- Fixed bugs with filters, camelCase config keys, and a couple related bugs
- Added lrcdb support - an open, accessible area to share and download configs for EcoEnchants, EcoBosses, Talismans, EcoArmor, EcoItems, Reforges, EcoPets, EcoJobs, and Actions! (Boosters coming soon). You can export configs from in-game, and download them with a command. Have a look around on
https://lrcdb.auxilor.io!
- Fixed config not recognising camelCase separated words (underscore_separated, hyphen-separated and unseparated work too)
- Added drop_item trigger (Thanks MillionthOdin16!)
- Added is_swimming condition (Thanks MillionthOdin16!)
- Added leash_entity trigger (Thanks MillionthOdin16!)
- Added pick_up_item trigger
- Fixed skill_xp_multiplier not working with AureliumSkills
- Added teleport_to_ground effect
- Added in_block condition
- Fixed disable_antigrief_check not working
- Fixed autosmelt and multiply_drops not working together
- Added knock_away effect
- Added pull_to effect
- Added fully_charged filter
- Added spawn_entity effect
- Added take_money effect
- Fixed give_money not working with negative amounts
- Fixed add_holder_in_radius effect
- Added add_damage effect
- Fixed startup error for some users
- Removed send_message_async due to bugs
- Added text_contains filter
- Added add_holder_in_radius effect
- Added add_permanent_holder_in_radius effect
- Added change_armor trigger
- Added hold_item trigger
- Added send_message trigger
- Added send_message_async trigger
- Added text filter
- (API) Added CompileData support to permanent effects
- Fixed reload bug for some users
- Added join trigger
- Added leave trigger
- Added level_up_xp trigger
- Added change_world trigger
- Added respawn trigger
- Added scyther_auto_sell trigger (Requires Scyther)
- Added scyther_auto_collect trigger (Requires Scyther)
- Added player_placed filter
- Added breed trigger
- Added join_job and leave_job triggers (Requires EcoJobs)
- Added sell_items effect
- Added LevelledMobs integration and the %victim_level% placeholder
- Added headshot trigger
- Removed block-item-drop-place-check from config.yml
- API: Added @RunLast annotation for triggered effects to specify them to be ran at the end if possible
- API: Added compile methods for groups of configs in the same context for effects and conditions
- API: Added TriggerCreatePlaceholdersEvent and API for trigger placeholders
- Fixed rare startup bug affecting some users
- Fixed minor bug with configs affecting some users
- Added mine_vein effect
- Fixed EcoJobs integration not being loaded
- Added fully_grown filter
- Added broadcast effect
- Added values to block_item_drop and entity_item_drop
- Added glow_nearby_blocks effect
- Fixed deprecated key categorization (check eco 6.40.0 release notes)
- Added place_block trigger
- Added level_up_job trigger (Requires EcoJobs)
- Added gain_job_xp trigger (Requires EcoJobs)
- Added has_active_job condition (Requires EcoJobs)
- Added has_job_level condition (Requires EcoJobs)
- Added job filter (Requires EcoJobs)
- Added give_job_xp effect (Requires EcoJobs)
- Added job_xp_multiplier (Requires EcoJobs)
- (API) Added Counter / Counters, a structured way to get values from triggers with multipliers / filters / conditions.
- Added %victim_health% and %victim_max_health% placeholders to use in all effects
- Added above_health_percent filter - Reworked all filters to be like other config elements, allowing them to be hyphen-separated, underscore_separated, camelCase, and notseparated
- Fixed placeholders not working in filters
- Added is_expression_true condition
- Added support for victim placeholders; if the victim is a player, you can use %victim_<placeholder>% to parse a placeholder relative to them; for example %victim_player_y% to get the victim's Y coordinate
- Updated to eco 6.39.1; adding support for the min(a,b), max(a,b) and == operators in expressions
- Fixed elytra_boost_save_chance using 0-1 as the chance region rather than 0-100 (consistency)
- Added prevent_trigger option to break_block; mine_radius; mine_radius_one_deep - will improve performance, but at the expense of compatibility
- Fixed EcoEnchants integration
- Added a placeholder that represents the value passed by the trigger (e.g. the amount of damage dealt; see
here). It can be referenced with %trigger_value%, %triggervalue%, %trigger%, %value%, %tv%, %v%, and %t%, depending on what level of shorthand you prefer.
- Added chains.yml, a dedicated area to specify effect chains to be referenced with the run_chain effect
- Added onMaxHealth filter
- Fixed is_night condition not working
- API: Added Iterable<ConfiguredCondition>#isMet(Player) as shorthand for using .all { it.isMet(Player) }
- API: Added TriggerGroups (e.g. static_<interval>, custom_<id>) so you can programatically generate triggers with a common prefix
- Added has_item condition; like wearing_<armor piece>, except it just requires any item to be in the players inventory
- Updated EcoEnchants API to 9.x.x (Users using 8.x.x will not have the integration loaded)
- Moved configs to individual .yml files - existing configs will not break, but read the announcement at discord.gg/ZcwpSsE (#news channel)
- (API) Added HolderProvideEvent, with the ability to modify the list of holders that will be provided to the player
- Added shuffle_hotbar effect
- Fixed two errors with traceback and brew (Thanks OfTeN!)
- Hotfix for traceback error / plugin not loading
- Fixed mob_coins_multiplier effect
- Added elytra_boost_save_chance; chance to not consume a firework when boosting with an elytra
- Fixed damage_nearby_entities effect for base spigot users
- Added brew trigger
- Added smelt trigger
- API: Added ConfiguredCondition#runNotMetEffects
- Fixed warning with new truly-inline chain syntax
- Cleaned up contexts for config violations; instead of having a million brackets (i.e. 'Error for effect <id>, (inline chain) (args) (Effect send_message) (args)), it will be separated by an arrow (->) to be easier to read.
- Added truly-inline chains; a shorthand syntax to run multiple effects on a trigger without ever needing to worry about the run_chain_inline effect, or even what a chain is. Instead of specifying an effect ID, you specify a list of effects to be ran on the trigger. All chain features are supported (it is an inline chain, it's just simpler). Read more about it here:
https://plugins.auxilor.io/effects/configuring-an-effect#shorthand-inline-chains
- Added smite effect; like strike_lightning but damages a victim rather than a location; and you can specify the damage (and have it be silent)
- Fixed set_velocity and multiply_velocity effects not working correctly / not at all
- 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
- 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.
- Changed how holders are provided with piece-specific effects
- 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
- Fixed lore showing %tier% after using /ecoarmor give
- Rewrote effect activation, fixing updated isMet values for effect-specific conditions
- 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 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
- Triggers now supply a numeric value
- Added TriggerPreProcessEvent called whever a trigger is activated, regardless of the holder
- Improved mutator behaviour: previously, stuff like victim_as_player would still permit non-player victims, it would just leave the data un-mutated. Now, it will prevent the effect from activating on non-player victims, which will lead to far less confusion and unintended behaviour.
- Added luck_multiplier effect
- Added add_stat_temporarily effect (Requires EcoSkills)
- Added multiply_stat_temporarily effect (Requires EcoSkills)
- Added consume trigger (Thanks Sedri!)
- Improved/Fixed alt_click trigger (Thanks Sedri!)
- Fixed equip/unequip sounds (Thanks ltjessem!)
- All effect/condition/mutator config options now work with both - and _ as separators, for example blacklist-blocks and blacklist_blocks would both be valid, particle-args and particle_args would also both be valid
- Fixed softdepends for other eco plugins being missing, leading to warnings on startup
- Added multiply_all_stats effect (Requires EcoSkills)
- API: Added EffectPreActivateEvent, moved EffectActivateEvent to be after costs have been applied (eg currency, mana cost). Also added EffectPreInvoke event before any checks are applied, lies between TriggerProcessEvent and EffectPreActivateEvent
- Fixed paper integration always attempting to load if EcoEnchants was installed (due to classpath errors)
- Fixed depends/softdepends in plugin.yml
- Fixed minimum eco version
- Added is_wearing_set condition
- Fixed console spam for some users since last version
- Updated to eco 6.35.1, removed direct EconomyShopGUI/ShopGUIPlus/zShop/etc integrations in favour of new eco system
- Fixed use of now-deprecated methods
- Added is_sprinting condition
- Added inverses to filters; you can prefix any filter with ! in order to negate the output, i.e. !entities: [] means the entity must
not be in that list
- Updated kotlin to 1.6.21, fixes potential version mismatch
- Updated various other dependencies
- Added victim_as_player mutator (inverse of player_as_victim)
- Added support for the cancel_event effect to many more triggers
- Improved zShop integration
- Added support for zShop in the sell_multiplier effect
- Added fromSpawner filter, which will require entities to be from spawners (or not to be from spawners) - Requires Paper to be installed
- Added inverse option to all conditions
- Removed requirement to specify manual truthiness for on_fire, in_air, etc - i.e. removing the requirment to then specify `on_fire: true`, which now defaults to true for all conditions - you can still specify things this way, but the inverse option is preferred
Inverse syntax looks like this:
- id: on_fire
args:
inverse: true
Which will mean that the condition is met when the player is not on fire
- Added any_of condition (Thanks OfTeN for the idea and first implementation!)
Works like this:
- id: any_of
args:
conditions:
- <condition 1>
- <condition 2>
Syntactically similar to effect chains, but it allows any of the specified conditions to be met
- Added transmission effect (Think Aspect of the End)
- Added within_radius_of condition
- Added serializeBack to tier arg parser
- Fixed permanent effects being broken on totem of undying (somehow)
- Added tier:<tier> arg parser to Item lookup
- Added has_potion_effect condition
- Added strip_ai effect
- Fixed oversized packet issues with large numbers of items (Thanks Casper!)
- Added disable_antigrief_check option
- mcMMO skill_xp_multiplier and give_skill_xp effects have been renamed to mcmmo_xp_multiplier and give_mcmmo_xp, so you can use EcoSkills and mcMMO effects at the same time (not sure why you'd run both, but some people do)
- Fixed non-repeated effects not working (ie, basically all effects - I screwed up a few versions ago and didn't realize)
- Added beacon_effect trigger (Requires Paper)
- Removed requirement to specify action_bar parameter for send_message effect: will default to false
- Fixed is_gliding and standing_on_block condition not working
- Added new optional
repeat section to all (triggerable) effects!
You can specify a repeat like this:
args:
repeat:
times: <times>
start: <start count value>
increment: <amount to add to count after each run>
And then reference those values in your effect/mutator/trigger/etc configs, anywhere from in strings to in mathematical expressions to be evaluated.
%repeat_times% - The amount of times the activation should be repeated
%repeat_increment% - The amount to increase the count for after each activation
%repeat_start% - The starting value of the count
%repeat_count% - The current value of the count
This means you can now create automations and much more complex effects without repeating yourself, for example this tripleshot effect here:
- id: shoot_arrow
args:
every: 3
repeat:
times: 2
start: -11
increment: 22
inherit_velocity: true
mutators:
- id: spin_velocity
args:
angle: '%repeat_count%'
triggers:
- shoot_bow
Which spins the velocity -11 degrees first, and then 11 degrees second, keeping the middle arrow - which gives you tripleshot.
I'm excited to see how people use these new effects!
- Added velocity as a parameter for trigger data
- Added spin_velocity mutator
- Added inherit_velocity option to shoot_arrow effect
- Fixed 'every' option for triggered effects
- Added shoot_arrow effect
- Added shoot_bow trigger
- Fixed many effects/conditions/etc not translating placeholders correctly in expressions
- Fixed custom item registration not checking if advanced correctly
- Added elytra_boost trigger
- Added multiply_velocity effect
- Fixed anticheat support with drill effect
- Fixed usage of deprecated APIs in eco
- Added block_commands effect
- Added placeholder support to run_command and run_player_command effects
- Added whitelist option to drill and mine_radius
- Fixed permanent effects breaking with teleport and world change
- Fixed advanced-lore-only not working
- Added config options for potion effects: icons, ambient, and particles
- Fixed bug with keepinventory
- Added support for EconomyShopGUI in the sell_multiplier effect
- Internal changes to inline/anonymous chain compilation
- Added TriggerProcessEvent
- Added previous to PointsChangeEvent to track changes
- Removed mutation order (internal change, was unused)
- eco 6.25.0 migrations
- Updated to use eco 6.25.0 persistent data keys (improves performance)
- Fixed mcMMO integration loading the ecoskills skill_xp_multiplier effect
- Fixed send_title and send_message effects not handling placeholders correctly
- Removed antigrief_check option from effects, will now always be true
- damage_nearby_entities effect no longer requires specifying a list of entities
- Teleport effect will now preserve player rotation in all cases (Thanks OfTeN!)
- Added sell_multiplier effect with hooks for ShopGUIPlus and DeluxeSellwands
- Added damage_self option (defaults to true) for damage_nearby_entities effect
- Added config violations for invalid potion effect names (potion_effect, permanent_potion_effect, etc) (Thanks OfTeN!)
- Added filters_before_mutation option to all triggerable effects
- Fixed mutators not being registered (sorry if you've pulled your hair out trying to figure out why they didn't work - I forgot to register them)
- Removed mutator priority (was confusing) - mutators will now run in the order they're specified in config
- Added mutators: mutators sit between triggers and effects and modify the data sent to the effect. You can modify location, victim, et cetera - allowing for much more powerful effects and effect chains
- Added inline effect chains: If you're not re-using a chain, you can write a full effect chain inline with the new run_chain_inline effect
- Added effect compile data (for developers) so effects can store extra data when compiled (used in inline chains)
- Added projectiles filter, useful for the projectile_launch and projectile_hit triggers
- Added optional delay to effects: like cooldown, every, chance, et cetera, you can specify effects to run after x amount of ticks
The wiki has been improved to show how to use these powerful new features, check it out here:
https://plugins.auxilor.io/all-plugins/configuring-an-effect
- Fixed mine_block and mine_block_progress not working with cancel_event trigger
- Added static_<ticks> trigger, will run every x ticks while active
- Added damage_victim effect
- Added self_as_victim option to all triggered effects
- Added effect chains: Effect chains are groups of effects that can be executed together. This is very useful if you want to create a chance-based effect with several components: chance is calculated independently on each trigger, so without chains, particles and messages could send when the effects don't activate, and vice-versa.
Use the run_chain effect to call a chain
Read more about chains in the updated wiki, here!
https://plugins.auxilor.io/all-plugins/configuring-an-effect#effect-chains
- Fixed give_health effect not accounting for max health (Thanks OfTeN!)
- Added send_title effect
- Added has_mana condition (Requires Aurelium Skills)
- Hotfix for loader constraint violations that can occur with plugins that use outdated kotlin versions
- Added mana_cost integration for AureliumSkills
- Added points_cost support to take points from players on effect activation
- Updated to eco 6.23.0
- Switched holder cache to use Caffeine
- Used server profiles (requires latest eco) to fix point placeholders
- Fixed move trigger for base spigot users when using the faster move trigger option
- Added new config option:
block-item-drop-place-check: true # If the block_item_drop trigger should only fire on naturally placed blocks (prevents dupes)
- Added damage_nearby_entities effect
- Added raytrace-distance option to choose how far alt_click should check for blocks
- Added drill effect
- Added disable_on_sneak option to mine_radius effect
- Added deploy_elytra trigger
- Added run_player_command effect
- Added give_oxygen effect
- Added damage_armor effect
- Added extinguish effect
- Fixed hunger_multiplier/food_multiplier not working
- Fixed invalid enchantments still being applied
- Added autoupdating for ecoarmor.json
- Made a new icon and added it to the plugin
very cool
- Fixed repeated lore on shards
- Updated to eco 6.8.1 update checking (required new ID)
- Fixed shard and crystals not display external lore from other plugins, ie shops and other GUIs
- Fixed chestplates being called helmets in Huntress and Slayer sets
- Changed internal registration
- Registered shards and tiers with eco
Use shard_<set> or crystal_<tier>
- Fixed default angelic config
- Removed ender, miner, and young sets as they were from old versions and not a good showcase. This is only for newly generated configs
- Added slayer, huntress, and angelic armors to default config (Thanks Sedri!)
- Added mythic and ancient crystals to default configs
- Added default ecoenchants + ecoitems + ecobosses integrations built into default configs
- Optimised movement listeners substantially
- Added telekinesis effect
- Added knockback-multiplier effect
Changes since 4.x.x:
- Removed separate config files for sets and tiers and made ecoarmor.json
- Default sets and tiers can now be fully removed rather than disabled
- Fixed several bugs
- Reworked commands:
/ecoarmor
/ecoarmor reload
/ecoarmor give
/ecoarmor editor (coming soon)
- Added is-sneaking condition
- Updated to eco 6.0.0
This is essentially a complete backend rework and will allow for bigger changes down the line!
You will have to remake your sets in json to use this as the internal structure has changed.
The web panel has been unfortunately delayed due to personal reasons with the developer. It will still release, but at a later date. No ETA.
- Updated to eco 6.0.0
This update will require you to update eco and all extensions
The major version number has been incremented due to semantic versioning
- Added is-sneaking condition
- Fixed advanced not working
- Fixed advancedLore not showing up
- Updated to eco 5.7.0
- Reworked commands:
/ecoarmor
/ecoarmor reload
/ecoarmor give
/ecoarmor editor (coming soon)
This is a prerelease/beta, and is not intended for use in production.
- Removed separate config files for sets and tiers and made ecoarmor.json
- Default sets and tiers can now be fully removed rather than disabled
- Fixed several bugs
This is essentially a complete backend rework and will allow for bigger changes down the line!
You will have to remake your sets in json to use this as the internal structure has changed.
A web panel will be added soon to simply configuring tiers and sets!
New icon uses a straight diagonal line rather than a curve
- Fixed bug with EcoArmor removing other plugins' persistent potion effects
- Backend changes for Java 16 parity
The 25% sale is now over!
25% OFF FLASH SALE UNTIL JUNE 20!
- Fixed resetting attribute values to 0 not working
- Added 1.17 support and updated to Java 16
You'll have to wait for ProtocolLib to update to use this version on 1.17
- Fixed crystals being able to be used on unintended items
- Optimised ArmorDisplay to only have 1 getItemMeta rather than up to 7-8 per item.
- Fixed %tier% showing in autocraft
- Optimised internals slightly
- Added ecoarmor.noflydisable permission
- Added has-permission condition
- Added required tiers to crystal lore
- Fixed upgrades duplicating armor in creative mode (they will now not drag-and-drop in gmc)
- Fixed disabled sets still registering recipes
- Added boss-damage-multiplier effect
- Updated to eco 5.0.0
Changed major version number for semantic versioning
- Updated to eco 4.3.1 Configs
Requires eco 4.3.1 to be installed
- Added in-biome condition
- Fixed disable effect check not checking if enabled: this should fix flight
- Improved display system
- Fixed lore being overridden in plugins like AuctionHouse
- Added warnings and checks for invalid default tiers, effects, enchantments, and potion effects
- Fixed invalid effect in reaper.yml
- Fixed NPE (again)
- Added option to set default tier for an armor piece
- Added option to have multiple tiers that can be required for application
For example:
requires-tiers:
- osmium
- netherite
Would mean that to apply the tier, the item must already be osmium
or netherite
- Fixed default ecoarmor.give permission
- Added option to set upgrade crystal material
- Fixed advanced armor overriding regular armor in recipe parts
- Made potion effects follow conditions
- Prevented placing skulls in armor sets
- Removed redundant config options
- Added below-hunger-percent and above-hunger-percent conditions
- Added craftable option to each set piece
New condition system:
- Effects and Advanced Effects require all conditions to be met to activate
- Potion Effects do not require conditions to be met
A full list of conditions can be found here:
https://ecoarmor.willfp.com/effects/a-list-of-conditions
- Recoded entire effect system
- Recoded entire tier system to no longer simply use the names of the tiers as strings on the backend
- Refactored many things around
- Added tier options to /eagive
- Fixed shard recipes
- Young armor now requires 50% health or more to activate
- Fixed update checker
- Cleaned up and optimised many areas of the code, effects in general should be a lot faster and all external config accessors have been removed
Configs from 2.0.0 should work out of the box
- Recoded the entire tier system
- Cleaned up code
- Moved set configs and tier configs into their own files - making your own sets and tiers is now done by creating .yml files in the directories!
- Removed sets.yml and tiers.yml
Requires eco 4.1.0 to be installed!
You will have to copy over your sets manually
- Updated to eco 4.0.0
Requires eco 4.0.0 to be installed
- Improved performance from caching all config values
- Removed now-unneeded NMS + Proxy backend (added into eco directly)
Requires eco 3.8.0 to be installed
- Fixed Bow Damage, Trident Damage, and Overall Damage multipliers not working
- Fixed shards/crystal upgrades consuming the entire stack
- Fixed ender elytra having broken recipe
- Added support for unbreakable items
- Added support for item flags on items
- Added support for custom model data
- Added support for changing advancement shard material
- Improved code quality for some effects
- Fixed ecoenchants load order