ServerReloadEvent

Sponge needs a ServerReloadEvent.
I remember my old dirty workarounds using the PreProcessEvent & checking for /reload

There’s been discussion somewhere here about sponge not reloading at all, because it’s built on forge, and you can’t just reload forge mods. So it may actually need a reboot every time.

3 Likes

Ah alright… A lot will change, I guess. :slight_smile:

1 Like

That being said, the new forge has the built in config gui, and they do trigger some sort of config update event, but they only handle config changes made from within the gui.

I don’t see any problem with that, most plugins should have a reload command, and reloading the entire server isn’t really needed unless you just installed a new plugin, in which case it would be nice to have a command to load plugins.

And without the reload command I think we should have a “gc” command, to call the carbage collector.

These are just a few suggestions that I think could be helpful.

I know this is very far off, but possibly a plugin could be made to handle reloading of small plugins to that plugin. Similar to Skript (even though I never used it, Bukkits API was better than Skript), it would handle its own scripts and do their reloading. Of course this would not be able to reload normal plugins.

Well, a complete server reload is truly bad practice in the first place, you don’t know what plugins you could interrupt / mess up but a plugin such as the bukkit Plugman that could reload individual plugins safely would be a really nice. Again, this is not a feature that needs to be added to sponge, but it would make a nice plugin for it.

Plugman is a must, but remember it’s only as safe as your understanding of your plugins. If one plugin has been tracking another since boot, and you suddenly reload the tracked plugin, suddenly the tracking plugin is making incorrect assumptions. So you potentially break one or two things, but it’s still safER. Server /reload is an absolute no, though.

EDIT: Now that I think of it, if it doesn’t offer conveniences like being able to pop-in/pop-out plugins in certain cases, what even is the advantage of making a Sponge plugin instead of just making a Forge mod?

Yeah, nothing short of a complete restart is ever completely safe.

3 Likes

It would, however, be nice if Sponge could implement features that would assist the reloading of plugins. Such as Bukkit had a built-in config reload method. Although on that note, it’d be nice if Sponge better supported non-primary config files as well. Those sorts of features probably aren’t too important from the get-go as it can be done manually I’d guess. And rather than reloading the entire server, maybe Sponge could have an event such as the server reload event that simply calls a reload plugin method in the plugin’s class, which would presumably be an annotated method as the plugin class doesn’t seem to extend or implement anything. Guess on the other hand, the plugin could implement a ReloadablePlugin interface and override a reload method Sponge could then call if it’s requested to reload. Just some ideas to toss around.

CLEAN reload in java is NOT possible: