Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
A plugin library for GUIs, Items, Blocks, Advancements and much more.
The API is now available on the Maven Central Repository.
New:
- Codec API now returns
DataResult, allowing errors to propagate and partial-success warnings to accumulate. - Added
Codec#encodeAsync/decodeAsync,Codec.dispatch,Codec.taggedUnion,Codec.tuple, and much more. RecordCodecBuilder→RecordBuilder; it has also been rewritten.- Added
EncodeContext/DecodeContextto help simplify more complicated codecs. - Reflection API now covers more previously missed features.
- Added Menu API, useful for custom containers and crafting UIs, with automatic item movement handling.
- Added config options to toggle Item Server-Side Translation Ticking, Item Ticking, and the Energy Network, as well as an option to change the delay of server-side translation ticking.
- Added new
enable_custom_break_speedsandenable_natural_spawningconfig fields to thefeaturessection. - Added
TypedRegistry. - Added placeholders for permissions:
abyssallib:player_has_permission:<permission>— Checks whether the player has the permission (Boolean).abyssallib:player_has_group:<group>— Checks whether the player belongs to a group (Boolean).abyssallib:player_groups— Gets all groups the player is in (List of String).abyssallib:player_group:<index>— Gets the player's group at a specific index in the sorted group list.abyssallib:player_primary_group— Gets the player's group with the highest weight. This can be inconsistent if multiple groups have the same highest weight.
- Added 2 JSON-specific
MergeStrategys for replacing or inheriting from existing loot tables, allowing vanilla loot tables to be merged or replaced. - Added custom block breaking, utilizing the value of
BlockProperties#hardness. - Added
CustomToolcomponent, which behaves similarly to theToolcomponent but for custom blocks. - Added
compressconfig option to the resource-pack section. Enabled by default; currently minifies all JSON, making it useful for packs with a lot of models. - Added
FakePlayerandOfflinePlayerDataAPIs for modifying players while they are offline and for using that data with fake players.
Changes:
RECIPESregistry is now typed, allowing recipes of a specific type to be retrieved usingRECIPES#getByType.- Reflection API is now safer.
- UpdateChecker now accepts a String vararg of ignored identifiers (e.g.
.alpha,.beta, etc.). - Resource Pack Server has been optimized.
external-packsnow supports{"path": boolean}, allowing external packs to be exempted from compression. This is required if a pack is already compressed or encrypted.
Fixes:
- Default (folder) recipe registration is now delayed by 10 ticks, giving other plugins time to register their items.
- Fixed duplicate ghost items caused by SSR and ItemTicker in most cases.
- ItemTicker no longer triggers on inventory updates.
- PackServer will no longer duplicate packs for the client, as packs now use deterministic UUIDs.
Platforms
Paper
26.2