ProtocolLib

3M Downloads

Proposale for new Multi-Project Structure

Ingrim4 opened this issue ยท 2 comments

commented

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
commented

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.

commented

Closed in favor of #2996