Refactor dialog inventory and enhance dynamic button support#249
Draft
1robie wants to merge 51 commits into
Draft
Refactor dialog inventory and enhance dynamic button support#2491robie wants to merge 51 commits into
1robie wants to merge 51 commits into
Conversation
…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.
…ample.yml for exemple
… a class if the plugin going to load bedrock/dialogs support
…eric, to skip "build" inside "26.2.build.12-alpha"
…ld processor interface
# 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
…or dependency resolution
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
ResolvablePersistentDataEntry, a comprehensive abstraction for representing and applying various persistent data types (e.g., string, int, boolean, arrays) toItemMetausing flexible, context-aware resolvers. This enables dynamic and type-safe manipulation of persistent data within items.ResolvableDamageReduction, which allows for defining and applying context-resolvable damage reduction rules to Bukkit'sBlocksAttacksComponent, supporting flexible configuration of damage types and reduction parameters.SpigotKineticWeaponResolvable, a class for building and applying kinetic weapon conditions using resolvable parameters, enhancing support for custom weapon mechanics.ResolvableContainerSlot, enabling the assignment of dynamically-resolved item stacks to specific inventory slots based on build context.Removal of Bedrock-Specific Interfaces and Classes
BedrockManagerinterface 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
API/build.gradle.ktsto add anapidependency on the:Paper-APIproject, ensuring better integration and exposure of Paper-specific APIs.