Nucleus - The Ultimate Essentials Plugin

Hello! Salut! Hallo! ¡Hola! Salve! Olá! Алло! 你好!

If you are a non-English speaker and you’ve been looking to contribute to Nucleus but didn’t know how, now you can. I have opened a translation server at https://translate.nucleuspowered.org/ that allows you to contribute translations to Nucleus. I have a quick page on my Docs on translations (which I will eventually put on Ore) explaining what the server is and how I hope to use translations - https://nucleuspowered.org/docs/translating.html.

Note that the server will require you to sign in using Github. Let me know if there are any issues using it. Standard “don’t be a dick” rules apply.

I would really appreciate the help if you can! If you wish to be credited (and please, feel free!), you may open a PR to the main Nucleus repo on Nucleus/TRANSLATOR-CREDITS.txt at sponge-api/7 · NucleusPowered/Nucleus · GitHub. If a language you wish to add is not available in the system, let me know or open a Github issue and I’ll get it enabled.

Putting my Sponge hat on, remember that if you’re interested in translation and want to help the Sponge project, the Docs team are also looking for translators - every little helps!

Thanks!

1 Like

A new version has been released for Nucleus, it is available for download here.


This is a major release for Nucleus for Sponge API version 7.1

This was built from Nucleus commit: 5937ad9c

Release Notes

If you’re having trouble, visit our Discord channel: https://discord.gg/A9QHG5H

Important Updates

Removal of GeoIP

GeoIP has been removed from the core Nucleus package. For this functionality, download Nucleus Heisenberg instead.

New Features

Updated /seen command

I’ve now added per-item permissions for the /seen command - that is, you can now finely tune who sees whether an IP address or player
UUID is shown, for example. They all start with nucleus.seen.extended, and will be listed on the permission reference page.

You can also click on the IP address to run /getfromip, if you so wish.

Added /extinguish

This allows for players who are on fire to not be on fire!

Bugfixes

  • Fix seen always showing a player is never AFK.
  • Fix RTP cooldown issues

Known Issues

  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.

A new version has been released for Nucleus, it is available for download here.


This is a major release for Nucleus for Sponge API version 7.1

This was built from Nucleus commit: d294457d

Release Notes

If you’re having trouble, visit our Discord channel: https://discord.gg/A9QHG5H

New Features

Updated version checking

A lot of issues have come up recently due to people updating Nucleus but not their Sponge servers. I’ve updated
the version check to gracefully fail if Sponge API 7.1 is not found.

This will also fail with bleeding Sponge builds - but Nucleus doesn’t work with them anyway.

You can disable this check by setting the nucleusnocheck property (-Dnucleusnocheck).

Added /unsignbook (or /unsign) for making written books writable

Note that this feature requires SF/SV 7.1.3 or above, or the equivalent implementation

This command requires that you hold the book in your (or the target’s) hand.

[API] Added NucleusTextTemplateEvent

This event is fired when a NucleusTextTemplate is sent to command sources. If the originator is the
broadcast or plain broadcast commands, this event will be NucleusTextTemplate.Broadcast.

[API] Relaxed requirements for the cause for the Home events

They used to require the PluginContainer at the root, now they don’t.

Under the Hood Changes

These are changes that should not affect players, but are here for informational purposes,
and may be of interest to developers working on the Sponge platform seeking greater understanding
of Nucleus.

Chat formatting

The way the chat messages are handled by Nucleus has been changed slightly. This is due to research
after an issue opened by XadepSDK concerning compatibility with Nanochat. Nucleus now uses the
Sponge modular chat system and does less to break compatibility with other plugins that might want
to add tokens to chat.

If you wish for maximum compatibility with Nucleus, please either:

  • Use the Nucleus Message Tokens system
  • Add SimpleTextTemplateAppliers to the event formatter, rather than unilaterally changing the body/header/footer.

Minor changes

  • Removed -b flag for /tp, it didn’t do anything anyway. Use -f instead.

Bugfixes

  • Fix class cast exception when using some chat plugins in combination with Nucleus
  • Fix cooldowns on /tpa being created regardless of success (now it’ll only start when a teleport has occurred).

Known Issues

  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.

A new version has been released for Nucleus, it is available for download here.


This is a bug fix and minor feature release for Nucleus for Sponge API version 7.1

This was built from Nucleus commit: df5aeed5

Release Notes

If you’re having trouble, visit our Discord channel: https://discord.gg/A9QHG5H

