Skip to content

Refactor dialog inventory and enhance dynamic button support#249

Draft
1robie wants to merge 51 commits into
Maxlego08:developfrom
1robie:developement
Draft

Refactor dialog inventory and enhance dynamic button support#249
1robie wants to merge 51 commits into
Maxlego08:developfrom
1robie:developement

Conversation

@1robie

@1robie 1robie commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator

This pull request introduces several new classes to enhance the API's support for resolvable data types and item metadata, while also removing several Bedrock-specific interfaces and classes. The main focus is on expanding the flexibility and expressiveness of item and inventory handling, particularly around persistent data, damage reduction, and kinetic weapon conditions.

Additions to API for Resolvable Data and Item Metadata

  • Added ResolvablePersistentDataEntry, a comprehensive abstraction for representing and applying various persistent data types (e.g., string, int, boolean, arrays) to ItemMeta using flexible, context-aware resolvers. This enables dynamic and type-safe manipulation of persistent data within items.
  • Introduced ResolvableDamageReduction, which allows for defining and applying context-resolvable damage reduction rules to Bukkit's BlocksAttacksComponent, supporting flexible configuration of damage types and reduction parameters.
  • Added SpigotKineticWeaponResolvable, a class for building and applying kinetic weapon conditions using resolvable parameters, enhancing support for custom weapon mechanics.
  • Added ResolvableContainerSlot, enabling the assignment of dynamically-resolved item stacks to specific inventory slots based on build context.

Removal of Bedrock-Specific Interfaces and Classes

  • Removed the BedrockManager interface and several Bedrock-related button classes (BedrockButton, BedrockDropDownInput, BedrockLabel), indicating a shift away from direct Bedrock-specific abstractions within the API. [1] [2] [3] [4]

Build System Update

  • Updated API/build.gradle.kts to add an api dependency on the :Paper-API project, ensuring better integration and exposure of Paper-specific APIs.

1robie added 30 commits June 14, 2026 17:20
…rfaces (NoticeDialogInventory, ConfirmationDialogInventory, MultiActionDialogInventory, ServerLinksDialogInventory) and deprecating type-specific methods in the base DialogInventory.

- Updated AbstractDialogInventory to be a clean base class, delegating type-specific logic to implementation classes (ZNoticeDialogInventory, ZConfirmationDialogInventory, etc.).
- Enhanced DialogInventoryTypeLoader with a shared loadActionButtonRecord method that supports:
  - Legacy configuration key fallbacks for backward compatibility (e.g., yes-text, notice.text, multi-actions.key.text).
  - Structured TemporalAmount (Duration) loading with support for various time units (seconds, milliseconds, etc.), defaulting to seconds.
- Refactored all dialog loaders (Confirmation, Notice, MultiAction, ServerLinks) to utilize the new shared loadActionButtonRecord logic.
… a class if the plugin going to load bedrock/dialogs support
…eric, to skip "build" inside "26.2.build.12-alpha"
1robie added 11 commits July 1, 2026 11:14
# Conflicts:
#	API/src/main/java/fr/maxlego08/menu/api/button/dialogs/InputButton.java
#	Paper-API/src/main/java/fr/maxlego08/menu/api/website/DisallowedHostException.java
#	Paper-API/src/main/java/fr/maxlego08/menu/api/website/DownloadResult.java
#	changelog.md
#	src/main/java/fr/maxlego08/menu/ZMenuPlugin.java
#	src/main/java/fr/maxlego08/menu/requirement/actions/TakeItemAction.java
#	src/main/java/fr/maxlego08/menu/website/ZWebsiteManager.java
@1robie 1robie marked this pull request as draft July 3, 2026 20:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant