Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Breaking Changes
- The plugin now requires at least Java 21
- Support for Minecraft 1.17-1.19 has been dropped
New Features
- Add 1.21.5 support
- Add stat_info menu
- This allows players to see exactly how their stat and trait levels are calculated
- Accessed by clicking any of the stat items (glass panes) in the stats menu (/stats)
- The menu is tab-based and shows stat modifiers by default. Trait modifiers can be viewed by clicking on the tab buttons on the right.
- Each tab shows any base value, value from skill rewards, and custom modifiers
- Add percentage-based stat and trait modifiers
- Modifiers now have an operation value that defines how they are applied
- The
add_percent
operation multiplies the stat level by 1+value/100- For example, a modifier with value 50 multiplies the stat by 1.5
- The values for all
add_percent
modifiers for a stat are added together before multiplying the stat (additive multiplier)
- The
multiply
operation directly multiplies the stat level by the value- For example, a modifier with value 2 doubles the stat level
- Each
multiply
modifier is applied separately (multiplicative modifier)
- All existing modifiers use the
add
operation, which is the basic addition to the stat level- All
add
modifiers are applied before anyadd_percent
ormultiply
modifiers
- All
- The following existing commands have been modified to add an operation argument:
/skills modifier add <player> <stat> <name> <value> [operation] [silent] [stack]
/skills trait add <player> <trait> <name> <value> [operation] [silent] [stack]
/skills item modifier add <player> <stat> <value> [operation] [lore]
/skills item trait add <player> <trait> <value> [operation] [lore]
/skills armor modifier add <player> <stat> <value> [operation] [lore]
/skills armor trait add <player> <trait> <value> [operation] [lore]
- The
operation
argument is optional and defaults toadd
- Add temporary modifiers
- Temporary modifiers are automatically removed after certain amount of time
- Use the following commands to add temporary stat and trait modifiers:
/skills modifier addtemp <player> <stat> <name> <value> <duration> [pauseOffline] [operation] [silent] [stack]
/skills trait addtemp <player> <trait> <name> <value> <duration> [pauseOffline] [operation] [silent] [stack]
- The
duration
argument is in the format[years]y[months]mo[days]d[hours]h[minutes]m[seconds]s
- Examples of valid durations are
5s
,10m
, and4d2m1s
- Examples of valid durations are
- The
pauseOffline
argument defines whether the remaining duration should stop counting down when the player is offline (defaults to false)
- Add block requirements
- Block requirements are customizable restrictions on breaking, placing, or harvesting blocks
- Requirements are defined in requirement.blocks.list in config.yml
- Each element in the list can have the following keys:
material
- The name of the block to add requirements for (required)allow_break
- Whether to ignore requirements on block break (defaults to false)allow_place
- Whether to ignore requirements on block place (defaults to false)allow_harvest
- Whether to ignore requirements on block harvest (defaults to false)- When none of the above allow options are defined, the block cannot be broken, placed, or harvested when requirements are not met
requirements
- A map list of the requirement nodes for this block. Each element in the list can have the following keys:type
- The type of requirement, which can beskill_level
,permission
,excluded_world
, orstat
message
- The error message to send to the player when the requirement is not met. Supports MiniMessage and PlaceholderAPI (optional).- Each type has specific keys below that must be added to define type behavior. These keys are added in the same indent level as
type
. - The
skill_level
type requires the player to be at least a specific level in a skill. Keys:skill
- The name of the skill to add a level requirement forlevel
- The minimum skill level the player must be
- The
permission
type requires the player to have a specific permission node. Keys:permission
- The permission node required
- The
excluded_world
type defines a list of worlds that will make the requirement fail if the player is in one of them. Keys:worlds
- The list of worlds to not allow the player to be in
- The
stat
type requires the player to be at least a specific stat level. Keys:stat
- The name of the stat to add a level requirement forvalue
- The minimum stat value that the player must be
- General options related to the block requirement system are in requirement.blocks:
enabled
- Whether block requirements are checked at allbypass_in_creative_mode
- Whether to ignore block requirements for players in creative mode (defaults to true)bypass_if_op
- Whether to ignore block requirements for players that are op (defaults to false)
- Add addition protections against removing items from menus
- Enable by setting
menus.removal_protection
in config.yml to true (false by default)
- Enable by setting
- Add
speed_reduction
option to Stun ability - Add translatable messages for command descriptions and update notification
- Add
item_model
support in menu and loot items - Add
percent_format
andcurrent_xp_format
options to skills menu - Add
xp_format
option to sources menu - Add
format
option to stat reward to configure decimals - Add Nexo support
Changes
- Update Polish, Chinese Simplified, and German messages
- Storing modifiers with SQL has been moved from the key_values table to a new modifiers table
- Existing modifiers will be migrated automatically
- A new schema_migrations table stores previously applied migrations
- Remove Oraxen support
Bug Fixes
- Fix default item options like glow being saved when updating files
- Fix errors when Anvil Discount is not loaded
Information
Published on | April 26, 2025 |
---|---|
Downloads | 8 |
Platforms
Paper (1.20-1.21.5)