
AuraSkills 2.1.2
The ultra-versatile RPG skills plugin
New Features
- Add roman and int placeholders for abilities (thanks Erik)
- `%auraskills_[ability]_roman%` - Gets ability level as a Roman numeral
- `%auraskills_[ability]_value_int%` - Gets ability value rounded to an integer
- `%auraskills_[ability]_value_2_int%` - Gets secondary ability value rounded to an integer if it exists
- `%auraskills_mability_[ability]_roman%` - Gets mana ability level as a Roman numeral
- `%auraskills_mability_[ability]_value_int%` - Gets mana ability value rounded to an integer
- Add correct_over_max_level option to main config to prevent skill levels being over max level on join (false by default)
- Add shape option to menu fill items
- Available values are border, top_row, bottom_row, left_column, and right_column
Changes
- Revert unnecessary AdvancedEnchantments event ignores, fixing compatibility
- Update German and Chinese Simplified messages
Bug Fixes
- Fix split slimes and magma cubes not applying spawner_multiplier
- Fix double reloading on addStatModifier (thanks Erik)
- This fixes extra health resets with plugins like MMOItems
- Fix Charged Shot not applying damage bonus
- Fix NoSuchFieldError on older versions when using mana abilities
- Fix RoseStacker spawner mobs not working with spawner_multiplier
- Fix armor add command not accepting decimal values
- Fix level progression total page count sometimes being wrong
- Fix food level decreasing at full health with use_custom_delay true
New Features
- Add auraskills.jobs.block.[skill] permission to prevent skills from being selected as jobs if set to true (ex: auraskills.jobs.block.mining)
- Add `%auraskils_jobs_active_[skill]%` placeholder that returns true/false whether the job is active (ex: %auraskills_jobs_active_farming%)
Changes
- Support property placeholders in menu placeholder conditions, such as {skill} for the skill name in certain menus
- Slightly tweaked the jobs item lore style in the level_progression menu
Bug Fixes
- Fix grindstone experience exploit
- Fix NoSuchMethodError on older versions
- Add jobs system
- Jobs is an optional feature that allows players to select skills as jobs to earn money while gaining XP.
- To use jobs, the jobs.enabled option must be set to true in config.yml
- Income for all XP sources is configured under jobs.income
- If use_xp is true, sources will give a multiple of the XP gained based on default.income_per_xp
- If use_expression is true, sources will give XP based on the result of default.expression
- The available variables include xp, base_xp (value without multipliers), level (skill level), power, and skill_average
- If use_final_xp is set to false, the calculation for income_per_xp will exclude all XP multipliers
- Job selection is configured under jobs.selection
- Players select a skill as a job using a new item in the level progression menu of a skill (gold_ingot by default)
- If require_selection is set to false, players will gain income for all skills and selection will be hidden
- The default_job_limit is the maximum number of skills that can be selected as jobs at the same time
- The limit can be changed per-player using the auraskills.jobs.limit.[number] permission node (ex: auraskills.jobs.limit.4)
- The disable_unselected_xp option will block gaining XP in all skills that are not active jobs if set to true
- Income can also be configured per-source inside the sources files
- Keys can be added to both the default section or an individual source
- The following keys can be added to a source:
- income_per_xp - The income to give per XP gained, works the same as the value in config.yml
- income - A fixed decimal value for the money to give
- income_expression - An expression to calculate the income, works the same as the expression in config.yml
- Menu files will automatically update to add the new items and components to show job selection
- However, you must manually add a new line `- component: skill_job_active` to the lore of the skill template in menus/skills.yml under `- component: max_level`
- Everything will still work if this line isn't manually added, players just won't see the "Active Job" displayed in the skills menu
- New jobs commands:
- `/skills jobs add <job> [user]` - Joins a specific job for yourself or a different player
- `/skills jobs remove <job> [user]` - Quits a specific job for yourself or a different player
- `/skills jobs removeall [user]` - Quits all jobs for yourself or a different player
- When user is not specified, these commands use the auraskills.command.jobs permission (op by default)
- To specify a different user, the sender must also have the auraskills.command.jobs.other permission (op by default)
- New jobs PlaceholderAPI placeholders:
- `%auraskills_jobs_list%` - Lists active jobs in a comma separated list of default skill names in all lowercase
- `%auraskills_jobs_list_formatted%` - Lists active jobs in a comma separated list with the skill display name of the config default_language
- `%auraskills_jobs_count%` - Gets the number of jobs the player currently has active
- `%auraskills_jobs_limit%` - Gets the maximum number of jobs the player is allowed to have active at the same time
- Add trait commands for adding trait modifiers directly to players
- `/skills trait add <player> <trait> <name> <value> [silent] [stack]` - Adds a trait modifier to a player with the given name
- `/skills trait remove <player> <name> [silent]` - Removes a trait modifier from a player with the given name
- `/skills trait list [player] [trait]` - Lists trait modifiers of a player
- `/skills trait removeall [player] [trait] [silent]` - Removes all trait modifiers from a player
- The functionality of these commands is almost identical to the modifier commands for stat modifiers
- These commands use the existing auraskills.command.modifier permission
- Add item and armor trait commands for adding trait modifiers to items
- `/skills item|armor trait add <trait> <value> [lore]` - Adds a trait modifier to the held item, with lore by default
- `/skills item|armor trait remove <trait>` - Removes a trait modifier from the item held
- `/skills item|armor trait list` - Lists all trait modifiers on the item held
- `/skills item|armor trait removeall` - Removes all trait modifiers from the item held
- Where item|armor is shown above, only item or armor should be specified, not both
- These commands use the existing auraskills.command.item.modifier or auraskills.command.armor.modifier permissions
- Like stat modifiers, trait modifiers use PDC and do not depend on lore to function
- Add item ignore commands to ignore interactions on specific items
- This allows you to disable mana abilities on custom items to allow separate right-click functionality
- `/skills item ignore add` - Adds the tag that ignores the held item from mana ability interactions
- `/skills item ignore remove` - Removes the tag that ignores the held item from mana ability interactions
- Add format_title option to menus to allow disabling color and MiniMessage parsing of menu titles
- To use, manually add it to the options section of a menu file (create it if it doesn't exist)
- Add PlaceholderAPI support to level up chat message
- Add `%auraskills_xp_bar_[skill]%` placeholder that gets the XP progress bar shown in the menus
- Optimize menus to significantly improve performance for idle open menus
- Change the default skills and level_progression menu files to fully use block style YAML syntax
- The default contexts materials of the skill template in the level_progression menu now match the materials in the skills menu
- Add symbol placeholder support to item modifier lore message
- Automatic backups will now be skipped if the server has too many users (uses new max_users config option)
- Add ensure_scaling_disabled option to hp trait in stats.yml to disable health scaling if the trait is disabled (true by default)
- Update Japanese, Polish, and Chinese Simplified messages
- Fix Bleed and Absorption particle errors on 1.20.5+
- Fix mana add command always setting mana to max
- Fix hex colors in ability messages not working
- Fix added contexts sections breaking some level_progression templates
- Fix hp action_bar_scaling not applying to menus and chat
- Fix multiplier permissions set to false not being ignored
- Fix Disenchanter not working when shift clicking to remove an item with a different item on the cursor
- Fix hide_attributes flag not working in 1.20.5+
- Fix Alchemist duration lore stacking on the same potion
- Add job methods to SkillsUser
- Add Trait#getMenuDisplay to get the trait value formatted as shown in the stats menu
- Fix MenuManager#buildMenu not working when called multiple times to extend the same menu
New Features
- Add menu conditions system
- Conditions on items are used to add requirements for viewing or clicking an item
- View conditions will hide the item if not all conditions are met
- View conditions are added with a `view_conditions` key under an item
- Click conditions will prevent click actions or built-in click behavior from running if not all conditions are met
- Click conditions are added using the `on_click_conditions` key, or for a specific button trigger like `on_right_click_conditions`
- The syntax for any condition key is a map list of conditions that all must be met. This is similar to the click actions syntax.
- Permission condition type:
- Permission conditions check if the player has a permission
- Uses `type: permission` (optional due to auto type detection)
- Must specify a `permission` key for the permission node to check
- An optional boolean `value` can be specified (defaults to true)
- Placeholder condition type:
- Placeholder conditions compare two values that can contain PlaceholderAPI placeholders
- Uses `type: placeholder` (optional due to auto type detection)
- Must specify a `placeholder` string key as the left side value to be compared
- Must specify a `value` string key as the right side value to be compared
- An optional `compare` string can be specified for the type of comparison operation to perform (defaults to equals)
- `equals` checks for numerical or string equality
- `greater_than` checks if `placeholder` is strictly greater than `value`
- `greater_than_or_equals` checks if `placeholder` is greater than or equal to `value`
- `less_than` checks if `placeholder` is strictly less than `value`
- `less_than_or_equals` checks if `placeholder` is less than or equal to `value`
- Any `compare` other than `equals` requires both `placeholder` and `value` to be evaluated to doubles
- Add menu `on_open` and `on_close` actions for running actions when a menu is opened or closed
- These are map lists of actions defined directly in the top-level of the menu file
- `on_close` will run even if the player switches to a different menu immediately
- Add sound menu action
- Plays a sound for a player
- Uses `type: sound` (optional due to auto type detection)
- Must specify a `sound` string key as the sound type to player. This uses the vanilla names matching the /playsound command.
- An optional `category` string can be specified (defaults to master)
- An optional `volume` number can be specified (defaults to 1)
- An optional `pitch` number can be specified (defaults to 1)
- Add syntax to duplicate default menu items with placeholders
- Creating a new item with a name in the format `item_name(1)` will replace all the display_name and lore placeholders exactly like the default `item_name`.
- Any number can be used within the parenthesis
- This is useful for duplicating default items across multiple slots with different materials and custom_model_data for resource packs
- Add syntax for duplicating the exact same menu item easily across multiple slots
- Specify a list of slot values with the `pos` key instead of a single value
- Click action types will now be automatically detected, so specifying a `type` is no longer required
- Fix duplicate source updating for legacy preset
- Fix command actions not working without PlaceholderAPI
- Minecraft 1.20.5 and 1.20.6 support
- Add hide_tooltip option to items in menus/loot to completely hide the tooltip
- Tooltips are hidden automatically for menu fill items
- Only works on 1.20.5+
- Various optimizations for servers with high player counts
- Optimize BlockLeveler with cache for sources
- Optimize multiplier permission lookup with cache using LuckPerms events
- Optimize Treecapitator
- Treecapitator now gives XP for all blocks broken by default
- This can be disabled in mana_abilities.yml by setting give_xp to false
- Update Korean messages
- Fix hex colors in skill names not working fully in menus
- Fix mana ability is not loaded error
- Fix Grappler ignoring region protection
- Slate is now relocated in the AuraSkills jar, so if you use dev.aurelium.slate packages with the api, you should relocate them to dev.aurelium.auraskills.slate using the Gradle Shadow or Maven Shade plugin
- Add MainConfig#getStartLevel and getHighestMaxLevel
- Add MenuManager#registerGlobalReplacer
New Features
- Add trait placeholders
- `%auraskills_trait_[trait]%` gets the effective level of a trait
- `%auraskills_trait_[trait]_bonus%` gets the bonus level of a trait (level excluding the base value)
- `%auraskills_trait_[trait]_menu%` gets the trait in the same format displayed in the stats menu
- Add mana ability placeholders (thanks Erik)
- `%auraskills_mability_[ability]%` gets the player's mana ability level
- `%auraskills_mability_[ability]_value%` gets the mana ability value
- `%auraskills_mability_[ability]_active%` returns true if mana ability is active, false otherwise
- Add MythicMobs hook to fix issues with damage (thanks Erik)
- Add takeMana mechanic
- Syntax: takeMana{m=number}
- Add giveSkillXP mechanic
- Syntax: giveSkillXP{xp=number,s=skill}
- Add hasMana condition for MythicCrucible
- Syntax: hasMana{m=number}
- Add takeMana mechanic
- Add cause and excluded_cause options to entity source
- These options can be optionally added to filter DamageCause
- Add directly_to_inventory option to config.yml to make all bonus item drops from luck traits and loot always add directly to the player's inventory instead of being dropped in the world
- This option does not affect vanilla item drops
Changes
- Bleed no longer creates invulnerable damage frames
- Add Turkish, Finnish, and Thai messages
Bug Fixes
- Fix disabled abilities showing in level progression menu items
- Fix hex colors in stat names not working in menus
- Fix the WorldGuard hook not loading blocked_check_replace_regions option
- Fix user data being reset in some cases
- Fix block luck not applying to players in Adventure mode
- Fix CustomSkill not showing defined messages in menus
API Changes
- Add openMenu methods and registerContext to MenuManager
- Add parseItem and parseMultipleItems to ItemManager, allowing parsing of ItemStack from a ConfigurationNode
- Add passesFilter to ItemManager
- Add loot API for accessing existing loot tables and registering new loot types
- New loot tables can be loaded by using NamespacedRegistry#setLootDirectory
- Add SourceManager API for getting sources of a type
- Remove the extra repositories that were required to load the dependency in 2.0.6
New Features
- Add support for custom menus
- Create a new file in the menus folder to create a custom menu
- Follows the same format as existing menus, though templates and components will not work
- Supports PlaceholderAPI and click actions like existing menus
- Add openmenu command
- Syntax: `/skills openmenu <menuName> [player] [properties] [page]`
- If player is not specified, the menu opens for the sender
- The properties argument is a JSON string required to open some menus
- For example, `{"skill":"Skill:mining"}` should be passed when opening the level_progression, abilities, sources, and leaderboard menu
- The page argument starts at 0 for the first page
- Requires the auraskills.command.openmenu permission (defaults to op)
- Add ability placeholders
- `%auraskills_[ability]%` gets the ability level
- `%auraskills_[ability]_value%` gets the ability value
- `%auraskills_[ability]_value_2%` gets the secondary value of the ability if there is one
- Replace `[ability]` with the default English name of an ability in lowercase
- AuraSkills placeholders will now show in the tab completion of /papi parse
Bug Fixes
- Disable level up chat message for empty string
- Fix Minecraft version parsing error on initial releases like 1.20
- Placed saplings that grow into logs will now give XP
- Fix track option not working in level_progression menu
- Fix LootDropEvent Cause being unknown for some loot tables
- Fix ProtocolLib error with Geyser players
- Fix Terraform crash with AdvancedEnchantments
API Changes
- Add MenuManager API to extend existing and create custom menus
- Accessible with AuraSkillsBukkit#getMenuManager
- Can be used to define behavior for custom items and templates in default or custom menus
- Add NamespacedRegistry#setMenuDirectory for loading external menu files, which are automatically merged with default menu files before being loaded
- Make TerraformBlockBreakEvent accessible in the API
New Features
- Add track and use_track options to sources menu
- Used to rearrange the source items in any way rather than just a rectangle
- Add custom_model_data option to source item filter meta
- To use, add it to a custom XP source item filter section for filtering a specific model data
Changes
- Update messages and move identical messages across languages to global.yml
Bug Fixes
- Fix Regions API errors
- Fix hex colors not working in titles and boss bar
- Fix trailing color codes not working in stat symbols
- Fix user skill levels being below start_level when increased
- Fix multiplier command displaying incorrect values
- Fix newlines not working in reward chat messages
- Fix Retrieval detecting tridents as arrows
- Fix skill reset command not using config start_level
- Fix Lightning Blade being activated by thorns
- Fix Alchemist replacing lore and not working for custom effects
- Fix hex colors not working in skill messages
- Fix errors with WorldGuard 7.1
New Features:
- Add xp_format and percent_format boss bar options
- Add options to sources menu to change source template area
Changes:
- Reduce jar size by removing unnecessary libraries
- Update it and ru messages (regen required to get changes)
Bug Fixes:
- Fix mana ability cooldowns not being saved when re-logging
- Fix placeholders not working after PlaceholderAPI reload
- Fix NoSuchMethodError on older versions
- Fix long delay in leaderboard updating on startup
- Fix acf section of messages file not applying
- Fix abilities showing in menus and messages above max_level
- Fix trait max_mana is not loaded error
- Fix mana ability is not loaded error
- Fix formatting not working in menu titles
- Fix stack overflow when opening skills menu with too much XP
- Fix mana command help not showing parameter names
New Features:
- Add formula option to damage_reduction trait
- Add scale_xp_with_health entity source option
- This is true by default for entity sources with damage trigger
- Add mana.enabled option to more easily disable mana
Bug Fixes:
- Fix skills menu migration breaking
- If you have already migrated and your skills menu is broken, delete your menus/skills.yml to let it regenerate
- Fix permission-blocked skills increasing stat levels
- Fix entity sources with damage trigger not scaling XP with damage
- Fix Bleed not giving XP on entity death/damage
- Fix disabled traits still showing in stats menu
- Fix skill name commands not working
API Changes:
- Add DamageXpGainEvent
New Features:
- Add excluded_enchantments option for Enchanted Strength in abilities.yml
- Add lore_wrapping_width option in config.yml
Bug Fixes:
- Fix NPCs being unable to attack mobs
- Fix Fleeting not being removed after heal commands
- Fix console error when using Vault without an economy plugin
New Features:
- Add formula support in money rewards
Bug Fixes:
- Fix item modifier NBT conversion breaking items
- Fix action_bar.enabled option not fully working
- Fix message file headers
- Fix rank command error
The 2.0 update is a complete recode of the plugin codebase, overhauling existing systems to make everything more modular and customizable. The most visible change is that the plugin has been renamed to AuraSkills.
There are too many changes to list here, so read the full release notes.
If you are migrating from Beta, you must read the migration guide, not everything will migrate automatically!
As always, please report any issues to the Discord server.
New Features:
- Add support for Minecraft 1.20.2
Bug Fixes:
- Fix bug with mana and stat modifiers
Bug Fixes:
- Ensure all String case calls use ROOT locale to fix config bugs
- Fix level progression menu bugs with non-default items_per_page
- Fix multiplier permissions set to false being functional
- Fix excessive health stat error
- Fix disabled XP multiplier abilities applying in sources menu
- Fix Archery spawner-multiplier option not working
- Fix split slimes and magma cubes not applying spawner-multiplier
- Fix Bleed applying when not unlocked
- Fix XP multiplier abilities apply sometimes when not unlocked
- Fix combined skill leaderboard placeholder not working
- Fix empty sources menu pages with many disabled sources
- Make source item base XP and multiplied XP rounding consistent
- Fix Sorcery giving XP when blocked or disabled
- Fix resethealth command not working with RCON
- Fix MiniMessage hex color support in menus
- Remove automatic loot file updating
- Fix Wise Effect overflow mana when allow-over-max-mana is false
New Features:
- Add support for Minecraft 1.20
- New Foraging Sources:
- Cherry Log
- Cherry Leaves
- Pink Petals
- New Farming Sources:
- Torchflower
- Pitcher Plant
- New Fighting/Archery Sources:
- Camel
- Sniffer
Changes:
- Add Japanese messages
- Delay update checking and improve logic so new updates aren't marked as outdated
- Remove preemptive player skull loading since it is no longer necessary
- Add disable_health_check option to Sharp Hook (false by default)
- When true, Sharp Hook will activate regardless of whether the entity was actually damaged
- Update Brazilian Portuguese and French messages
Bug Fixes:
- Fix incorrect items being displayed in the level progression menu at some skill levels
- Fix reset PlayerData not saving when save-blank-profiles was false
- Fix modifiers not being removed when item is put in chest on login
- Fix Farming XP being doubled when breaking crops
- Fix desc_upgrade_value message not applying to mana ability item in abilities menu
- Fix armor stands giving Fighting/Archery XP when damage-based is true
- Fix some PlayerData memory leaks
New Features:
- Add PlaceholderAPI support to menu titles
- Add support for context-specific display names and lore on template items
Changes:
- Update Russian, Polish, and Simplified Chinese messages
Bug Fixes:
- Fix AureliumAPI.addArmorMultiplier adding item multiplier instead of armor
- Fix allow-over-max-mana set to false not working with Wise Effect
- Fix errors with skull_meta.placeholder_uuid when PlaceholderAPI is not on the server
Changes:
- Add scale_base_chance option to Fishing and Excavation loot abilities
- Option added to Treasure Hunter, Epic Catch, Metal Detector, and Lucky Spades abilities
- If true, calculating drop chance will multiply ability value by base_chance in loot pool instead of adding
Bug Fixes:
- Fix "Plugin is creating timing - this is deprecated behavior" warning on Paper
- Fix command parameter names not showing in command help
Bug Fixes:
- Revert skill leveler event priority changes to fix placed block XP dupe
- Fix Speed Mine and Treecapitator activating on placed blocks
Changes:
- Rename hooks config option from enable to enabled
Bug Fixes:
- Fix armor modifiers to support 1.19.4 hotbar swap feature
- Fix DecentHolograms name already exists error
- Fix plugin not loading for Java 8-16