Investigate ways we could let our plugins be used WITHOUT the explicit dependency on Idofront. Currently, the purpose of depending on a specific version of Idofront is primarily to ensure all our plugins can share core dependencies (this is primarily needed for Kotlin, ex. reified types can't be used the KClass reference comes from a different classloader), however we consistently run into breaking version problems with small changes to our config, command, etc... libraries, which plugins should not need to share.
Potential solutions
- Look at Paper's PluginLoader to let plugins depend on Idofront if it is present, or otherwise include libraries it needs without the dependency.
- Develop a mechanism for always downloading certain libraries per plugin (ex. kaml often breaks for us), while trying to share others (like Kotlin.)
- Check if it's possible to skip the idofront dependency entirely, and somehow let plugins share the same downloaded dependency without depending on another plugin's classloader. Is there a built-in mechanism for this on Paper?
Investigate ways we could let our plugins be used WITHOUT the explicit dependency on Idofront. Currently, the purpose of depending on a specific version of Idofront is primarily to ensure all our plugins can share core dependencies (this is primarily needed for Kotlin, ex. reified types can't be used the KClass reference comes from a different classloader), however we consistently run into breaking version problems with small changes to our config, command, etc... libraries, which plugins should not need to share.
Potential solutions