Nucleus: The Ultimate Essentials Plugin (MC 1.10.2, 1.11.2, 1.12.2)

Loving it! Can’t wait for Nucleus! :smiley:

Question/Suggestion:
Will the config/data storage be more organized?
(e.g. All config options generated on first load /&/ Data such as last deaths, homes, warps, etc. in their own respective storage files.)

Suggestion: WorldEdit commands and item. WorldEdit has become an essential and can so see it here.
Suggestion 2: Powertools just to add something fun for admins and for other purposes it may be used for.

Thank you. I can’t wait for it to be available for use!

To answer your question: yes. I decided to go down a more Essentials like route, for the simple reason it makes it much easier to obliterate data for a specific player. In fact, I’ve written a reset command that will do that for you - and will probably make an event that other plugins can listen to that asks them to do the same thing (plugin devs, would that be useful?). All configs that are intended to be user editable are autogenerated at startup, data files are only created as needed.

The current structure is that I have split configs and data, config files go in /config/nucleus, data files go in /nucleus (location of the data files are subject to change, but I do not want to put data files in /config). Opinions are welcome.

/config/nucleus/main.conf - main config options, including module config and other general options.
/config/nucleus/commands.conf - turning specific commands on and off, along with warmup, cooldown and charging information

/nucleus/userdata/ - one JSON file per player. My data file would be at /nucleus/userdata/df/dfe5c2a0-28bb-4449-ac73-a95980850077.json, for example.
/nucleus/worlddata/ - one JSON file per world.
/nucleus/general.json - one file for per server settings, such as blacklist.

/nucleus/warps.json, /nucleus/jails.json also exist, but I will likely move this data into the general data store.

Part of the reason I haven’t published a build yet is because I’m still getting the structure down, and I think it would be irresponsible to publish a plugin that is subject to large change that will mean server owners will have to update their files over and over. However, I think we’re just about there on this sort of thing, so I’ll put a build out soon.

1 Like

WorldEdit is essential I agree, but it also exists for Forge and I think there is a Sponge wrapper. It’s not a priority, and it would be lot of work to implement ourselves.

Powertools already exist! :slight_smile: See [WIP] Powertools by dualspiral · Pull Request #66 · NucleusPowered/Nucleus · GitHub

Problem with the forge version. Not everyone will used sponge forge. A version for sponge would be nice

1 Like
1 Like

Thanks I was never aware of this plugin. I never saw it.

There’s an SpongeAPI version planned, but unfortunately WorldEdit still uses int ids to recognize blocks and we don’t have a solution for Sponge yet that would let it only use string IDs.

1 Like

I just want to give a quick update to where we are with the plugin, i.e., the good ol’ fashioned “we’re not dead” post!

I’ve been restructuring a bit of the plugin to make it a bit friendlier to contribute to (I hope!) and to make it easier to generate documentation. On that note, I’ve created a small website that contains the commands and permissions that Nucleus has. It’s quite basic at the moment, but I’m hoping to expand the descriptions and the site functionality sooner rather than later.

These command and permission references can be found at http://nucleuspowered.org/docs/. Note that the “suggested permission levels” are also provided to compatible permissions plugins via the permissions API.

Other features that have made it include the ability to customise any user facing message, which could have uses for localisation, and, by request, charging for kits.

So, if anyone is interested, please feel free to look though the commands and if you feel anything is missing, please let us know via here or the Github issues site - http://github.com/NucleusPowered/Nucleus

Unfortunately, no official beta release yet because we’re still working on a couple of small structural things that might mean file locations/structures might change, and it’s no fun for anyone if you keep having to start over! However, I think we’re close to that point and I hope to share it more widely soon.

4 Likes

This is just amazing. I’m excited for the release. Hope the it won’t take too long :stuck_out_tongue:

I have just released version 0.1, as a stepping stone to a full release. It is now available for testing. If you want to dive right in, see Releases · NucleusPowered/Nucleus · GitHub for the downloads, and documentation will be added at http://nucleuspowered.org/docs over the next few days.

Things might break. If they do, tell us! I hope to get a 0.2 release out within the next month with a lot more to show.

It has taken three months to get to this point so far, especially as Nucleus over the past six weeks or so, so I’d like to add a few thank yous. These are, @HassanS6000 who has come over and pitched in with some of the commands, @KingGoesGaming who has provided a little gradle help, @12AwsomeMan34 who has done some testing without us asking (seriously, thanks!) and @AniSkywalker for an interesting discussion about modules which made me think more about the backend structure. I also would like to thank another friend of mine not on the Sponge forums, Eevables, who helped me test the system over the past three months when I started this plugin.

Thank you to everyone on this thread too who has added their support or interesting discussions. I hope you enjoy this release and please let me know what you think!

5 Likes

I’ve updated Nucleus to 0.1.1 to fix an issue that @blood discovered. Those of you that didn’t have the permission nucleus.home.set.unlimited set would have found that you couldn’t set home! That is now fixed.

Releases · NucleusPowered/Nucleus · GitHub has the latest release.

As it’s relavent, here is my top tip for this release, if you want to set a home limit for a player, give them the option home-count using a permissions plugin.

3 Likes

Always glad for friendly debates :slight_smile:

3 Likes

Once I find time I will test for issues in this plugin. Hope I find something to help out :smiley:

1 Like

Possible issues with tpa and tpahere, they seem to require a permission node (force) that doesn’t seem like it should be required – and output message bug with tpahere. Also, home links for /homes calls homeother, instead of home, when players can use /home myname and do not need OTHERS permissions/ability, and homes listed will only be their own homes. Filed both on github.

Yep, thanks! They are both simple oversights, but important ones! Thanks for the issues, hoping to get a new beta release out today or tomorrow so the fixes shouldn’t be too long.

##Version 0.2 is now available.

Please see Release [BETA] Version 0.2.0 · NucleusPowered/Nucleus · GitHub for the full release notes, but for the quick list of new things:

  • Blacklisting items, prevent players from holding or interacting with certain items.
  • /back - allow your users to return to their previous location after a warp, teleport or death.
  • /itemname and /lore, for giving names and lore to the item in your hand.
  • /stop <message>, extending the stop command to allow for a custom shutdown message to be sent (thanks to @12AwsomeMan34)

A few bugs and cosmetic issues have also been squished.

Feedback, bug reports, criticism and praise are all encouraged! I hope to get another feature release out in the next two weeks.

3 Likes

When will this plugin have its release and I want to know when you will announce HassanS6000’s other plugins that will be integrated into Nucleus. One more question, are all features of EssentialCmds implemented yet?

TL;DR - When it’s done, when we’ve gotten further with the core offering, and no, not yet.


I apologise for the long post in advance.

Quite simply - it’ll be done when it’s done. I know you probably hear that a lot, but as an open source project done in free time, we cannot simply commit to a timeframe. I do want to talk about this though.

Nucleus is a huge project, and one I’m already proud of. I’ve been working on this since the start of the year, (Hassan came in about three months through), so I have a long standing desire to see it finished. However, this does not come at the cost of quality. I could very well have thrown a lot of untested code out into the field, and it would have been bad. On the first day of the 0.1 release, there was a critical bug. If this was a proper release, that would have been an absolute nightmare. Other bugs have been discovered since - just read this thread, see our commit history.

If there is a huge problem with some plugins, its that people are rushing to fill the void that Bukkit plugins filled. This means that developers write some code, assume it’ll be correct, and throw it out there - only for it to be critically wrong. I was actually a software developer for a couple of years, if I’d done that in a job, I would have been fired so quickly. Why should I have lower standards for an OSS project? So, from day one, I’ve said that I would rather do something right than do something quickly. So that’s what I’m doing. Sure, there will still be bugs, but I am taking as much care as possible to ensure it’s as bug free as possible, and as easy to maintain - or at least fix bugs in - as possible.

I realise that there are quite a few people who are just itching for this to go live. I sympathise - but please bear with us. My realistic target is about a month’s time for a full release - hopefully my work and my life won’t get in the way of that too much!

To help achieve this, I’m hoping to recruit a friend of mine who is also interested in helping me. She is a long time friend of mine and has had plenty of experience in development, so will help accelerate getting this out of the door. I’ll annouce in due course if/when this happens.

As for Hassan’s other plugins, right now, I’ve been busy trying to work on the core system, so not really looked at it. It all depends on whether they are really “essential”. We’ll annouce them as we decide.

And no, we’re not at feature parity with EssentialCmds yet, but we’re certainly on the way. We’re close to having a working config migrator too - I’m hoping to have something in the next beta.

1 Like

I also apologize for the longer reply. I normally have a lot to say.

Very well said. I do agree I may be rushing this. We all do have lives and some people forget that unless you are a developer yourself. I am no exception I am only human just as we all are. Spigot fills that void in an amazing way while Sponge grows. I believe the reason people are being impatient is because Sponge brings a lot of opportunity for some new and amazing things like this and they want to get their hands on it because its new and there is something new it offers. I thought you may had a possible goal for a finish that you want to make possible but you don’t want to put stress and you want to make a good quality plugin. There used to be a lot of old plugins that had low quality died awhile ago. You are just one of the new people wanting to make it better for the future of Sponge.