Перейти к содержимому
Mineforgian

DBetterModel

Adds interop between BetterModel and Denizen!​

Загрузки
311
Подписчики
5
Обновлён
25 декабря 2025 г.
Лицензия
MIT

Опубликован 26 июля 2025 г.

dbettermodel

DBetterModel 5.0.0: Adds interop between BetterModel and Denizen!

Supported:

Supports BetterModel v1.15.0, Minecraft 1.21.10, Denizen 1.3.1 (7236)

BetterModel Version Latest Supported DBetterModel Version
1.15.0 5.0.0
1.14.0-1.14.2 4.3.0
1.13.4 4.2.0
1.13.0-1.13.1 4.1.0
1.11.0 4.0.0
1.10.3 3.5.0 (abandoned, will not be released)
1.10.2 3.4.0
1.10.0-1.10.1 3.3.0
1.9.0-1.9.3 2.1.0
1.8.0-1.8.1 2.0.1
1.5.5 1.1.0
1.5.1 1.0.0

Docs (5.0.0)

New Documentation

Ченджлог

5.0.0Релиз1.21.9, 1.21.10, 1.21.11 · 25 декабря 2025 г.

Feat

  • Added bStats metrics integration.
  • Added shadow_radius mechanism to control bone shadow size.
  • Added billboard mechanism support directly to BMBoneTag.
  • New tags: <BMBoneTag.local_position> and <BMBoneTag.real_position>.
  • BMModelTag now accepts mechanisms (tint, glow, etc.) to apply changes to the entire model at once.

Refactor

  • Optimized bmpart command: skins now load asynchronously and apply immediately (removed artificial delay).
  • Updated <BMBoneTag.global_position> to return a standard LocationTag.
  • Improved internal rendering logic for better compatibility with BetterModel API.
  • Removed forced skin cache clearing to improve performance.
4.3.0Релиз1.21.8, 1.21.9, 1.21.10 · 2 ноября 2025 г.

Added:

  • BetterModel 1.14.0 support
4.2.0Релиз1.21.8, 1.21.9, 1.21.10 · 19 октября 2025 г.

Added:

  • BetterModel 1.13.4 support

Bug Fixes

  • bmmount: Fixed a command argument parsing error that caused a "Too many linear arguments" failure when executing the command.
  • bmmount: Refactored the entire command logic to use the BetterModel API directly for mounting and dismounting entities from model bones.
    • This resolves the core issue where the command would appear to succeed but had no effect.
    • The command now correctly retrieves the RenderedBone and its HitBox to perform mount/dismount actions.
    • Added proper error handling to inform the user if the target bone is not a valid seat (i.e., not tagged with p in the model file).
4.1.0Релиз1.21.8, 1.21.9, 1.21.10 · 8 октября 2025 г.

Added:

  • <PlayerTag.limb>: Returns the MapTag of the player’s limb animation data. Example: map@[animation_name=roll;loop_mode=loop;default_loop_mode=play_once]
  • <PlayerTag.limb_bones[<model_name>]>: Returns the MapTag of all player limb bones.
  • BetterModel 1.13.0 support
3.4.0Релиз1.21.6, 1.21.7, 1.21.8 · 30 июля 2025 г.

Fixed:

  • Resolved a critical state management issue where applying transformations to a bone (e.g., scale, item, offset) would reset any previously applied transformations. The bone's state is now persistent across separate commands, allowing for cumulative adjustments.

Added:

  • New offset Mechanism: Added an offset mechanism to BMBoneTag. This allows scripters to apply a local positional offset to a bone using a LocationTag without altering its currently displayed item or scale. Syntax: adjust <bone> offset:<location>.
  • New view_range Mechanism: Added a view_range mechanism to BMBoneTag. This allows scripters to set the render distance of a bone's display entity in blocks, using a decimal value. This is useful for hiding model parts in certain camera perspectives. Syntax: adjust <bone> view_range:<#.#>.

Changed:

  • The item mechanism for BMBoneTag has been refactored. It no longer accepts a LocationTag for an offset. Its sole purpose is now to set the ItemTag for the bone, preserving any existing offset or scale.
3.2.0Релиз1.21.6, 1.21.7, 1.21.8 · 27 июля 2025 г.

Refactored:

  • Extracted core bone manipulation logic from BMBoneTag into the new net.openproject.dbettermodel.api.BMBone API class. This significantly reduces complexity in the Denizen object layer, improves code structure, and enhances reusability.
  • Simplified BMBoneTag to act as a lightweight proxy, delegating all mechanism logic (tint, visible, item) to the new BMBone API.

Added:

  • New API Class: Introduced net.openproject.dbettermodel.api.BMBone, a high-level API for programmatic control over individual model bones. It provides simplified methods for tinting, visibility (global and per-player), item setting, and scaling.
  • New Mechanism: Added a scale mechanism to BMBoneTag. This allows scripters to adjust the non-uniform scale of a bone's displayed item using a LocationTag as a vector.
  • New Command Argument: Added an optional hide:<player> argument to the bmlimb command. This allows hiding all of the target player's active models from a specific observer player.

Changed:

  • Updated the syntax of the bmlimb command to include the new optional hide argument.
  • Modified BMLimbCommand's processing logic to interact with the target player's EntityTrackerRegistry to apply per-player visibility changes when the hide argument is used.
3.1.0Релиз1.21.6, 1.21.7, 1.21.8 · 26 июля 2025 г.

for BetterModel v1.10.1, MC 1.21.4, Denizen 1.3.1 (7144)

Added:

  • Bone Visibility Mechanism (visible): Implemented a new mechanism for BMBoneTag to control bone visibility. It supports both global toggling and per-player visibility changes via packet manipulation. [EXPERIMENTALLY, THERE ARE PROBLEMS]
  • Bone Item Mechanism (item): Introduced a mechanism for BMBoneTag that allows setting a custom ItemTag as the bone's model, with optional support for a local LocationTag offset. [This mechanism previously existed, but has been added again]
  • Configurable Skin Application Delay: Introduced a new option in config.yml (options.skin-apply-delay-ticks) to allow server administrators to define the delay before a player skin part is applied to a model bone via the bmpart command. This provides greater flexibility and control over the timing of asynchronous operations, enabling fine-tuning for server performance and skin-fetching reliability.
  • Dynamic Skin Part Command (bmpart): Implemented the new bmpart command to interface with BetterModel's skin and bone APIs. This command allows scripts to map a model bone to a player's skin part (e.g., head, arm), enabling dynamic model customization. The feature utilizes a custom BoneItemMapper in conjunction with SkinManager#removeCache to ensure skin textures are fetched and applied correctly, even when updated in real-time by other plugins.
  • SkinsRestorer Hook, new debug, new config and more

Комментарии

Загружаем…