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

Modernize Env for easier development #55

Merged
merged 7 commits into from
Jun 15, 2023

Conversation

TheRealRyGuy
Copy link
Contributor

@TheRealRyGuy TheRealRyGuy commented Jun 15, 2023

  • Adds a git workflow to ensure PRs will properly build
  • Ports to Gradle for new tasks to directly test the plugin w/ Purpur (all tasks are in the purpur group)
    • Adds downloadServer to download the latest version of Purpur
      • This is not necessary to run before runServer, however, can be used to update Purpur when necessary
    • Adds runServer to run Purpur with your plugin
  • Bumps api-version to 1.20
  • Adds tab complete to extras command
  • Move shadow'd deps to proper package
  • Add documentation to all modules copy pasted from the wiki

A question:

  • Are we that against static registration of modules that we need reflections?
    • Feels unnecessary and probably makes the file a lot larger than necessary

@TheRealRyGuy
Copy link
Contributor Author

TheRealRyGuy commented Jun 15, 2023

Another note - if this is strictly to be ran on Purpur, can make it a Paper plugin? Might as well, allows for some minor changes

  • Register command directly through exposed command map
  • Download shaded deps at runtime - may be nice cause currently deps like javax.annotation, slf4j and javassist are getting shaded in from reflections
    • However these cannot be relocated
  • Take advantage of bootstrapping
  • Probably other things - I'm not amazingly familiar with Papers plugin system.
    • Papers plugin wiki explicitly states that there is something ability to manipulate datapacks - what does this entail? Could this potentially have some effect on PurpurPacks?

Copy link
Member

@YouHaveTrouble YouHaveTrouble left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm against using paper-plugin thing yet, it's still experimental and subject to change. I'll probably hold it back until its features are strictly necessary for something.

I've been planning on using some command api to take advantage of brigadier for the plugin command, for now I got my eyes on commandAPI, but still need to test it out in practice.

My only note for the current changes is to change java distro to build with in actions, only openjdk is officially supported by purpur, so that would be the distro to test the build on

@TheRealRyGuy
Copy link
Contributor Author

TheRealRyGuy commented Jun 15, 2023

  • Now uses Microsofts OpenJDK
  • Added documentation on every module, copy pasted from the wiki. Below are all missing from the wiki
    • CancelPetDamageFromOwnerModule
    • SleepPercentageMessageModule
    • StonecutterDamageModule

I'm not sure how necessary a command framework is rn, current command is very minimal

Copy link
Member

@YouHaveTrouble YouHaveTrouble left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'm not sure how necessary a command framework is rn, current command is very minimal

current implementation is fine, I'm just still exploring my options for the future ;)

Thanks for bringing up missing docs, at one point it was hard to keep up and some things got missed.

@YouHaveTrouble YouHaveTrouble merged commit 31f1543 into PurpurMC:master Jun 15, 2023
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