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

Remove deprecation, restructure #219

Merged
merged 12 commits into from
Jul 10, 2024
Merged

Remove deprecation, restructure #219

merged 12 commits into from
Jul 10, 2024

Conversation

Jikoo
Copy link
Owner

@Jikoo Jikoo commented Jul 10, 2024

This converts the project's build process from a bit of a hack using the assembly plugin to mash together everything in the reactor to a more normal layout. This does have the downside of requiring all NMS modules to be built when building the plugin (no more building just the NMS module you want and its dependencies), so it is a little harder to contribute now, but not by much. Being able to build individual NMS modules was a lot more important when there were like 20 modules and some of them were obscure versions I had compiled myself because Bukkit never released them.

  • Restructure project
  • Remove deprecated API methods
  • Remove non-API utilities from API
    • This should only break the build for dependent plugins using them (if any). The utilities are still included, just in a different package.
  • Add PlayerSaveEvent
    • This is called whenever a player loaded by OpenInv is saved, not just when OpenInv saves a player after one of its inventories is closed.
    • This should have been a separate PR, but I am silly.
  • Improve Paper support
    • Add warning for Paper with remapping disabled
    • Add explicit Spigot mapping status
  • Reduce usage of reflection to a minimum
    • Should ideally make OpenInv less breakable by various remapping techniques.
    • Should improve performance of InternalAccessor a little.
  • Use Google errorprone for additional health checks

Closes #210
Long-term goals will be tracked on the future planning project instead

Jikoo added 12 commits July 8, 2024 09:58
StringMetric is not API, it was in the API module because of poor structure.
RestrictedAPI appears to use absolute path rather than relative path, which is weird.
Also non-API, but has been there because poor design. This is still poorly-designed, but it's less poorly designed, and that's what matters.
This has always been kind of gross, though it did make compiling a build for a single Minecraft version very easy.
* Reduce reflection used in loading and checking features
* Progress towards testability by reducing responsibility of plugin class (surely I will write tests before 2030)
Still some smells to clean up, including the new ones I made in this commit, but I'm an old man and need my afternoon nap.
@Jikoo Jikoo enabled auto-merge (squash) July 10, 2024 14:37
@Jikoo Jikoo merged commit b895cb4 into master Jul 10, 2024
2 checks passed
@Jikoo Jikoo deleted the dev/restructure branch July 10, 2024 14:40
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.

Improve Paper support
1 participant