-
-
Notifications
You must be signed in to change notification settings - Fork 257
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New API for ProtocolLib #2996
Comments
Just to inform: I would be up for designing & implementing a new API to replace the current StructureModifier construct, which has (at least) one major issue that will make ProtocolLib cause warning messages starting from JDK 23, and will make it incompatible with a future jdk version (in short: I am speaking of the use of Not sure if there is something planned into that direction already, would be great if some insight could be shared in that case :) |
I haven't had the time to start working on this yet, so we don't have anything concrete planned beyond what's written above. Since the main goal is to rewrite the entire API, a complete overhaul of the StructureModifier/Reflection API seems feasible. Additionally, implementing a way to bind the current API to the new one would be desirable to maintain backwards compatibility in future releases. |
Objective
Develop a new, purpose-built API for ProtocolLib that ensures compatibility with past, current, and future versions of Minecraft. This new API aims to streamline the codebase by distinguishing between public-facing components for plugins and internal components, facilitating easier and quicker future updates.
Goals
Backward Compatibility: Maintain support for existing plugins by deprecating the current API and delegating its functionality to the new one. This will provide ample time for plugin developers to transition without disrupting their workflows.
Codebase Segmentation: Clearly separate the public API components from internal ones. This separation will help in simplifying maintenance, reducing the risk of accidental changes to the API, and making it easier for developers to understand and use the API correctly.
Abstraction and Decoupling: Abstract, decouple, and generalize most parts of the code to be more self-contained. This will enhance modularity, making the system more robust and adaptable to future changes. Self-contained modules will also make it easier to test, debug, and extend functionality without unintended side effects.
Implementation Steps
This approach will help us overcome the limitations of the nearly 12-year-old API, setting the stage for a more flexible and maintainable future for ProtocolLib.
1. Current API
The text was updated successfully, but these errors were encountered: