Skip to content

Minor improvements#223

Merged
Maxlego08 merged 4 commits intoMaxlego08:developfrom
1robie:developement
Mar 1, 2026
Merged

Minor improvements#223
Maxlego08 merged 4 commits intoMaxlego08:developfrom
1robie:developement

Conversation

@1robie
Copy link
Collaborator

@1robie 1robie commented Feb 28, 2026

This pull request introduces several improvements and bug fixes across the codebase, focusing on type safety, null checks, and minor refactoring. The most significant change is the refactoring of the itemModel property and related methods to use NamespacedKey instead of String, improving type safety and consistency for item models. Additionally, the pull request adds extra null checks for player objects in event listeners, updates method contracts for better nullability annotations, and corrects minor typos and logic in utility classes.

Type safety and API improvements:

  • Refactored itemModel in MenuItemStack, MenuItemStackContext, and ZMenuItemStack to use NamespacedKey instead of String, updating related getter and setter methods and usages for improved type safety and clarity. (API/src/main/java/fr/maxlego08/menu/api/MenuItemStack.java [1] [2]; API/src/main/java/fr/maxlego08/menu/api/context/MenuItemStackContext.java [3] [4]; Common/src/main/java/fr/maxlego08/menu/ZMenuItemStack.java [5] [6] [7]

  • Updated the addItem methods in BaseInventory to provide more accurate nullability contracts, ensuring better static analysis and documentation. (API/src/main/java/fr/maxlego08/menu/api/engine/BaseInventory.java API/src/main/java/fr/maxlego08/menu/api/engine/BaseInventory.javaL30-R42)

Null checks and defensive programming:

  • Added null checks for Player objects in various packet event listeners to prevent potential NullPointerExceptions during event handling. (Hooks/PacketEvents/src/main/java/fr/maxlego08/menu/hooks/packetevents/listener/PacketAnimationListener.java [1] [2] [3]; Hooks/PacketEvents/src/main/java/fr/maxlego08/menu/hooks/packetevents/listener/PacketEventClickLimiterListener.java [4]; Hooks/PacketEvents/src/main/java/fr/maxlego08/menu/hooks/packetevents/listener/PacketTitleListener.java [5]

Bug fixes and logic improvements:

  • Improved the handling of placeholder expansion in YamlParser, allowing for null results when a placeholder is an empty list and ensuring only valid strings are added to the result list. (Common/src/main/java/fr/maxlego08/menu/common/utils/yaml/YamlParser.java [1] [2]
  • Fixed logic in NoneLoader to better handle class instantiation with plugin constructors and fallback to default constructors. (API/src/main/java/fr/maxlego08/menu/api/loader/NoneLoader.java API/src/main/java/fr/maxlego08/menu/api/loader/NoneLoader.javaL24-L31)

Minor fixes and refactoring:

  • Corrected typo in user-facing messages from "Vous" to "You" in Message enum. (API/src/main/java/fr/maxlego08/menu/api/utils/Message.java API/src/main/java/fr/maxlego08/menu/api/utils/Message.javaL111-R113)
  • Updated a component loader registration to use the correct class name (SpigotDyedColorItemComponentLoader). (src/main/java/fr/maxlego08/menu/ZComponentsManager.java src/main/java/fr/maxlego08/menu/ZComponentsManager.javaL54-R54)
  • Allowed %player% as a valid argument in player argument validators. (src/main/java/fr/maxlego08/menu/command/validators/OnlinePlayerArgumentValidator.java [1]; src/main/java/fr/maxlego08/menu/command/validators/PlayerArgumentValidator.java [2]
  • Minor cleanup and null handling in ComponentMeta and other classes. (Hooks/Paper/src/main/java/fr/maxlego08/menu/hooks/ComponentMeta.java [1] [2]; src/main/java/fr/maxlego08/menu/ZInventory.java [3] [4]; src/main/java/fr/maxlego08/menu/inventory/VInventoryManager.java [5]

@Maxlego08 Maxlego08 merged commit 1a1c6cb into Maxlego08:develop Mar 1, 2026
2 checks passed
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.

2 participants