IMPORTANT: Updates to the Kit storage

An issue with the way we store data using Sponge’s config library meant that some kits would not store all NBT data correctly. This includes chests that contains items (see the issue #1296 on Github). This version works around the original issue, but any kits that have already suffered from this data loss will need to be recreated - we cannot reliably repair those.

Kits that are not affected do not need to be recreated.

Config Updates

  • Renamed the following config keys in the AFK module (these will migrate automatically)
    • afktime to afk-time
    • afktimetokick to afk-time-to-kick
    • afk-when-vanished to broadcast-afk-when-vanished (also clarified the comment on the config)

Minor Changes

  • Added AFK message in console when a player’s AFK status is not being broadcasted.

Bugfixes

  • Fixed some data not being properly saved to kit items (such as item data)

Known Issues

  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.

Hello,
I’d like to use the “clear” command to remove a specific item and it’s quantity from the players inventory.

However it appears Nucleus overwrites the original minecraft functionality found here
Is there a way to perform this in nucleus and or stop nucleus from overwriting the clear command?

Use minecraft:clear or disable it in commands.conf.

1 Like

Worked like a charm! Thank you!

A new version has been released for Nucleus, it is available for download here.


This is a bug fix and minor feature release for Nucleus for Sponge API version 7.1

This was built from Nucleus commit: edc19584

Release Notes

If you’re having trouble, visit our Discord channel: https://discord.gg/A9QHG5H

Minor updates

  • Added “core.enable-partial-name-matching” config options to disable partial matching with nickname arguments.

Translations

Added Chinese (Traditional) - zh_TW

Bugfixes

  • Fixed inconsistencies in the RTP module
  • Fixed NPE when using the RTP API correctly
  • Fix colours not bleeding into message when using broadcast
  • Fix nicknames not displaying during login

Known Issues

  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.

When there is more than 70 players on and you type /list you get kicked.

A new version has been released for Nucleus, it is available for download here.


This is a bug fix and minor feature release for Nucleus for Sponge API version 7.1

This was built from Nucleus commit: be52c06a

Release Notes

If you’re having trouble, visit our Discord channel: https://discord.gg/A9QHG5H

Minor updates

  • Added core.enable-partial-name-matching config options to disable partial matching with nickname arguments.
  • URLs in warnings and notes are now clickable.
  • Added config option for charges when using /tpa to be refunded if the request is denied or times out (teleport.refund-on-deny).

API updates

  • Added getRTPService() static method to the NucleusAPI class.

Bugfixes

  • Fixed tab completion on usernames where the starting string is blank
  • Fix /list causing client disconnections when calling with many players
  • Fix a buggy check in the unique user counter
  • Fixed charges never being refunded for /tpa (turned into a config option, if you want this fix, set teleport.refund-on-deny to true)

Known Issues

  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.

How can we set the name of the world inside the chat ?

A new version has been released for Nucleus, it is available for download here.


This is a major release for Nucleus for Sponge API version 7.1

This was built from Nucleus commit: 140cef7a

Release Notes

If you’re having trouble, visit our Discord channel: https://discord.gg/A9QHG5H

IMPORTANT: Kit Auto-Redeem has been disabled by default

Kit auto-redeem had an issue where the permission that was checked for autoredeem (if ignore permissions was not enabled)
that caused kits to be given to the wrong people. Strangely, no-one has ever reported this! However, this may now cause
auto-redeem to start (correctly) giving kits when it wasn’t before. It also wasn’t too performant. It has been disabled by
default - re-enable it by setting kits.auto-redeem.enable to true and reload.

I apologise for any inconvenience caused, but this step is to protect servers from sudden panic! Any server using auto-redeem
should update immediately.

First join kits are not affected by this and will be redeemed as normal.

New User Preference Service

The User Preference Service is a centralised way for users and admins to set and view preferences set in the Nucleus system.
Currently, only boolean keys are setup for the following preferences:

  • Command Spy toggle
  • Social Spy toggle
  • Teleport toggle
  • Private Message Receiving Enabled
  • Powertool toggle
  • Vanish on Login toggle

Apart from the vanish on login toggle, nothing has changed from a users’ perspective. The Vanish on Login toggle currently
defaults to true as that is the current behaviour. This will default to false in a future version of Nucleus.

Users and admins can use the /userprefs command to view and set their own, or other’s (if permission is granted), preferences.
This allows for quicker troubleshooting by admin, and simpler accessing of preferences by users.

Plugins can access the standard Nucleus preference keys and obtain the current preferences of users through the
NucleusUserPreferenceService, allowing for harmonisation of, for example, teleport toggling.

API updates

  • Added NucleusUserPreferenceService with methods to register new user preference keys.
  • Added getUserPreferenceService() static method to the NucleusAPI class.
  • Clarified some of the RTP javadocs.

Minor updates

  • Added /vanishonlogin toggle command for eligible users.
  • Improve performance of command-logger and command-spy modules through caching.

Bugfixes

  • Split /list up a bit more to prevent crashes when many players are in the same permission group.
  • Put ru-RU translations in the correct place.
  • Fix RTP attempts loading chunks outside of the border.
  • Fix permission check during auto-redeem.

Known Issues

  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.

A new version has been released for Nucleus, it is available for download here.


This is a bug fix and minor feature release for Nucleus for Sponge API version 7.1

This was built from Nucleus commit: f6c46394

Release Notes

If you’re having trouble, visit our Discord channel: https://discord.gg/A9QHG5H

Minor Updates

  • Simplify the usage string of /userprefs

Bugfixes

  • Fix /tptoggle being forced off when the user is unable to use /tptoggle
  • Fix /powertooltoggle changing the /tptoggle key instead
  • Change data file migrator to use a versioned migrator - user data file is now version 2.
  • Ensure user files are saved directly after migration

Known Issues

  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.

A new version has been released for Nucleus, it is available for download here.


This is a bug fix and minor feature release for Nucleus for Sponge API version 7.1

This was built from Nucleus commit: 4ee67592

Release Notes

If you’re having trouble, visit our Discord channel: https://discord.gg/A9QHG5H

Minor Updates

  • Add configurable limit for limiting the number of heads spawned via /skull.

Translations

  • Fix incorrect zh translation

Bugfixes

  • Fix rare NPE in Freeze Player listener.
  • Fix role permissions not being respected for userprefs.

Known Issues

  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.

A new version has been released for Nucleus, it is available for download here.


This is a bug fix and minor feature release for Nucleus for Sponge API version 7.1

This was built from Nucleus commit: 3f1f7866

Release Notes

If you’re having trouble, visit our Discord channel: https://discord.gg/A9QHG5H

Minor Updates

  • Added /togglevsc to toggle whether the staff chat is hidden or shown.

Bugfixes

  • Fix command-spy sometimes not showing commands due to incorrect preference check.

The Future: On the road to 2.0 (and 3.0)

As some of you may have noticed, I have been ripping out replacing the storage system backend. As a user, this probably won’t mean much to you, at least at first, but it heralds the start of Nucleus 2.0.

Nucleus 2.0, which will be for API 7 (so, 1.12.2), will do the following:

  • Delete deprecated API methods and probably make saner ones.
  • Create an API for others to develop alternative storage systems for Nucleus data.
  • Remove some of the lesser used modules, with a view to splitting them into their own plugins.
  • Rework a lot of the older logic to try to make it more performant.

If you’re a developer, the top two points are probably for you. User? The last two may concern you. The following modules are looking likely for removal:

  • Server Shop - they aren’t used much and are are very buggy. Much better solutions exist outside of Nucleus.
  • Warning - again, it doesn’t really provide much functionality and what it does have is inadequate for most needs.
    It hasn’t seen much work and there are simply more important features that need to be considered.
  • GeoIP has already gone - look for Nucleus Heisenberg.

1.9.x will continue to see bug fix updates and there may be the odd feature, but I plan to spend most of my Nucleus time on 2.0, while also contributing to Sponge for 1.13 (or, as is looking likely, 1.14). However, I am extremely busy too - things may be slow. As always, I welcome new contributors!

As a final note, I expect that, when Sponge API 8 arrives, I will release a Nucleus 3.0 for that to support the drastic changes to Sponge.

Known Issues

  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.
1 Like

A new version has been released for Nucleus, it is available for download here.


This is a major release for Nucleus for Sponge API version 7.1

This was built from Nucleus commit: d4e3d31b

Release Notes

If you’re having trouble, visit our Discord channel: https://discord.gg/A9QHG5H

Note: Forcing modules to load

Note that there are now plugins that are being created that ask Nucleus to disable a module as it provides
replacement functions (for example, DuskMultiSpawn replacing the Spawn module). If you want to force a module
to load regardless, set the module to FORCELOAD in the modules section of main.conf.

A recap of the module states:

  • DISABLED - module will not load
  • ENABLED - module will load unless another plugin requests for it to not be loaded
  • FORCELOAD - module will load, even if another plugin requests for it to not be loaded

API updates

Added NucleusNoteEvent

As requested by the community, I’ve added a NucleusNoteEvent.Created for tracking when a note is created.

Minor Updates

Added simple way to try to overwrite what mods might do to chat

If you’re struggling with mods potentially overwriting chat, try checking your mods for options to disable
that behaviour. However, if you can’t find that options, try setting chat.overwrite-mod-changes to true.
Nucleus will attempt to revert any changes that mods make to the chat.

It is advised to keep this off unless necessary.

Bugfixes

  • Fix NPE when attempting to disable modules programmatically.

Known Issues

  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.

A new version has been released for Nucleus, it is available for download here.


This is a major release for Nucleus for Sponge API version 7.1

This was built from Nucleus commit: c1cd9ab0

Release Notes

If you’re having trouble, visit our Discord channel: https://discord.gg/A9QHG5H

New Features

Thanks to LemADEC, Nucleus now supports prohibiting cross dimension /tp and /home teleports.
This must be enabled in the configuration by toggling the only-same-dimension config options for home and teleport
modules before use, but once enabled, the permissions nucleus.home.exempt.samedimension and nucleus.teleport.exempt.samedimension
must be used to re-enable cross dimension teleport.

Minor Updates

  • Updated fr-FR translation (thanks to LemADEC)

Bug Fixes

  • Fix missing message when toggling /vanishonlogin.
  • Enabled the use of the - prefix for worlds when using the /world unload or /world load commands.
  • Fix blank AFK messages when AFK messages are empty in config.
  • Ensure the role permission is checked when using powertools.
  • Fix client being whitelisted instead of server if Nucleus fails to load.
  • Remove client whitelist removal code - no longer needed.

Known Issues

  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.

A new version has been released for Nucleus, it is available for download here.


This is a major release for Nucleus for Sponge API version 7.1

This was built from Nucleus commit: 4a9a37e8

Release Notes

If you’re having trouble, visit our Discord channel: https://discord.gg/A9QHG5H

Feature Updates

Added option to restrict /back to same dimension

Much like /home and /tpa can be restricted to the same dimension, the ability to restrict /back has also been added.

Added option to trigger the /tpa cooldown when a request is sent, rather than on teleport

Allow modifying when the cooldown is triggered for /tpa to when /tpa is run, rather than if a teleport is accepted.

API Updates

Added NucleusFreezePlayerService

An API has been added to allow plugins to detect whether a player is frozen using the Nucleus system.

Minor Updates

  • Along with the addition of the freeze player service, the performance of the freeze player system has been enhanced.

Bug Fixes

  • Fix issue where world unloads were happening a tick later than they should have been
  • Remove mod bypass listener (as it was based on a faulty assumption and didn’t work anyway)
  • Ensure warps and such are available for the API during startup.

Known Issues

  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.

A new version has been released for Nucleus, it is available for download here.


This is a bug fix and minor feature release for Nucleus for Sponge API version 7.1

This was built from Nucleus commit: b87fd7f6

Release Notes

If you’re having trouble, visit our Discord channel: https://discord.gg/A9QHG5H

Minor updates

  • Vanish status is now added to /seen if you have the nucleus.vanish.see permission
  • /seen will no longer paginate in the console

Bug Fixes

  • Fix players with vanish permission sometimes logging in as vanished, even without permission to do so (this is a config option,
    vanish.force-nucleus-vanish, but is set to true by default).

Known Issues

  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.
1 Like

A new version has been released for Nucleus, it is available for download here.


IF YOU ARE CHOSING THIS VERSION BECAUSE IT MATCHES THE MINECRAFT VERSION, STOP. USE NUCLEUS 1.14.2 INSTEAD (or later if it exists)

There is a nasty issue in this version with player freezing. You don’t want to use this version.

This is a bug fix and minor feature release for Nucleus for Sponge API version 7.1

This was built from Nucleus commit: cd5c75e2

Release Notes

If you’re having trouble, visit our Discord channel: https://discord.gg/A9QHG5H

Minor Updates

  • Nucleus now shows vanished players as offline to those without the nucleus.vanish.see permission by default.

Bug Fixes

  • Work around players vanish mode not persisting over respawns.
  • Fix duplicated flying speed entry in /speed.

Known Issues