Replies: 2 comments 7 replies
-
These are just events, nothing more, nothing less; forcing an entire data reload as part of the server startup lifecycle just sounds like an entire headache to push forward something Mojang only seemingly provides a loose level of support for data pack devs, it's not a mechanism intended to be used every day on actual running servers, and so, I really can't get behind this. Part of the reality is that if you want modern features, we're going to need to adapt to how Mojang actually handles this stuff, rather than trying to fight the current to bodge around how their stuff works |
Beta Was this translation helpful? Give feedback.
-
Maybe just allow plugins to register tags later, but leave the reloading to them? They can just call Bukkit#reloadData. Not really a fan of automatically doing this on startup. That wouldn't really require much hacking or go against vanilla handling - its similar to adding tag files to a datapack and doing /minecraft:reload, the only change here would be entirely on the Paper side of things. |
Beta Was this translation helpful? Give feedback.
-
Is your feature request related to a problem?
Currently
LifecycleEvents.TAGS
can only be registered inside a plugin bootstrap, even though Minecraft lets you reload tags at any time.That means the API can't be used by any plugins using the
plugin.yml
system, and makes it harder to use for any plugins that only have the relevant data post bootstrap.Describe the solution you'd like.
For
LifecycleEvents.TAGS
to be available duringonEnable
, similarly toLifecycleEvents.COMMANDS
.This will technically require an extra Minecraft data reload after plugins enable, but assuming it's possible to make that reload only happen if any plugins actually registered a handler, I don't think that should be too much of a problem? can even make that a configurable thing on the event for plugins that don't change anything immediately & only need a handler for later reloads.
Describe alternatives you've considered.
With Paper plugins it's possible to register a handler in bootstrap that does nothing initially and reload later, for
plugin.yml
plugins the only way is NMS as far as I know.Other
See related Discord discussion here.
Thank you to anyone that looks into this!
Beta Was this translation helpful? Give feedback.
All reactions