- Fixed mine_radius_one_deep
- Added 1.21.3 support
- Fixed bug where /enchantinfo and /ecoenchants gui did not update after reloading
- 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 mace target for new configs
- Patched grindstone xp exploit
- 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
- Fixed errors with enchantments from datapacks
- /libreforge points now works with global points, just pass "global" in as the player
- Added safe_fall_distance effect (1.21+)
- Fixed density, breach, and wind burst not having names by default
- 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 1.21 support
- Fixed high-level-bias
- Fixed durability bugs with anvils
- Fixed replenish not working with cocoa beans
Important information for 1.21 users:
- Adding new enchantments will require a relog, otherwise you will be kicked when you see a new enchantment
- Some config changes will require a full server restart, e.g. removing enchantments
- In vanillaenchants.yml, sweeping is now sweeping_edge - make sure to copy over your config if you've customised it.
- 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!)
While it does technically support 1.20.6, EcoEnchants SHOULD NOT be used on production 1.20.6 servers!
Due to internal changes related to Enchantments, EcoEnchants should not be run on 1.20.6 servers. These issues do not exist in 1.21+ which will work fine, but for now you should stay on 1.20.4.
There's an explanation on the discord if you want more technical information:
https://discord.com/channels/452518336627081236/718515639253205043/1237060208614965390
- 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!)
- Fixed issue where enchantments could disappear when serialised by other plugins in recent versions (e.g. Server Inventory Bridges, Shop Plugins)
- 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
- Fixed bug when modifying vanilla enchantments
- Added support for TerraformGenerator custom biomes (Thanks OfTeN!)
- Entities can now use custom enchantments!
- API: Changed the API used for hardcoded enchantments
- 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
- Removed Boss Fortune as a default enchantment (EcoBosses no longer exists, replaced by EcoMobs)
- 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 hardcoded enchantments not working
- Fixed enchantment registration (again)
- Fixed bugs with registration on 1.20.2 and below
- Fixed some placeholders not working in permanent effects in rare circumstances (fixes stimulating enchantment)
- Fixed reload not working
- Fixed several bugs related to holders, dispatchers, nested chains, add_holder-type effects, and holder placeholders (like %level%)
The core EcoEnchants API has been rewritten
This version doesn't bring any major new features for users, however for developers this version is significantly different from all previous versions of EcoEnchants. This was necessary to bring 1.20.3+ support (still highly experimental, but tested as working), which requires NMS registration.
- EcoEnchant is now an interface and does not extend Enchantment. If you want to get the backing enchantment, use EcoEnchant#enchantment
- All EcoEnchant implementations should extend EcoEnchantBase - libreforge-based enchants use LibreforgeEcoEnchant, and hardcoded enchants use HardcodedEcoEnchant.
- The API has been majorly cleaned up and made more kotlin-focused, however Java compatibility has not been lost
- com.willfp.ecoenchants.enchants has been moved to com.willfp.ecoenchants.enchant (without an s)
For users, what changes?
Not much! All of your configs will work exactly as they have before, and this version is just a drop-in replacement. However, if you use a plugin that uses the EcoEnchants API, it will break until it's been updated!
1.20.3+ Support is still highly experimental!
If you have any bugs with these new versions (which is likely), please report them on the discord and we'll sort them as soon as possible.
Also - there's a new option in config that allows for anvils to be used past the 'Too Expensive' limit: anvil.max-repair-cost
- 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
- Fixed not met format (strikethrough for most users) not showing up for some enchant types
- 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
- Fixed strikethrough bug
- 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
- Improved soulbound for Paper users
- 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
- Fixed default targets.yml
- Added better error logging for invalid target slots
- 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
- Improved slots! Enchants can now activate in specific slots like 9, 10, 11, etc, and you can specify a list of slots for the enchant to activate in like this:
slot: "mainhand, 9, 10"
- 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
- 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
- %active_level% placeholder is disabled by default for performance reasons (never used by any default configs), make enable it in config.yml if you use it. (Thanks Kapitowa!)
- 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!)
- API: Added EnchantmentTableGenerateChanceEvent
- 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)
Important!
This update will break your existing rapid and telekinesis enchantments. Make sure to update rapid.yml and telekinesis.yml with the following effects:
rapid.yml:
effects:
- id: rapid_bows
args:
percent_faster: "15 * %level%"
telekinesis.yml:
effects:
- id: telekinesis
- Improved and optimised change_world trigger (Thanks OfTeN!)
- Fixed bleed effect triggering kill multiple times
- Fixed debug messages being shown in the last version
- Fixed %level% not working in past 2 versions (Thanks OfTeN!)
- 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 more options to replenish (Thanks OfTeN!)
- 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
- Added %ecoenchants_<id>_name% placeholder
- Temporarily removed active_level due to a bug
- 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
- Added %active_level% placeholder to get the total active level of an enchantment
- 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 native /enchant command
- Improvements to /ecoenchants gui and /enchantinfo
- 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!
- Fixed description placeholders not being parsed since 2 versions ago
- Removed use of @ConfigUpdater
- 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
- Fixed line wrapping not working properly with long placeholders and string formatting; the config.yml default has been changed to reflect this (you should reduce the line wrapping to 27 for the default look)
- 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 (Fixes Tripleshot enchantment!)
- Fixed elytra_boost_save_chance (Fixes Rocket Saver enchantment!)
- Fixed placeholder injections not working for permanent effects
- Fixed critical bug from last version where %level% didn't work
- 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
- Fixed severe bug where multiple copies of the same enchant wouldn't all activate
- 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
- Changed load order to startup
- Fixed ignite effect errors
- Added item_durability_multiplier effect
- Fixed DefaultArtifactVersion not existing for 1.17 users
- Fixed display bug for those with custom sorting setups
- 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!)
- Fixed sculk bug (Thanks nhanledev!)
- Made damage_item cancellable (Thanks Casper!)
- Removed ProtocolLib as a dependency
- 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 duplicate listener registration
- Improved compatibility with other plugins with Replenish (Thanks OfTeN!)
- Fixed replenish, finally (Thanks OfTeN!)
- Fixed performance bug from last version
- Fixed bug from last version
- Fixed display format bug
- Recoded remove_item effect to use the Price system under the hood
- Fixed bug with autosmelt and block_item_drop
- Fixed enchanted book trading bug
- 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!)
- Fixed custom-gui-slots for /ecoenchants gui (Thanks OfTeN!)
- Fixed alt_click firing with pressure plates (Thanks danieleguglietti!)
- Fixed bug with craft trigger (Thanks OfTeN!)
- Fixed villager trade bug
- 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
- Added hand and offhand slots for targets, hands will still work if you want the enchant to activate in both. target.yml has been updated by default, so you can either regenerate it or manually update your targets
- 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 bug with GUI custom slots (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)
- Fixed permanent effects not updating with placeholder values, fixing 'miscounting' bugs
- Improved attribute effects
- Improved multiplier effects
- Improved 'multi-multiplier' effects (skill_xp_multiplier, pet_xp_multiplier, etc)
- Added set_victim_velocity effect
- Added location_to_cursor mutator (Thanks OfTeN!)
- Changed points to all be global (no more g_ prefix!)
- Added price as a generic argument (See here for more:
https://plugins.auxilor.io/effects/configuring-an-effect#price)
- Moved particles to particle lookup system (See here for more:
https://plugins.auxilor.io/all-plugins/the-particle-lookup-system)
- Added points as valid prices (See here for more:
https://plugins.auxilor.io/all-plugins/prices)
- Fixed shoot effect
- Fixed blast mining, lumberjack, and veinminer (Thanks AlternativeSoap!)
- Fixed bug with vanillaenchants.yml (Thanks OfTeN!)
- Several optimisations and bug fixes
- 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 typo in Poison Ivy
- Recoded the entire plugin from the ground up
- Reworked all included enchantments; EcoEnchants now ships with a completely new set of balanced, fun, and unique enchantments ready for you to use - and you can download more at
https://lrcdb.auxilor.io/ if you want free community-made enchantments! The focus of this update is
quality over quantity. There may be less enchantments included by default (although more available in total thanks to lrcdb), but they play much better than before.
- Enchantments are now all specified in their own .yml files and you can add and remove enchantments just by adding and removing configs! (Almost) all enchantments are now written using libreforge - read more about it here!
https://plugins.auxilor.io/effects/configuring-an-effect
- You can now create your own enchantment types, and set custom limits for each one (rather than it just being 1 or unlimited)
- Added /ecoenchants gui; view all enchantments, or drop in an item to view the enchantments available on it
- Added custom item support to enchantment targets: you can make certain enchantments only applicable to a custom sword you may have (Supports EcoItems, ItemsAdder, Oraxen, and many more!)
- Huge performance improvements across the board
- Fixed
all
known bugs
- Added the ability to specify placeholders in vanilla enchantment descriptions
- Added option to disable display altogether (for custom clients)
- Improved commands
- Added option to make enchantments conflict with all other enchantments
- Many other improvements; the list is so long that I can’t even remember everything
This is a
huge update, the biggest the plugin has ever received. Every aspect of EcoEnchants has been improved in a major way, and I’m excited to see what you guys do with it!
Enchantments from 8.x.x with the same IDs as enchantments you make in 9.x.x will be preserved, don’t worry about enchantments disappearing - EcoEnchants uses real enchantments on items, there’s never going to be any unwanted surprises.
- 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!
- Reduced console spam from plugin prompts
- 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 10+ new enchantments
- Fixed a couple bugs with the enchantment GUI
- Balanced some enchantments
- Fixed several bugs
- Added GUI (/ecoenchants GUI) which lists all enchantments, and you can drop an item into the GUI to view the enchantments that can be added to that item
- Improved /enchantinfo
- Fixed display bug (make sure you're on eco 6.43.5)
- Added everything/all as options in conflicts so you can make the enchantment conflict with all other enchantments
- Added One for All; new special enchantment that conflicts with everything else but buffs damage by 500%
- Several fixes
- Added knock_away effect
- Added pull_to effect
- Added fully_charged filter
- Added over 25 new enchantments
- Added /ecoenchants giverandombook (Thanks OfTeN!)
- Added spawn_entity effect
- Added take_money effect
- Fixed give_money not working with negative amounts
- Removed stimulating enchantment (Required EcoSkills out of the box, confused some users)
- Fixed add_holder_in_radius effect
- Added add_damage effect
- Added new enchantments: Soulbound, Feather Step, Slaughter, Ender Slayer, Excavation, Aura, Slipstream, Fortitude, Soul Storm
- Fixed a couple enchantments
- Minor display optimisation
- Fixed a couple bugs
- API: When registering enchantment listeners, use onInit() rather than the constructor
- Fixed startup error for some users
- Fixed load order bug breaking compatibility with some plugins
- Fixed another hide enchants bug
- Fixed display bug with hide enchants
- API: Renamed EcoEnchantLike#rarity to EcoEnchantLike#enchantmentRarity to fix Java / Kotlin compatibility issue
- 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
- Added several new enchantments and renamed several other enchantments
- Tweaked vanilla enchantment modifications to be much more user-friendly
- Rebalanced several enchantments
- 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)
- Fixed unit repair not working in anvils (e.g. repairing an elytra with phantom membranes)
- Fixed books being enchanted
- 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
- Reworked almost all enchantments, with a brand new set of default enchantments; still incomplete, but much more balanced and fun
- Fixed a long list of bugs and issues
- Added placeholders to vanilla enchantment descriptions
- Fixed book combining bug in anvils
- Added 5 more enchantments (Thanks OfTeN!)
- 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 hide_enchants in display
- Fixed is_night condition not working
- API: Added Iterable<ConfiguredCondition>#isMet(Player) as shorthand for using .all { it.isMet(Player) }
- Improved / fixed the anvil
- Improved essentials integration
- Added no-grindstone option to each type
- Fixed book combining in anvils not working
- API: Added TriggerGroups (e.g. static_<interval>, custom_<id>) so you can programatically generate triggers with a common prefix
- Added permanence_curse
- Added repairing
- Reworked enchantment lookups to be more flexible and support detecting enchantment activation per-slot, and improved enchantment lookup API
- Various minor API improvements
- Fixed dexterous
- Improved display system
- Improved + Nerfed Blast Mining default config
- Added additional description placeholders (see _example.yml)
- Added has_item condition; like wearing_<armor piece>, except it just requires any item to be in the players inventory
- Added more enchantments (Thanks Sedri!)
This is a beta build, and should not be run in production. There's only a handful of enchantments currently (you can add your own, of course), but more will come throughout the betas
If you're running 8.x.x currently,
make sure you do a clean install of EcoEnchants. Delete the /EcoEnchants/ folder in your plugins before anything else.
If you have items with enchantments on them currently, prepare for the existing enchantments to disappear. The enchantments simply aren't there, so they will lose existing EcoEnchants enchantments.
That being said - what's new?
- Completely recoded the entire plugin from the ground up. That's right; it's a completely new plugin now.
- Countless bugs have been fixed
- You can add/remove enchantments by creating/deleting .yml files in the /enchants/ folder (including base enchantments) - no more huge customenchants.yml.
- Create your own enchantment types, and change the types of any enchantment
- Vastly improved config, much simpler and more intuitive and much more powerful
- Item lookup support to targets
- ...and a lot more things; after all, the entire plugin is new.
If you have any extensions installed, they will break
It's a new plugin and a new API, and old ones just aren't compatible.
Before you go and open a ticket to have your old extensions updated, wait for the plugin to be properly released first.
I will not be updating the official extensions until the plugin is fully released (out of beta).
It's been a while in the making, so it's great to be able to get it out!
It might have already been the best before, but now there's no other enchantment plugin that even comes remotely close in any way.
Feels great to bring EcoEnchants back up to the level of my other plugins!
- (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
- Optimized EnchantmentCache#getNameWithLevel, caused performance issues for at least one user's JVM implementation
- 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
- Fixed Replenish not breaking Cactus, Bamboo, and Chorus Flowers (Thanks RebelMythik!)
- Updated dynamite.yml defaults (Thanks Evidentsinger14!)
- Added configurable damage to forcefield
- 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.
- Fixed unsafe velocity with launch (Thanks LoJoSho!)
- 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!)
- Moved loot enchant generation to be done on loot fill rather than on chunk generation (finally)
- 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
- Removed now-unneeded patch since latest eco
- Fixed UUID clashes breaking attribute modifier effects between plugins
- Fixed Swift Sneak breaking on 1.19
- Fixed Electroshock / Deflection / Other shield enchants damaging the player if they shoot themselves
- Fixed grindstoning custom enchants
- 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 deflection harming the player with enderpearls (Thanks Sedri!)
- 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
- Fixed invalid key in default config (Thanks Kaspian!)
- Fixed paper integration always attempting to load
- Fixed depends/softdepends in plugin.yml
- Fixed minimum eco version
- Added is_wearing_set condition for EcoArmor
- Fixed custom enchant tabcompletion
- Removed any use of ItemMeta in the display system, should majorly improve performance
- 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
- Fixed console spam in last version
- Fixed disabled worlds and requirements not working on user-defined custom enchants
- Added support to filter targets for Aiming (Thanks OfTeN!)
- Bumped dependency versions to avoid mismatches with new eco
- Fixed use of deprecated eco methods
- Added victim_as_player mutator (inverse of player_as_victim)
- Added support for the cancel_event effect to many more triggers
- Fixed NPE with grindstone
- 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 support for only showing descriptions on books
- Added has_potion_effect condition
- Added strip_ai effect
- Added disable_antigrief_check to effects
- 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 options under 'advanced' (not all, just those that work with modifying items server-side, eg level clamp, lore conversion) not updating with /ecoenchants reload
- Fixed level-clamp
- Fixed non-repeated effects not working (ie, basically all effects - I screwed up a few versions ago and didn't realize)
- Updated MythicMobs integration to work with 5.0.0+
- Added beacon_effect trigger (Requires Paper)
- Removed requirement to specify action_bar parameter for send_message effect: will default to false
- Updated eco
- Reworked placeholder registration to more stable system (PlayerPlaceholder/PlayerlessPlaceholder instead of the now-deprecated PlaceholderEntry)
- Updated block breaking
- Reduced display priority from HIGH to LOW (general shift to reduce priorities for a new small plugin that should have highest priority)
- 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
- Improved anticheat support for Buckshot, Succession, Tripleshot, and Pentashot
- Custom heads in beheading.yml can now specify a name (fixes eco's head bug)
- Fixed many effects/conditions/etc not translating placeholders correctly in expressions
- Added elytra_boost trigger
- Added multiply_velocity effect
- Fixed custom heads in Beheading not working
- Added option to choose delay between each arrow for Succession
- Massively improved performance of user-made custom enchants (moved cache over to caffeine)
- Removed advanced.rehandle-breaking due to it not being needed anymore (since many performance improvements in eco have rendered it unnecessary), and because it caused bugs when enabled.
- Fixed thrive having the same bug as preservation did a few versions ago
- Fixed anticheat support with drill effect
- Fixed usage of deprecated APIs in eco
- Added support for 1.18.2
- Fixed instant regen bug with prosperity
- Added block_commands effect
- Added placeholder support to run_command and run_player_command effects
- Added value-placeholder option for levels in customenchants.yml
- Fixed enchants from customenchants.yml not being able to be Artifacts or Spells
- Fixed %value% placeholder not working for Drill
- Added optional whitelist argument for drill and mine_radius effect
- Added config options for potion effects: icons, ambient, and particles
- Fixed rare crash with naturally generated items
- Added support for EconomyShopGUI in the sell_multiplier effect
- Dropped support for 1.16.5
- 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
- Code migrations to eco 6.25.0 (was still using 6.20.0); removed deprecated references and fixed several codestyle issues - removed uses of for-removal requirements system and reimplemented it directly into EcoEnchants
- Explicitly specified ecoenchants:descriptions_enabled key to be for players only
- 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!)
- Fixed
potential (unconfirmed, just a hunch) duplication glitch with telekinesis
- 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 issues with custom enchants and registration (Thanks OfTeN for fixing CMI!)
- Removed very old legacy display code, improves performance
- Fixed rare weird null PersistentDataContainer bug
- Fixed grindstone dupe xp bug (Thanks OfTeN!)
- Added in persistent data storage (MySQL, data.yml)
- Added /ecoenchants toggledescriptions to toggle descriptions (permission: ecoenchants.command.toggledescriptions)
- Added in kotlin / delomboked main plugin class - complete rewrite in kotlin down the line at some point but it's a long way off
- Various other changes
Thanks OfTeN for some of the toggle description changes and for the idea!
- Fixed thor striking the attacker
- Removed unneeded RepairCost NMS proxy; superseded by eco FastItemStack. Should have been done a long time ago
- Improved /ecoenchants locale download
- Moved display ordering to not call getItemMeta unless the item is a target
- Fixed revert not following isRequireTarget
- Made a new icon and added it to the plugin
very cool
- Fixed tornado anticheat support (Thanks OfTeN!)
- Fixed bug with Transfuse (Thanks Maxmilite!)
- Removed redundant classes that have since been merged into eco
Requires eco 6.10.0+ to be installed
Read the changelog for eco 6.10.0 to understand why you need it for your server!
This is a massive performance improvement, fixing the largest source of lag. EcoEnchants (and all my other plugins) should now run as fast as intended (very).
- Fixed grindstone xp dupe bug (Thanks kireevm!)
- Fixed hard-disable and reaper bugs (Thanks kireevm!)
- Removed {} formatting style. Use MiniMessage syntax if you want to have gradient colors (<gradient:#start:#end>)
- Added option to define extra enchantable items (eg player heads, carrot on a stick) for enchanting tables (separate from target system, that was already possible)
- When grindstoning ecoenchants enchantments, experience will now be dropped
- Fixed anvils not working since last update
- Fixed anvil conflict (Thanks LeAnhTuan0810!)
- Updated to eco 6.9.0 and began using MiniMessage formatting
- Fixed bug where enchantments with vanilla conflicts were applied to villagers
- Improved changes from previous update (Thanks Akiranya!)
- Fixed potential memory leak (thanks Akiranya!)
- Fixed a rare and infuriating bug with a terrible workaround. Check the source code if you're interested.
- Improved artifacts to support 1.17 blocks by default and added new artifact rarity (Thanks ryzech!)
- Added max-range option to buckshot (Thanks chyzman!)
- Removed debug message (Thanks OfTeN!)
- Added enchantment Dousing (Thanks samerbamerborool!)
- Added type option to /ecoenchants giverandombook (Thanks OfTeN!)
- Updated to eco 6.8.1 resource checker ID
- Added Paper API support to EcoEnchants
The extra methods added to the Enchantment object by Paper will now work with EcoEnchants. This, however, has led to a small issue / required change to the API: EcoEnchants#getRarity has been renamed to EcoEnchants#getEnchantmentRarity as paper has made its own method Enchantment#getRarity. Plugins like EcoEnchantsGUI will have to update to support this change, which is annoying, but at least it should work perfectly with the Paper API.
EcoEnchants should still work without Paper, if for whatever reason you still run base spigot on your server.
- Updated EssentialsX integration to use the Enchantments registration API rather than reflection: this API was introduced many months ago and should be present on the version that you're running.
- Updated to eco 6.8.0 requirement system
- Artifacts for elytras and projectiles now run asynchronously
- Added silent option to zeus, thor, and electroshock
Thanks OfTeN for the changes!
- Moved melee artifact math to new thread
- Added disable-on-players option to Razor, Bladed, and Force (Thanks Often!)
- Improved soulbound and prevented necrotic working on mobs from the summoning extension (Thanks Akiranya!)
- Fixed rapid triggering fast-bow on some anticheats
- Added 'none' option to remove all vanilla enchant conflicts
- Fixed instantaneous placeholder
- Fixed NPE
- Added %rarity% placeholder to /enchantinfo
Thank you bananasmoothii for the changes!
- Added new screenshots and extra features of EcoEnchants
- Fixed replenish on 1.16.5
- Display optimisations via FastItemStack
- Fixed unbreaking not being taken into account on Blast Mining and Lumberjack
- Optimized Drill
- Reverted 8.10.3 display changes
- Updated to eco 6.6.0
- Optimized display
- Fixed cache clear task being cancelled
- Requirements now update every 15 seconds instead of every 3 minutes
- Fixed replenish working on glowberries
- Hopefully fixed display bug
- Added magnetic disable-while-sneaking option
Added 25% off message to title
- Fixed forcefield attacking endermites and named mobs
- Fixed proximity distance bug
- Fixed blast mining and lumberjack taking durability damage in creative mode
- Nerfed default razor config
- Removed magma walker due to bad performance
- Added hard-cap-clamp
- Internal changes
- You can't see this message
- Fixed negative durability on blast mining and lumberjack
- Fixed descriptions on above max level ecoenchants enchantments
- Fixed blast mining durability bug
- Fixed unbreakable bug with Blast Mining and Lumberjack
- Fixed long-standing anvil duplication bug
- Added workaround to 1.17 packet changes that cause bad Blast Mining and Lumberjack performance
- Fixed problem with anvils + reforges
- Fixed default spell gradient being too extreme
- Added option to only reformat the numbers of above-max-level enchantments
- Reverted legacy changes
- Added support for enchantments to be below other lore
- Added support for formatting above max level enchantments differently
- Fixed stack overflow error with above-max-level vanilla enchantment descriptions
- Buffed serrated and bladed to make tridents more viable
- Removed aversion due to awful performance
- Added spell flags
- Updated to eco 6.3.0
- Optimized display via FastItemStack
- Fixed NPE with /ecoenchants locale download
- Added %value% placeholders for all curses and Abattoir, Abrasion, Aquatic, Arachnid, Atmospheric, Aerial, and Backstab
- Added %value% placeholder into descriptions to reflect the power of that enchantment at its given level
This only supports chance-based enchantments currently, but will support all enchantments soon
- Fixed ConcurrentMod exception
- Added particle amount option to villagers
- Added particle-amount option to enchanting-table.notify-on-special
- Added particles and sounds to enchanting-table.notify-on-special
- Fixed config value placeholders using . instead of _
- Added support for gradients in type colors - add {} in the color to have the enchantment name swapped in. Check new default special color for an example - regenerate config to get it.
- Added particles when a villager unlocks a special enchantment trade (togglable in config)
- Renamed remove-invalid to remove-disabled
- Added option to show description at bottom rather than under each enchantments
- Added option to remove disabled enchantments from items server-side
- Many internal changes
- Internal optimisations
- Code cleanup
- Backend changes
- Added ability to change the conflicts of vanilla enchantments
- Added deepslate ores to vein.yml
- Fixed instantaneous breaking unbreakable blocks
- Added cooldown messages in actionbar option
- Added flags: [] to all configs under general-config
- Added crossbow and trident to left click items
- Fixed spawn-heart-particles not working in vitalize
- 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
- /ecoenchants locale export now doesn't use formatted strings
- Added option to have heart particles on Vitalize
- Removed barrier artifact
- /ecoenchants locale download now loads into configs immediately rather than waiting for reload to move from lang.yml
- Fixed /ecoenchants randomenchant permissions
- Added option for spells to not activate while sneaking
- Fixed anvil bug since 7.12.0
- Added locale exporting/downloading:
/ecoenchants locale export
/ecoenchants locale download <token>
More information can be found in the wiki
- Internal Changes: Deprecated EcoEnchants.getFromEnchantment, use typecasts instead.
The wiki has been updated to include more Anticheat/Antigrief plugins, and to include the new commands.
- Added Rain and Slime artifacts
- Added remove-illegal to config to remove enchantments that shouldn't be present on the item
- Added delete-item option to level-clamp
- Fixed /ecoenchants <invalid> not telling the user anything
- Removed unused command registrations in plugin.yml
- Reworked commands:
Base command: /ecoenchants
Commands are now this:
/ecoenchants reload
/ecoenchants giverandombook
/ecoenchants randomenchant
/ecoenchants debug
/enchantinfo
This update requires eco 5.7.0
- Fixed anticheat compatibility with Spring and Charge
- Fixed natural loot generated items having above hard cap amount of enchantments
- Fixed level-clamp removing the enchantment rather than setting it to the max level
New icon uses a straight diagonal line rather than a curve
- Fixed overridden vanilla enchant conflict behaviour being incorrect when checking if the enchantment conflicts with an EcoEnchant
Added these to spell blacklist:
Material.LECTERN,
Material.FLETCHING_TABLE,
Material.SMITHING_TABLE,
Material.STONECUTTER,
Material.SMOKER,
Material.BLAST_FURNACE,
Material.BREWING_STAND,
Material.DISPENSER,
Material.DROPPER
- Added more blacklisted clickable blocks to spell
- EcoEnchant#isTreasure API call (exists for parity with Enchantment class) now returns true if the enchantment type is Special. Should fix potential conflicts with other plugins giving special enchantments when they shouldn't (eg custom fishing loot)
- Fixed bug with /ecodebug
- Reverted soulbound changes
The 25% sale is now over!
- Code quality improvements
- Fixed enchanting table bug
- Updated to use more Java 16 features internally
25% OFF FLASH SALE UNTIL JUNE 20!
- Added 1.17 artifacts:
- Copper Artifact
- Glow Artifact
- Light Artifact
- Skulk Artifact
- Spark Artifact
- Spore Artifact
- Wax Artifact
- Added copper ore to mining related enchantments configs by default
- 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 2 minor bugs (thanks kireevm!)
- Fixed Blast Mining / Drill breaking end portals when hardness-check was disabled
- Fixed improved vanilla conflictsWith logic not working on 1.16.0-1.16.3
- Fixed Cleave/Carve Stack Overflow
- Added more blacklisted blocks for spell activation on click
- Added rarity option to /giverandombook
- Removed redundant check in display (should slightly improve display performance)
- Fixed use-numbers-above not working on enchanted books
- Optimised display more
Thanks Scleri for the changes!
- If vanillaenchants.yml is enabled, then vanilla enchantments will use improved conflictsWith behaviour instead of needing to check both ways.
- Fixed /randomenchant giving disabled enchantments
- Disabled level clamp by default
- Added level clamp option:
Helps reverse players who have illegal above-max-level enchantments.
When holding an item, any enchantments above their max level will be set to the max level in order to prevent illegal items.
Players with ecoenchants.bypasslevelclamp permission will be ignored.
This may impact performance.
- Hopefully fixed hard cap bypass
- Added on-books option to soulbound
- Fixed ConcurrentModificationException in forcefield
- Removed lingering unused code
- Allowed player_head to be enchanted in a table if added as a target
- Enabled dual registration by default
- Added advanced dual registration option to fix any serialization bugs with inventory plugins (Parity with pre-7.3.0 versions)
- Added option to disable re-registering vanilla enchantments
- Added basic support for changing the max levels of vanilla enchantments.
Currently, this is very limited and only supports the anvil as obtaining mechanics for vanilla enchantments are still handled by vanilla minecraft. Because of this, it isn't recommended to lower the max level as they will still be obtainable at a vanilla level. I plan on adding vanilla support for this in the future.
- (API) EcoEnchant#getName now functions similarly to Enchantment#getName: It is the key in uppercase (eg ZEUS, VAMPIRE_ASPECT) This will be useful for players running plugins that use enchantment names instead of keys, as previously the names would change when changed in config. To get the display name, use EcoEnchant#getDisplayName now.
- Fixed NPE from ItemConversions when plugin hasn't finished loading
- Fixed Sycophant healing the attacker
- Fixed all items losing HideFlags in packets (Server-Side items should
not be affected by this, everything should fix itself)
- Fixed HideEnchants/HideFlags
- Cleaned up display
Requires eco 5.3.0 to be installed
- Shows more common dependencies
- Showed more obtaining methods
- Fixed grindstones giving experience when no enchantments were removed
- Fixed /giverandombook giving out disabled enchantments
- Added advanced hard-disable option:
Fixes potential problems with other plugins where the enchantments are still present when disabled.
Enabling this prevents the enchantments from being registered with the server at all when disabled.
There may be some unknown problems with this, but will fix bugs with plugins such as Slimefun.
Hard disabled enchantments will not update on /ecoreload. You will have to restart your server after disabling and re-enabling enchantments with this option enabled.
- Optimised shield enchant checks
- Fixed rebounding launching your opponent in the opposite direction
- Nerfed rebounding (set velocity multiplier to 1.07 instead of 1.2, it's far too strong otherwise)
- Permission ecoenchants.cooldowntime.<multiplier> now accepts any numeric value as a percentage multiplier (eg 25 will make it 4x faster, 10 will make it 8x faster). You can also use a number >100 to increase the cooldown time
- Fixed /giverandombook not working
- Fixed many bow enchantments not working (eg Force)
- Fixed enchantment configs not being updated on /ecoreload
- Fixed extensions breaking due to config refactor
- Added Rebounding enchantment
- Reduced minimum spell cooldown (ie if you're spamming it) from 5 to 2 ticks
- Removed unused 1.15 code
- Fixed players in spectator mode with a spell item equipped being able to use it
- Updated to eco 5.0.0
Changed major version number for semantic versioning
API Changes:
- Spell activation now returns a boolean
- Cleaned up spells in general
- Removed many redundant placeholders
- Added %ecoenchants_<spell>_cooldown% placeholder
- Updated artifacts to use faster trig functions
- Updated to eco 4.3.0 config system
Requires eco 4.3.0+ to be installed
- Added antigrief check to aiming
- Added /randomenchant <player> to randomly enchant a players item
- Added checker for invalid targets
- Fixed missile damaging the shooter
- Added smithing table check for spells on 1.16
- Fixed allow-on-npcs not working
- Moved force-dropqueue into advanced options
- Added allow-on-npc option
- Optimized artifact checks
- conflictsWith now checks two ways
- Added chance option to blast mining (optional)
- Added extra check to loot populator
- Fixed Incandescence working from thorns damage
- Fixed boss hunter not working with ecobosses
- Removed unneeded options from lang.yml
- Fixed SpellCancellationInterrupt not cancelling the spell
(API) Added SpellCancellationInterrupt to cancel a spell
- Added SpellActivateEvent so that spell activation can be cancelled
- Recoded spell system to be less of a complete nightmare
- Added force option to hide fixer (last-ditch option)
- Added option to display on non-target items
- Improved lore readability in /ecodebug
- Fixed Butchering, Abattoir, and Slaughter working on players (somehow)
- Fixed combining items of different amounts in anvil
- Fixed Thrive and Prosperity for players wearing armor from previous versions
- Fixed casting the wrong variable breaking everything
- Code cleanup
- Reworked Thrive and Prosperity to use AttributeModifiers
- Made marksman work on all projectiles (internal change)
- Added option for soulbound to be removed after death
- Added option to change number of extra arrows on pentashot (and added levelling support to it)
- Added allow-not-fully-charged to life steal and leeching
- Added Reaper enchantment to have a chance to prevent your opponents soulbound from working
- Added hide fixer to forcefully remove itemflags left from older, broken versions of ecoenchants
- Added aggressive option to lore getter to convert all items in chests/shulkers/etc
- Changed /ecodebug to only send the held item - /ecodebug full sends full output now
- Fixed rare crash in /ecodebug due to my sketchy logger
- Fixed enchantments being generated in loot when disabled
- Fixed introversion applying to everything
but players
- Removed several unused areas of code
- Re-added support for legacy enchantment lore
- Fixed sweep artifact not being registered
- Fixed display on villager traded items (Requires eco 4.2.1 to work properly)
- Added nautilus, villager, anger, and sweep artifacts
- Fixed HideEnchants not working with "new" eco 4.0.0 display system
Requires eco 4.2.0
- Fixed Infernal Touch container check
- Fixed shockwave ignoring regions
- Removed legacy lore lines from before eco 4.0.0: should fix duplicate lore lines
EcoEnchants is now £7.95
All extensions have been made far cheaper - many are now half the price they were before.
- Fixed Telekinesis NPE for strange missing ItemMeta bug
- Fixed lore getter on multi-word enchantments with max level 1 (eg Blast Mining)
- Improved splash
- Updated to eco 4.0.0
Requires eco 4.0.0 to be installed
- Cached all config values
- Removed now-redundant nms interfaces
Requires eco 3.8.0 to be installed
- Fixed Incandescence taking huge durability and triggering in pvp areas
- Added console message for invalid rarities, helps not looking through hundreds of files
- Fixed error stemming from mcMMO when drill was used to try to break blocks above world height (specific, I know)
- Updated to more stable config system (Requires eco 3.6.0)
- Improved fortune calculation in Infernal Touch (thanks Markster!)
- /randomenchant now obeys hard cap. This can be changed with the ecoenchants.randomenchant.bypasshardcap permission
- New enchantments: Introversion, Aversion
- Added /randomenchant to apply a random enchantment to an item
- Fixed dynamite triggering on air click
- Fixed deflection + cleave/carve stackoverflow
- Fixed Magma Artifact config
- Added double helix option to melee damage artifacts
- Potential fix for HidePotionEffects bug
- Fixed lingering metadata on items
Requires eco 3.4.0 to prevent lore duplication
- Added support for anvil color: permission ecoenchants.anvil.color
- Added support for colorless, case insensitive lookups for /enchantinfo
- Added passive-aggressive message for developers who use
EnchantmentWrapper, a minefield of stackoverflows
- Added support for mcMMO double drops in telekinesis
- This update requires eco 3.3.0 to be installed
- Fixed ArrayIndexOutOfBoundsException
Changes:
This is a beta build and should not be ran on a production server. There will be bugs.
Changes:
- Reworked Entire target system
- Fixed various bugs
- Optimised various areas
Changes:
- Enabled use-orb by default for Telekinesis
- Fixed Tectonic class-cast
- Fixed Forcefield
Changes:
- Tweaked Default config values and max levels
- This will only affect newly generated configs. Regenerate your configs for this to take effect.
Changes:
- New Enchantment Impact
- New Enchantment Paralyze
- New Enchantment Identify
- New Enchantment Infuriate
- New Enchantment Atmospheric
- New Enchantment Revenant
- New Enchantment Insecticide
- New Enchantment Slaughter
- New Enchantment Settle
- New Enchantment Phantasm
- New Enchantment Arachnid
- New Enchantment Pacify
- New Enchantment Abattoir
- New Enchantment Disable
- New Enchantment Hellish
- New Enchantment Void Affinity
- New Enchantment Cubism
- New Enchantment Quadrilateralism
- New Enchantment Lesion
- New Enchantment Conclude
- New Enchantment Block Breather
- New Enchantment Voltage
- New Enchantment Transfuse
- New Enchantment Curse of Inaccuracy
- Fixed Several miscellaneous bugs
To view what these enchantments do, read the documentation: https://ecoenchants.willfp.com/enchantments/all-enchantments
Changes:
- Fixed Supercritical
- Fixed Enchanting tables giving disabled enchantments
Changes
- Reworked enchantment detection system
Changes:
- New Enchantment Force
- New Enchantment End Infusion
- New Enchantment Lime Artifact
- New Enchantment Diurnal
- New Enchantment Marking
- New Enchantment Corrosive
- New Enchantment Wound
- New Enchantment Finality
- New Enchantment Blind
- New Enchantment Sickening
- New Enchantment Defender
- New Enchantment Netheric
- New Enchantment Enderism
- New Enchantment Rage
Changes:
- Fixed Ice Shot
- Fixed Artifact not including bows and crossbows in target
- Fixed Villagers not displaying enchantments on books
- Removed Direct AdvancedEnchantments support (It should work out of the box now)
- Changed Note particle colors to be random
- Changed Main class to EcoEnchantsPlugin
Changes:
- Added support for Essentials tabcompletion
- Refactored NMS Modules
- Refactored Integrations
Changes:
- Fixed Lore duplication in creative mode
- Reworked /ecoskip
- Open-sourced EcoEnchants
Changes:
IMPORTANT:
From this version onwards, ProtocolLib is required to run EcoEnchants. The latest version of ProtocolLib can be found here.
Changes:
- Added Webhook to allow for remote debugging
Changes:
- Lightened Verification
- Fixed Extension loading
Changes:
- Fixed Chinese users not being able to load the plugin
Changes:
- Fixed Disappear not being registered
Changes:
- Added support for legacy constructor to aid backwards compatibility
Changes:
- Added Buckshot - Shoots multiple arrows spread out
- Added Diverse - Increases damage dealt against players holding swords
- Added Life Steal - Heals a large portion of damage dealt (SPECIAL)
- Nerfed Leeching
Changes:
- Fixed Stack Overflow from Cleave/Carve
Changes:
- Added Venom - Chance of withering your opponent
- Added Cranial - Increases damage on headshots
- Added Aquatic - Trident deals additional damage when shot from water
- Improved User tracking
Changes:
- Fixed Curse of Decay creating exception
Changes:
- Added Levitate - Apply levitation to mobs hit by arrows
- Added Curse of Breaklessness - Chance to prevent block breaking
- Added Curse of Decay - Opposite of repairing
- Added Curse of Misfortune - Chance for blocks to not drop items
- Fixed Anvils allowing incorrect combination if clicking on item extremely quickly
Changed Cleave/Carve to only work on axes
Fixed Elytra not being included in Target.Applicable.ALL
Fixed Fury and Curse of Calling infinite vector
Changed Volatile to be a special enchantment
Added Toxic - Chance to apply poison to your opponent
Added Water Affinity - Increases damage dealt when in water
Added Forcefield - Damages all nearby monsters
Added Sycophant - Heals a portion of damage blocked
Added Chopless - Reduces damage dealt by axes
Added Green Thumb - Left clicking dirt turns it to grass
Added Spiked - Hooking onto an entity will damage it
Added Harpoon - Hooking onto an entity will heavily damage it (SPECIAL)
Added Reel - Pulls entites towards you
Added Forcefield - Damages all nearby monsters
Added Shot Assist - Deal more damage with arrows while wearing
Added Frozen - Chance to give your attacker slowness
Added Disappear - Go invisible if damaged on low health
Added Curse of Harmlessness - Chance for attacks to do nothing
Added Fury - Chance of angering nearby monsters towards your opponent
Fixed Soulbound not working with keep inventory
Added Instantaneous - Chance of instantly breaking blocks
Added Freerunner - Chance to ignore fall damage
Added Bolt - Chance of striking powerful lightning on your opponent
Added Ignite - Chance to light hit block on fire
Added Cleave - Damage all entities around attacked entity
Added Carve - Heavily damage all entities around attacked entity
Added Dullness - Chance of giving your opponent weakness
Fixed Abrasion damaging leggings twice
Changed Target into enum and constructor now accepts array of multiple targets
New Enchantments:
- Shockwave: Damages entities that arrows fly near
- Volatile: Explosive sword attacks
Fixes:
- Fixed instability fetching values from v1.7.2 config system
Reverted changes from 4.1.0-alpha3
Added support for the keep-inventory flag from WG Extra Flags
Added support for the following Anticheats:
- NoCheatPlus
- AAC
- Matrix
- Spartan
This is an alpha version, and it may not be stable.
New Enchantments:
- Aerial: Arrows deal more damage while player is in air
- Famine: Give opponent hunger
- Annihilate: Extreme knockback (SPECIAL)
- Radiance: Glowing around arrow land
- Horde: Deal more damage the more mobs that are nearby
- Vein: Veinminer
- Ice Shot: Freezes enemies hit by arrows
- Puncture: Tridents deal more damage to shelled mobs
Other Changes:
- Goliath now scales based on attacker's maximum health
Added support for mending with telekinesis
Reverted changes from 4.0.21 due to several issues
Tweaked internal enchantment updating
Fixed grindstones giving 100+ levels
Added support for vanilla /enchant and /give
Fixed items losing their enchantments (again)
Optimizations to repairing
Optimizations to conversion task
Disabling enchantment now unregisters listener
Telekinesis can now ignore players
Fixed items losing their enchantments
Wisdom/Intellect are now available on fishing rods
Added levels and a cap for lumberjack
Fixed aiming targeting players in creative/spectator
Fixed Drill
Fixed XP duplication with telekinesis
Added internal userID tracking
Fixed incandescence igniting player on the same tick as opponent ignites
Fixed potential bug with NPC's and Splash
Fixed Grapple, Hook, and Tornado conflicting with Citizens
Added full support for disabling enchantments
Information on how to do this can be found in the documentation.
Fixed malformed necrotic.yml
Boss Hunter now works on Elder Guardians
Fixed rare exception in display task