Skip to content
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

Proposale for new Multi-Project Structure #2922

Open
Ingrim4 opened this issue May 10, 2024 · 1 comment
Open

Proposale for new Multi-Project Structure #2922

Ingrim4 opened this issue May 10, 2024 · 1 comment

Comments

@Ingrim4
Copy link
Contributor

Ingrim4 commented May 10, 2024

I would like to enhance abstraction within the project and facilitate better organization, the proposed restructuring involves splitting the current project into three distinct components (without changing package names of course). Any feedback is welcome maybe this is a dumb idea I don't know.

Structure

  1. core/common project: This component will encompass the fundamental elements of ProtocolLib, serving as the foundation for other modules. It will include essential functionalities such as reflection, utility classes, injection mechanisms, and the packet type system.

  2. wrappers: This module will house any wrapper-related functionalities that are not directly tied to injection processes. It aims to encapsulate all wrapper-specific functionalities for easier maintenance and separation of concerns.

  3. plugin: This segment will encompass features such as commands, metrics, and update services. It will serve as the interface layer, interacting with the core functionalities and wrappers.

Benefits:

  • Improved Abstraction
  • Easier Maintenance (hopefully)
  • Clear Separation of Concerns
@derklaro
Copy link
Contributor

Personally, I would be interested in a module that explicitly includes api (everything a developer should use) an no implementation at all to set a clear boundary between methods for external use and methods for internal use.

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

No branches or pull requests

2 participants