Skip to content

Conversation

@devnatan
Copy link
Owner

@devnatan devnatan commented Nov 28, 2025

Closes #622

Usage is documented here.

@devnatan devnatan self-assigned this Nov 28, 2025
@devnatan devnatan added the feature New feature or enchancement label Nov 28, 2025
@devnatan devnatan requested a review from Copilot November 28, 2025 16:51
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds support for Kyori's Adventure Component in dynamic inventory title updates, allowing developers to use modern component-based text formatting alongside traditional string-based titles.

Key Changes:

  • Added overloaded updateTitleForPlayer(Object) and updateTitleForEveryone(Object) methods to support both String and Component title types
  • Enhanced platform-specific implementations to handle Component objects in Paper while maintaining backward compatibility for vanilla Bukkit
  • Extended the reflection-based InventoryUpdate utility to support Component-to-NMS conversion for Paper platforms

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
inventory-framework-api/src/main/java/me/devnatan/inventoryframework/context/IFContext.java Added new experimental API method for updating titles with Object parameter to support Component
inventory-framework-api/src/main/java/me/devnatan/inventoryframework/context/IFConfinedContext.java Added player-specific title update method accepting Object parameter with documentation
inventory-framework-api/src/main/java/me/devnatan/inventoryframework/ViewContainer.java Changed signature to accept Object instead of String for title parameter
inventory-framework-platform/src/main/java/me/devnatan/inventoryframework/context/PlatformContext.java Implemented Object-based title update for all viewers
inventory-framework-platform/src/main/java/me/devnatan/inventoryframework/context/PlatformConfinedContext.java Implemented Object-based title update for individual player
inventory-framework-platform/src/main/java/me/devnatan/inventoryframework/context/PlatformRenderContext.java Added delegation for Object-based title updates with context validation
inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/internal/InventoryFactory.java Made class public (with @ApiStatus.Internal) and added abstract method for setting inventory title
inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/internal/BukkitInventoryFactory.java Implemented title setting with String validation and error for Component usage
inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/runtime/thirdparty/InventoryUpdate.java Extended reflection logic to handle Component objects via PaperAdventure API conversion
inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/BukkitViewContainer.java Updated to use InventoryFactory instead of direct InventoryUpdate calls
inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/context/SlotRenderContext.java Added Object parameter overload delegating to parent context
inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/context/SlotClickContext.java Added Object parameter overload delegating to parent context
inventory-framework-platform-paper/src/main/java/me/devnatan/inventoryframework/internal/PaperInventoryFactory.java Implemented Component-specific title handling for Paper platform
inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/MinestomViewContainer.kt Refactored title handling to support both String and Component types
inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/context/SlotRenderContext.kt Added Object parameter overload for title updates
inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/context/SlotClickContext.kt Added Object parameter overload for title updates
inventory-framework-test/src/main/java/me/devnatan/inventoryframework/context/MockRenderIFContext.java Added mock implementation for Object-based title update method
Comments suppressed due to low confidence (2)

inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/runtime/thirdparty/InventoryUpdate.java:91

  • Debug print statements should be removed before merging to production. These System.out.println calls appear to be leftover debugging code.
        // Initialize constructors.
        chatMessage = SUPPORTS_19 ? null : getConstructor(CHAT_MESSAGE, String.class, Object[].class);
        packetPlayOutOpenWindow = (useContainers())

inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/runtime/thirdparty/InventoryUpdate.java:418

  • [nitpick] Unnecessary blank line added. Remove this extra line to maintain code consistency.
            return null;

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

devnatan and others added 6 commits November 28, 2025 13:57
…mework/context/IFConfinedContext.java

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Natan Vieira <24600258+devnatan@users.noreply.github.com>
…mework/context/IFContext.java

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Natan Vieira <24600258+devnatan@users.noreply.github.com>
@devnatan devnatan merged commit 85997c0 into main Nov 29, 2025
5 of 6 checks passed
@devnatan devnatan deleted the feat/dynamic-title-update-component-support branch November 29, 2025 20:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature or enchancement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Component support for updateTitle

2 participants