Necessities - Bringing Essentials Capabilities to the Sponge Server Environment

FYI, This was when Essentials got annoying. Tread lightly.

6 Likes

@WetSponge I realize this and will be specifically be splitting “Non-Essential” Essentials Features into their own Essentials-Adons jar file. Basically with a SpongeEssentials.Base.jar and SpongeEssentials.Adons.jar . I may even split the separate subcategories, such as teleportation, messaging, etc. into their own files so that servers can pick and choose the features that they want without having to have all of the bloat they wont use running on their server.

2 Likes

Please change your plugin name. Essentials is already being ported to sponge, and you are not Essentials.

1 Like

Can someone please direct me to the place where the Essentials Team has said that they are porting it over? Through a Forum Search and a Google Search I can find no mention of this.

OK. Plugin will be renamed to Necessities.

As Essentials team support, i can tell you we are porting it over. Also check plugins to be ported thread: Plugins to be ported!

It would be great to have many small plugins bundled in a zip. For warps, personal teleporting, afk, jails, etc. Maybe a core plugin is not needed at all.

2 Likes

Well, he can have the “Core” plugin be a library for all the shared classes.

https://GitHub.com/FoundationDriven/Foundation/

Don’t take this the wrong way, competition is good. Just focus on planning your plugin neatly.

Once unmodularized, always unmodularized.

Good Luck. May the best solution win :wink:

1 Like

So what types of features do you think would be best in the core plugin. I am currently planning on having basic server info commands, chat formatting, and basic economy implemented in the core command. I would split economy out but I want to make it easy for other plugins to tie into it, and therefore i am putting it in the core. All features will be toggle able though so servers only need to run the parts that they want.

What do you think should be in Necessities Core?

Modularity, that’s all I can say. Why make one big plugin that I may only use 1/3 of when you could just make 3 plugins and I can just use the one I want?

1 Like

That is what I am doing. The majority of the features will be modules that you can install. However, a core plugin is needed to provide information to the modules without needing repetitive code for every plugin.

If you want to create an economy API why would it need to hook into necessities?

There are some planned features of Necessities that would need to tie into the API, and I would rather not have one module be a requirement of another module.

Plus, due to the way that I am structuring the code, disabling the economy parameter in the coreconfig.conf will prevent any economy code from running.

That introduces the need for two plugins instead of one. I understand if you would want people to program against the economy API in the core instead of the implementation so that the implementation can be interchangeable, but is that really necessary? In the end it’s up to you and what you want to get out of this :smile:

I just want to make it easier for server owners. If I were to make the Economy API its own plugin, then other necessities modules would require the API and it would end up being another core.

And what if youmaintain it seperately and then fatjar it in? :stuck_out_tongue:

What exactly does that entail? How would one go about doing that? What does that mean for the coding?

It means that you handle the Economy API as a seperate project entirely (of course yor other plugins can depend on it, but not the other way round) and when it comes to distributing jars you just put it into the same jar as the component of your plugin that requires it. I don’t know what you use for building, but in gradle i know that there are several ways of creating a fatjar, there is even a plugin just for it.