Nucleus - The Ultimate Essentials Plugin

@dualspiral I would like to have the ability to restrict the altitude /fly for some groups. The time of flight. This would be useful for groups. For example, group 1 is entitled to up to 4 blocks up to (but not above the limit of 60) and fly for 1 minute. Group 2 up to 10 blocks up and down on 15. Is this possible?

@zsn741656478 Thanks, I’ve put a fix in for the next release.

@anon34495435 It’s not something Nucleus should be doing as an Essentials plugin. Can I suggest putting a request out for another plugin to do this?

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


This is the 1.11.2 build

Nucleus 0.25.0 is available for Sponge API 5.1 and Sponge API 6-SNAPSHOT. Documentation can be found at http://nucleuspowered.org/docs (command and permission references should already be up to date).

Note that there are now two builds for Nucleus. Use S5.1 for 1.10.2 servers, S6 for 1.11.2 servers. Downloads are at the bottom of the page.

NucleusMixins, an optional companion plugin for Nucleus, is available for Sponge API 5 (Minecraft 1.10.2) servers, and will provide a workaround for /invsee not working as intended, and enhanced world generation by hooking into Minecraft internals (known as “NMS” to some players). It is entirely optional, and may not work on heavily modded servers. If you wish to turn off either the /invsee or enhanced world generation mixins, you can do so by setting the relavent option in mixins.conf.

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

Important Changes & Notices

Rules are now in rules.txt

The previous way of setting rules in main.conf was very restrictive, so rules are now in the rules.txt file. All your rules will migrate, so no steps are immediately needed by you.

New Features

Would you like a few commands with that kit?

Command Kits are here! Perhaps one of the more requested features for Nucleus is the ability to add commands to kits, and they are kitted out with them now!

It’s very important to note that any command will be run by the console, so only give the ability to add commands to kits to highly trusted players. As a result, the kit command add permission, kit.command.add.base is in the NONE group for permissions to try to protect against rouge admins.

Viewing the commands in a kit

/kit command <kit> lists the commands, and if you have permission to remove commands, they can be removed from this list too.

List

Permission: kit.command.base

Adding a command

The command to add a command to a kit is /kit command add <kit> <command>, where the command should not start with a /, and anywhere you want to substitute the player’s name, you should add {{player}}.

So, to broadcast a player’s name, you could write: {{player}} just opened a kit, and this would broadcast dualspiral just opened a kit if I opened the kit. Similarly, if I wanted to smite someone who opened a kit, then I’d use smite {{player}}, etc.

Permission: kit.command.add.base

Removing and clearing commands

To remove commands: /kit command remove|- <kit> <command|index from list>
To remove all commands: /kit command clear

I would normally recommend using the list to remove commands, but you can also type the full command to remove or use the (one-based) index from the /kit command list.

Permission: kit.command.remove.base

Edit GUI

I have also added an experiemental “edit” command which opens up an Inventory with books containing the commands that can be taken out, and replaced with new books. These books must only contain one command each, but can span multiple pages as long as no newlines exist.

You can try it with /kit command edit <kit>, with the permission kit.command.edit.base. Same caveats apply as with the add command.

Improved Timespan arguments.

A minor quality of life change, anywhere you can use a Timespan argument, such as 1h or 30m, you can now omit the unit if you want to specify seconds.

New Permission contexts for muted players

Much like for jailed players in the previous release, now if a player is jailed, they will now have an extra context:

  • The nucleus_muted context simply exists with value “true” if the player has been muted.

These contexts can be used to setup specialised permissions for when a player is muted when using a compatable permissions plugin.

Jailing and Muting countdown changes

There are now two new options in main.conf, jail.jail-time-counts-online-only and mute.mute-time-counts-online-only. If these are set to true, any jail/mute time served must be served online - the timer will pause when the player logs off.

Rules updates

As mentioned, rules are now in the rules.txt file. This file works exactly like the MOTD file, and tokens can be used in them. The title for the rules menu can be specified in main.conf.

Note that the /rules add and /rules delete commands have been removed.

Mail Filters

Mail Filters, which allow you to do rudamentary searching of messages, have been around for about a year, but some of them were broken. They’ve been re-written now.

You can use /mail read <filters>, where the filters are:

  • p:<player> - filter by player
  • c: - include the console (this is a new filter)
  • m:<word> - filter by substring in message
  • b:<days> - only show messages before this number of days
  • a:<days> - only show messages after this number of days

So, /mail read p:dualspiral c: m:test b:2 a:5 will return messages that were sent by either dualspiral or the console, containing the word test, sent between 2 (before) and 5 (after) days ago.

Developers - API updates

This is a large update for developers as we gear up for Nucleus 1.0

Repository: ‘http://repo.drnaylor.co.uk/artifactory/list/minecraft’.
Dependency (1.10.2): ‘io.github.nucleuspowered:nucleus-api:0.25.0-S5.1’
Dependency (1.11.2): ‘io.github.nucleuspowered:nucleus-api:0.25.0-S6.0’

New Services and Events

Many new services have been added. They are:

  • NucleusBackService - for controlling the location /back sends players to.
  • NucleusMailService - for reading player mail
  • NucleusMuteService - for muting players
  • NucleusNameBanService - for banning usernames
  • NucleusPrivateMessageService - for managing reply targets and social spy
  • NucleusWarningService - for managing warnings

Events have also been added:

  • NucleusJailEvent (associated service is due for the next release)
  • NucleusMuteEvent
  • NucleusNameBanEvent
  • NucleusWarnEvent

NucleusMailEvent and Mail Filters

The NucleusMailEvent allows you to also use the same filters as above, but instead should create the filters through the API. The MailFilters are glorified Predicate<MailMessage> objects, so you can also create your own too.

Minor Changes & Enhancements

  • Mutes now notify the player when the mute expires.
  • Added startup message in the console to let owners know where to find help.
  • Added ability to generate a file containing Essentials equivalents.
  • Disable /r ?, so you can send ? as a reply.

Bugfixes

  • Fixed /me
  • Fix commands.conf generation, remove errant nulls.
  • Fix teleport methods saying a teleportation was unsafe when it was actually cancelled.

Known Issues

  • /invsee does not work unless you are within 8 blocks of the target player. Use NucleusMixins to workaround this - though this currently doesn’t work for some heavily modded servers. If you have more information, please add it there.
  • Some players are finding that enhanced pre-generation isn’t giving output. This will work fine in 1.11.x.
  • There is an API, but this is subject to change.
  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.

Commit History

What do I need to download?

I’m using Minecraft 1.11.2

Download Nucleus-0.25.0-1.11.2-S6.0-plugin.jar from this page

I’m also using PlaceholderAPI 3.5 or above

In addition, download NucleusGluon-1.0.2.jar

1 Like

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


This is the build for 1.10.2

Nucleus 0.25.0 is available for Sponge API 5.1 and Sponge API 6-SNAPSHOT. Documentation can be found at http://nucleuspowered.org/docs (command and permission references should already be up to date).

Note that there are now two builds for Nucleus. Use S5.1 for 1.10.2 servers, S6 for 1.11.2 servers. Downloads are at the bottom of the page.

NucleusMixins, an optional companion plugin for Nucleus, is available for Sponge API 5 (Minecraft 1.10.2) servers, and will provide a workaround for /invsee not working as intended, and enhanced world generation by hooking into Minecraft internals (known as “NMS” to some players). It is entirely optional, and may not work on heavily modded servers. If you wish to turn off either the /invsee or enhanced world generation mixins, you can do so by setting the relavent option in mixins.conf.

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

Important Changes & Notices

[1.10.2 only] Nucleus Mixins has been updated to 0.25.1-5.1

If you’re using Nucleus Mixins, please update your SpongeForge/SpongeVanilla to the latest 1.10.2 build and then update the mixinplugin - there are a couple of updates for the world pre-gen mixins.

This tries to add support for heavy modpacks by setting the priority higher so they apply later. This is by no mean guaranteed to work, however - I need to spend more time investigating.

Rules are now in rules.txt

The previous way of setting rules in main.conf was very restrictive, so rules are now in the rules.txt file. All your rules will migrate, so no steps are immediately needed by you.

New Features

Would you like a few commands with that kit?

Command Kits are here! Perhaps one of the more requested features for Nucleus is the ability to add commands to kits, and they are kitted out with them now!

It’s very important to note that any command will be run by the console, so only give the ability to add commands to kits to highly trusted players. As a result, the kit command add permission, kit.command.add.base is in the NONE group for permissions to try to protect against rouge admins.

Viewing the commands in a kit

/kit command <kit> lists the commands, and if you have permission to remove commands, they can be removed from this list too.

List

Permission: kit.command.base

Adding a command

The command to add a command to a kit is /kit command add <kit> <command>, where the command should not start with a /, and anywhere you want to substitute the player’s name, you should add {{player}}.

So, to broadcast a player’s name, you could write: {{player}} just opened a kit, and this would broadcast dualspiral just opened a kit if I opened the kit. Similarly, if I wanted to smite someone who opened a kit, then I’d use smite {{player}}, etc.

Permission: kit.command.add.base

Removing and clearing commands

To remove commands: /kit command remove|- <kit> <command|index from list>
To remove all commands: /kit command clear

I would normally recommend using the list to remove commands, but you can also type the full command to remove or use the (one-based) index from the /kit command list.

Permission: kit.command.remove.base

Edit GUI

I have also added an experiemental “edit” command which opens up an Inventory with books containing the commands that can be taken out, and replaced with new books. These books must only contain one command each, but can span multiple pages as long as no newlines exist.

You can try it with /kit command edit <kit>, with the permission kit.command.edit.base. Same caveats apply as with the add command.

Improved Timespan arguments.

A minor quality of life change, anywhere you can use a Timespan argument, such as 1h or 30m, you can now omit the unit if you want to specify seconds.

New Permission contexts for muted players

Much like for jailed players in the previous release, now if a player is jailed, they will now have an extra context:

  • The nucleus_muted context simply exists with value “true” if the player has been muted.

These contexts can be used to setup specialised permissions for when a player is muted when using a compatable permissions plugin.

Jailing and Muting countdown changes

There are now two new options in main.conf, jail.jail-time-counts-online-only and mute.mute-time-counts-online-only. If these are set to true, any jail/mute time served must be served online - the timer will pause when the player logs off.

Rules updates

As mentioned, rules are now in the rules.txt file. This file works exactly like the MOTD file, and tokens can be used in them. The title for the rules menu can be specified in main.conf.

Note that the /rules add and /rules delete commands have been removed.

Mail Filters

Mail Filters, which allow you to do rudamentary searching of messages, have been around for about a year, but some of them were broken. They’ve been re-written now.

You can use /mail read <filters>, where the filters are:

  • p:<player> - filter by player
  • c: - include the console (this is a new filter)
  • m:<word> - filter by substring in message
  • b:<days> - only show messages before this number of days
  • a:<days> - only show messages after this number of days

So, /mail read p:dualspiral c: m:test b:2 a:5 will return messages that were sent by either dualspiral or the console, containing the word test, sent between 2 (before) and 5 (after) days ago.

Developers - API updates

This is a large update for developers as we gear up for Nucleus 1.0

Repository: ‘http://repo.drnaylor.co.uk/artifactory/list/minecraft’.
Dependency (1.10.2): ‘io.github.nucleuspowered:nucleus-api:0.25.0-S5.1’
Dependency (1.11.2): ‘io.github.nucleuspowered:nucleus-api:0.25.0-S6.0’

New Services and Events

Many new services have been added. They are:

  • NucleusBackService - for controlling the location /back sends players to.
  • NucleusMailService - for reading player mail
  • NucleusMuteService - for muting players
  • NucleusNameBanService - for banning usernames
  • NucleusPrivateMessageService - for managing reply targets and social spy
  • NucleusWarningService - for managing warnings

Events have also been added:

  • NucleusJailEvent (associated service is due for the next release)
  • NucleusMuteEvent
  • NucleusNameBanEvent
  • NucleusWarnEvent

NucleusMailEvent and Mail Filters

The NucleusMailEvent allows you to also use the same filters as above, but instead should create the filters through the API. The MailFilters are glorified Predicate<MailMessage> objects, so you can also create your own too.

Minor Changes & Enhancements

  • Mutes now notify the player when the mute expires.
  • Added startup message in the console to let owners know where to find help.
  • Added ability to generate a file containing Essentials equivalents.
  • Disable /r ?, so you can send ? as a reply.

Bugfixes

  • Fixed /me
  • Fix commands.conf generation, remove errant nulls.
  • Fix teleport methods saying a teleportation was unsafe when it was actually cancelled.

Known Issues

  • /invsee does not work unless you are within 8 blocks of the target player. Use NucleusMixins to workaround this - though this currently doesn’t work for some heavily modded servers. If you have more information, please add it there.
  • Some players are finding that enhanced pre-generation isn’t giving output. This will work fine in 1.11.x.
  • There is an API, but this is subject to change.
  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.

Commit History

What do I need to download?

I’m using Minecraft 1.10.2

I’m also using PlaceholderAPI 3.5 or above

In addition, download Nucleus Gluon

1 Like

For ease:

If you use Nucleus and PlaceholderAPI:

1 Like

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


This build is for 1.11.2

This is a minor maintenance release for Nucleus. For the new features in the 0.25.x series, please read the 0.25.0 release notes. Please take a backup of Nucleus data before upgrading.

No APIs have been changed. Developers can continue to use any 0.25 version to build against.

  • Fixed option tokens that end with :s always adding a space, even if the option does not exist.
  • Fixed issue when trying to tab complete the /tp command
  • Added missing exemption permission for being jailed (nucleus.jail.exempt.target)
  • Fixed issue where the last known location was stored in the wrong field.
  • As a result, added ability for /getpos to target offline users.

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


This build is for 1.10.2

This is a minor maintenance release for Nucleus. For the new features in the 0.25.x series, please read the 0.25.0 release notes. Please take a backup of Nucleus data before upgrading.

No APIs have been changed. Developers can continue to use any 0.25 version to build against.

  • Fixed option tokens that end with :s always adding a space, even if the option does not exist.
  • Fixed issue when trying to tab complete the /tp command
  • Added missing exemption permission for being jailed (nucleus.jail.exempt.target)
  • Fixed issue where the last known location was stored in the wrong field.
  • As a result, added ability for /getpos to target offline users.
1 Like

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


This is the build for 1.11.2 servers!

Nucleus 0.26.0 is available for Sponge API 5.1 and Sponge API 6-SNAPSHOT. Documentation can be found at http://nucleuspowered.org/docs (command and permission references should already be up to date).

Note that there are now two builds for Nucleus. Use S5.1 for 1.10.2 servers, S6 for 1.11.2 servers. Downloads are at the bottom of the page.

Nucleus Mixins, an optional companion plugin for Nucleus, is available for Sponge API 5 (Minecraft 1.10.2) servers, and will provide a workaround for /invsee not working as intended, and enhanced world generation by hooking into Minecraft internals (known as “NMS” to some players). It is entirely optional, and may not work on heavily modded servers. If you wish to turn off either the /invsee or enhanced world generation mixins, you can do so by setting the relavent option in mixins.conf.

Important Note about Nucleus Mixins: Nucleus Mixins is a mod not a plugin, that can be used on SpongeForge and SpongeVanilla servers. It MUST be in your MODS directory, NOT any other plugin directory.

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

Important Changes & Notices

Using NucleusMixins? Make sure it’s in the mods directory.

We finally got to the bottom of NucleusMixins not working on heavily modded servers - something that I hadn’t appreciated was that Sponge also has a plugins directory, but NucleusMixins is seen as a “tweaker” to Forge and must be in the mods folder. So, if you are using NucleusMixins - put it in the mods directory.

New Features

World pre-generation updates

The flag -t [percentage] has been added to the pre-generation command. This allows server owners to specify how much time in a tick can be dedicated to pre-generation. 100 indicates the full tick, 0 indicates none of the tick. The default is 80, or 90 for aggressive mode.

Some extra memory management is also performed, including hinting to the Java runtime when to try to reclaim some memory. This will only work if you do not specify the -XX:+DisableExplicitGC java flag. Nucleus usually does not try to tell the JVM when to perform garbage collections, but in this case, we provide the hint to try to bring memory usage down and prevent server freezing.

Minor issues with this command have also been fixed on Miencraft 1.10.2 servers.

/getbyip, /checkjailed and /checkmuted

On the first install of Nucleus 0.26, a task will be started (async!) to scan all users currently in the Nucleus system and create a cache of these users. This cache will allow users to use the following commands:

  • /getbyip [ip]: list all users last seen on the specified IP address.
  • /checkjailed [jail]: list all users in jail, or optionally, the specified jail.
  • /checkmuted: list all muted players.

In each case, the names in the resulting list can be clicked to run /seen [player], /checkmute [player] or /checkjail [player].

If the cache appears to get out of sync, the command /nucleus rebuildusercache can be run to rebuild this cache. Please give it a bit of time on first startup though, while players can join during this time, these functions need time to build up the cache.

Enhanced /nucleus info

Now, /nucleus info will display all command aliases, not just the primary aliases.

Added Death Messages module

This module can do one of two things:

  • Disable all death messages
  • Force death messages to be visible to everyone regardless of the message channel a player is in

There are future plans to add more functionallity to this module.

Updated /weather

Thanks to @OblivionNW, you can now specify a maximum time that can be specified in the command in main.conf. This can of course be bypassed by those with the nucleus.weather.exempt.length permission.

Tweaked command logging defaults

Based on support feedback, command logging will by default no longer log command block commands. This does not affect existing installations.

Developers - API updates

This is another fairly large update for developers, mostly with requested features this time!

Repository: ‘http://repo.drnaylor.co.uk/artifactory/list/minecraft’.
Dependency (1.10.2): ‘io.github.nucleuspowered:nucleus-api:0.26.0-S5.1’
Dependency (1.11.2): ‘io.github.nucleuspowered:nucleus-api:0.26.0-S6.0’

Messages can now have a custom command source

A requested feature for those writing bots is the ability to hook up their bots with our message system. There is a new registerMessageTarget method in the NucleusPrivateMessageService where developers can register their bots. They must extend Identifiable AND CommandSource, and keep a constant UUID throughout.

Once registered, they can be used as a target for /m using the supplier targetName, and can see who they will respond to in the API.

Also, custom targets have their own social spy levels.

AFK: Plugins can disable the activity check for a short period of time.

You can now disable activity tracking to perform an action with a player that would normally cause them to leave AFK. There is a new method on NucleusAFKService, service.disableTrackingFor(player, ticks) where Nucleus will stop tracking a player for the specified number of ticks. This returns an AutoClosable object, so can be used in a try with resources construct, for example:

try (AutoCloseable ac = service.disableTrackingFor(player)) { // Disables tracking.
     player.simulateChat(Text.of("test"), Cause.of(NamedCause.owner(player))); // This goes through without disabling AFK
} catch (Exception e) {
    // ignored - it won't throw.
}

You can also disable tracking for a number of ticks, usually useful for players who get moved and may have slight adjustments that occur over the next few ticks:

service.disableTrackingFor(player, 20)
player.setLocation(player.getWorld().getSpawnLocation());

AFK tracking will reactivate after the number of ticks specified.

Added events for when kits are redeemed

The following events were added:

  • NucleusKitEvent.Redeem.Pre - fired before kits are provided but not fired if permission checks are not being made. This is cancellable.
  • NucleusKitEvent.Redeem.Post - fired when a kit is given succesfully
  • NucleusKitEvent.Redeem.Failed - fired when a kit could not be given

Minor Changes & Enhancements

  • Allow freezing/unfreezing offline players.
  • Added /getpos for offline players.
  • Added optional player argument to /firstjoinkit redeem (thanks @OblivionNW)
  • Move much of the Nucleus Configurate code into its own library - Neutrino.
  • Throw nicer error message if offline /invsee is tried (which will work once Sponge supports it).
  • Updated QSML to 0.5

Bugfixes

  • Fixed modifyOrCreateHome only attempting to modifyHome (thanks @Mohron)
  • Fixed /ignore not working in chat
  • Worked around armour disappearing when some kits could not be redeemed
  • Fixed some commands not autocompleting properly

Known Issues

  • /invsee does not work unless you are within 8 blocks of the target player. Use NucleusMixins to workaround this.
  • There is an API, but this is subject to change.
  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.

Commit History

1 Like

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


This build is for 1.10.2 servers

Nucleus 0.26.0 is available for Sponge API 5.1 and Sponge API 6-SNAPSHOT. Documentation can be found at http://nucleuspowered.org/docs (command and permission references should already be up to date).

Note that there are now two builds for Nucleus. Use S5.1 for 1.10.2 servers, S6 for 1.11.2 servers. Downloads are at the bottom of the page.

Nucleus Mixins, an optional companion plugin for Nucleus, is available for Sponge API 5 (Minecraft 1.10.2) servers, and will provide a workaround for /invsee not working as intended, and enhanced world generation by hooking into Minecraft internals (known as “NMS” to some players). It is entirely optional, and may not work on heavily modded servers. If you wish to turn off either the /invsee or enhanced world generation mixins, you can do so by setting the relavent option in mixins.conf.

Important Note about Nucleus Mixins: Nucleus Mixins is a mod not a plugin, that can be used on SpongeForge and SpongeVanilla servers. It MUST be in your MODS directory, NOT any other plugin directory.

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

Important Changes & Notices

Using NucleusMixins? Make sure it’s in the mods directory.

We finally got to the bottom of NucleusMixins not working on heavily modded servers - something that I hadn’t appreciated was that Sponge also has a plugins directory, but NucleusMixins is seen as a “tweaker” to Forge and must be in the mods folder. So, if you are using NucleusMixins - put it in the mods directory.

New Features

World pre-generation updates

The flag -t [percentage] has been added to the pre-generation command. This allows server owners to specify how much time in a tick can be dedicated to pre-generation. 100 indicates the full tick, 0 indicates none of the tick. The default is 80, or 90 for aggressive mode.

Some extra memory management is also performed, including hinting to the Java runtime when to try to reclaim some memory. This will only work if you do not specify the -XX:+DisableExplicitGC java flag. Nucleus usually does not try to tell the JVM when to perform garbage collections, but in this case, we provide the hint to try to bring memory usage down and prevent server freezing.

Minor issues with this command have also been fixed on Miencraft 1.10.2 servers.

/getbyip, /checkjailed and /checkmuted

On the first install of Nucleus 0.26, a task will be started (async!) to scan all users currently in the Nucleus system and create a cache of these users. This cache will allow users to use the following commands:

  • /getbyip [ip]: list all users last seen on the specified IP address.
  • /checkjailed [jail]: list all users in jail, or optionally, the specified jail.
  • /checkmuted: list all muted players.

In each case, the names in the resulting list can be clicked to run /seen [player], /checkmute [player] or /checkjail [player].

If the cache appears to get out of sync, the command /nucleus rebuildusercache can be run to rebuild this cache. Please give it a bit of time on first startup though, while players can join during this time, these functions need time to build up the cache.

Enhanced /nucleus info

Now, /nucleus info will display all command aliases, not just the primary aliases.

Added Death Messages module

This module can do one of two things:

  • Disable all death messages
  • Force death messages to be visible to everyone regardless of the message channel a player is in

There are future plans to add more functionallity to this module.

Updated /weather

Thanks to @OblivionNW, you can now specify a maximum time that can be specified in the command in main.conf. This can of course be bypassed by those with the nucleus.weather.exempt.length permission.

Tweaked command logging defaults

Based on support feedback, command logging will by default no longer log command block commands. This does not affect existing installations.

Developers - API updates

This is another fairly large update for developers, mostly with requested features this time!

Repository: ‘http://repo.drnaylor.co.uk/artifactory/list/minecraft’.
Dependency (1.10.2): ‘io.github.nucleuspowered:nucleus-api:0.26.0-S5.1’
Dependency (1.11.2): ‘io.github.nucleuspowered:nucleus-api:0.26.0-S6.0’

Messages can now have a custom command source

A requested feature for those writing bots is the ability to hook up their bots with our message system. There is a new registerMessageTarget method in the NucleusPrivateMessageService where developers can register their bots. They must extend Identifiable AND CommandSource, and keep a constant UUID throughout.

Once registered, they can be used as a target for /m using the supplier targetName, and can see who they will respond to in the API.

Also, custom targets have their own social spy levels.

AFK: Plugins can disable the activity check for a short period of time.

You can now disable activity tracking to perform an action with a player that would normally cause them to leave AFK. There is a new method on NucleusAFKService, service.disableTrackingFor(player, ticks) where Nucleus will stop tracking a player for the specified number of ticks. This returns an AutoClosable object, so can be used in a try with resources construct, for example:

try (AutoCloseable ac = service.disableTrackingFor(player)) { // Disables tracking.
     player.simulateChat(Text.of("test"), Cause.of(NamedCause.owner(player))); // This goes through without disabling AFK
} catch (Exception e) {
    // ignored - it won't throw.
}

You can also disable tracking for a number of ticks, usually useful for players who get moved and may have slight adjustments that occur over the next few ticks:

service.disableTrackingFor(player, 20)
player.setLocation(player.getWorld().getSpawnLocation());

AFK tracking will reactivate after the number of ticks specified.

Added events for when kits are redeemed

The following events were added:

  • NucleusKitEvent.Redeem.Pre - fired before kits are provided but not fired if permission checks are not being made. This is cancellable.
  • NucleusKitEvent.Redeem.Post - fired when a kit is given succesfully
  • NucleusKitEvent.Redeem.Failed - fired when a kit could not be given

Minor Changes & Enhancements

  • Allow freezing/unfreezing offline players.
  • Added /getpos for offline players.
  • Added optional player argument to /firstjoinkit redeem (thanks @OblivionNW)
  • Move much of the Nucleus Configurate code into its own library - Neutrino.
  • Throw nicer error message if offline /invsee is tried (which will work once Sponge supports it).
  • Updated QSML to 0.5

Bugfixes

  • Fixed modifyOrCreateHome only attempting to modifyHome (thanks @Mohron)
  • Fixed /ignore not working in chat
  • Worked around armour disappearing when some kits could not be redeemed
  • Fixed some commands not autocompleting properly

Known Issues

  • /invsee does not work unless you are within 8 blocks of the target player. Use NucleusMixins to workaround this.
  • There is an API, but this is subject to change.
  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.

Commit History

For ease:

If you use Nucleus and PlaceholderAPI:

1 Like

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


This is the build for Minecraft 1.11.2

This is a bug fix release for Nucleus. For the new features in the 0.26.x series, please read the 0.26.0 release notes.

No APIs have been changed. Developers can continue to use any 0.24 version to build against.

  • Fixed bug in /tppos where a permission error may be thrown erroneously.

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


This is the build for Minecraft 1.10.2

This is a bug fix release for Nucleus. For the new features in the 0.26.x series, please read the 0.26.0 release notes.

No APIs have been changed. Developers can continue to use any 0.24 version to build against.

  • Fixed bug in /tppos where a permission error may be thrown erroneously.

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


This is a non-urgent maintainence release for Nucleus. For the new features in the 0.26.x series, please read the 0.26.0 release notes.

No APIs have been changed. Developers can continue to use any 0.26 version to build against.

  • Fixed issue where disabling the jail module would cause the mute module to fail to load.
  • Added checks to try to prevent “unable to save user” spam when fake players are involved.
  • Fixed issue where the kits and warps lists couldn’t be clicked when a space was in the name of a warp.
  • Add message when multi-world (allow-nether) might have been disabled when creating a world.
  • Fixed issue which may have prevented Nucleus loading on Sponge API 6.

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


This is a non-urgent maintainence release for Nucleus. For the new features in the 0.26.x series, please read the 0.26.0 release notes.

No APIs have been changed. Developers can continue to use any 0.26 version to build against.

  • Fixed issue where disabling the jail module would cause the mute module to fail to load.
  • Added checks to try to prevent “unable to save user” spam when fake players are involved.
  • Fixed issue where the kits and warps lists couldn’t be clicked when a space was in the name of a warp.
  • Add message when multi-world (allow-nether) might have been disabled when creating a world.
  • Fixed issue which may have prevented Nucleus loading on Sponge API 6.

I just realised that I didn’t specify the version that each of the previous posts refer to - so for ease:

1 Like

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


Nucleus 0.27.0 for Minecraft 1.11.2

Nucleus 0.27.0 is available for Sponge API 5.1 and Sponge API 6-SNAPSHOT. Documentation can be found at http://nucleuspowered.org/docs (command and permission references should already be up to date) - we will shortly be undertaking a project to copy a lot of the documentation over to Ore.

Note that there are now two builds for Nucleus. This build is for API 6 - Minecraft 1.11.2 servers.

Nucleus Mixins, an optional companion plugin for Nucleus, is available for Sponge API 5 (Minecraft 1.10.2) servers, and will provide a workaround for /invsee not working as intended, and enhanced world generation by hooking into Minecraft internals (known as “NMS” to some players). It is entirely optional, and may not work on heavily modded servers. If you wish to turn off either the /invsee or enhanced world generation mixins, you can do so by setting the relavent option in mixins.conf.

Important Note about Nucleus Mixins: Nucleus Mixins is a mod not a plugin, that can be used on SpongeForge and SpongeVanilla servers. It MUST be in your MODS directory, NOT any other plugin directory.

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

Important Changes & Notices

Changes to the Command system

Nucleus has had a lot of the backend command system rewritten. The main motivating factor in this is to be able to provide much better error messages when a subcommand fails and to allow subcommands to be executed without requiring the permission of the base command, but it also allows for easier maintenence in coming releases.

New Features

Subcommands that fail now provide more informative error messages

While commands that are what we call “root” commands, that is, commands such as /kittycannon and /hat give pretty good messages when the command has been entered incorrectly, commands such as /kit command <>, where the root command (e.g. /kit) has subcommands (command, give etc.), will simply state “Too many arguments!”. Nucleus now takes control of more of the command system, and tries to display (or hide) relavent/irrelavent messages. The result is the following:


Third

Subcommands no longer require the base command permission

Example: the command /nucleus reload, permission nucleus.nucleus.reload.base no longer requires the /nucleus command permission: nucleus.nucleus.base.

Updates to /rtp

/rtp has seen some nice updates:

Ability to target and restrict specific worlds

/rtp can now accept a world as a parameter. Admins can also restrict the worlds in which /rtp can be executed, after turning on the config entry rtp.per-world-permissions in main.conf, players will require the permission nucleus.rtp.world.[world in lowercase] to rtp in those worlds.

Per world configuration

In main.conf, players can now override the global rtp permissions using the rtp.world-overrides section.

Specifying a default world for /rtp

Some server owners may want /rtp to target a specific world by default, rather than the current world. The option rtp.default-world allows you to do this.

Offline Teleportation

Players with permission can now either use /tp [player] to teleport themseleves to an offline player (nucleus.teleport.teleport.offline), or /tphere [player] to teleport an offline player to their location (nucleus.teleport.tphere.offline).

Messages and Vanish

Nucleus will now prevent players from targetting a vanished player in /m, unless they have the permission nucleus.vanish.see.

Improvements to /lore commands

Thanks to first time contributor @NickImpact for adding the following commands for easier management of item lore:

  • /lore delete <line>
  • /lore insert <line> <text>
  • /lore edit <line> <text>

Autoredeeming kits on login

Thanks to @Mohron, Admins can now set a kit to be redeemed by a player automatically upon login by using /kit autoredeem <kit> <true|false>

Auto-redeem will only redeem a kit if:

  • Kit is set to AutoRedeem true
  • Kit has no associated cost
  • The player has permission to use the kit when separate permissions are set
  • OneTime Kit: only when not previously redeemed
  • Kit with cooldown: only when cooldown has expired
  • Admin exemption permissions do not apply!

Developers - API updates

Repository: ‘http://repo.drnaylor.co.uk/artifactory/list/minecraft’.
Dependency (1.10.2): ‘io.github.nucleuspowered:nucleus-api:0.27.0-PR1-S5.1’
Dependency (1.11.2): ‘io.github.nucleuspowered:nucleus-api:0.27.0-PR1-S6.0’

Nucleus Jail and Note services

Nucleus now exposes information about players who are jailed, and any notes that might be linked to a player.

Inmates and MuteInfo updates

You can now get the Instant of issuance for a jailed or muted player, if their jail or mute is issued in this version of Nucleus or later.

NucleusAPI static class

There have been changes the the NucleusAPI class, methods here can be used to get services, rather than the Sponge service manager, should you prefer.

Minor Changes & Enhancements

  • /clearinventory will support offline players if/when Sponge does.
  • Warn the player when a world could not be created and enabled due to server settings, and instructions on how to remedy this.
  • Allow /kit create to be run by the console to create an empty kit.
  • Added methods to NucleusAPI to expose the Nucleus services outside the Sponge service manager.
  • Mutes and Jails now have an associated creation date.

Bugfixes

  • Fix powertools firing twice in some circumstances.
  • Fix incorrect messages being returned by the command processor.
  • Fix some commands not treating a player argument as optional.
  • Fix warning messages with the user data store services when fake players are on the server.
  • Formatting fixes for some /check* commands.

Known Issues

  • /invsee does not work unless you are within 8 blocks of the target player. Use NucleusMixins to workaround this.
  • There is an API, but this is subject to change.
  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.

Commit History

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


Nucleus 0.27.0 for Minecraft 1.10.2

Nucleus 0.27.0 is available for Sponge API 5.1 and Sponge API 6-SNAPSHOT. Documentation can be found at http://nucleuspowered.org/docs (command and permission references should already be up to date) - we will shortly be undertaking a project to copy a lot of the documentation over to Ore.

Note that there are now two builds for Nucleus. This build is for API 5.2 - Minecraft 1.10.2 servers.

Nucleus Mixins, an optional companion plugin for Nucleus, is available for Sponge API 5 (Minecraft 1.10.2) servers, and will provide a workaround for /invsee not working as intended, and enhanced world generation by hooking into Minecraft internals (known as “NMS” to some players). It is entirely optional, and may not work on heavily modded servers. If you wish to turn off either the /invsee or enhanced world generation mixins, you can do so by setting the relavent option in mixins.conf.

Important Note about Nucleus Mixins: Nucleus Mixins is a mod not a plugin, that can be used on SpongeForge and SpongeVanilla servers. It MUST be in your MODS directory, NOT any other plugin directory.

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

Important Changes & Notices

Changes to the Command system

Nucleus has had a lot of the backend command system rewritten. The main motivating factor in this is to be able to provide much better error messages when a subcommand fails and to allow subcommands to be executed without requiring the permission of the base command, but it also allows for easier maintenence in coming releases.

New Features

Subcommands that fail now provide more informative error messages

While commands that are what we call “root” commands, that is, commands such as /kittycannon and /hat give pretty good messages when the command has been entered incorrectly, commands such as /kit command <>, where the root command (e.g. /kit) has subcommands (command, give etc.), will simply state “Too many arguments!”. Nucleus now takes control of more of the command system, and tries to display (or hide) relavent/irrelavent messages. The result is the following:


Third

Subcommands no longer require the base command permission

Example: the command /nucleus reload, permission nucleus.nucleus.reload.base no longer requires the /nucleus command permission: nucleus.nucleus.base.

Updates to /rtp

/rtp has seen some nice updates:

Ability to target and restrict specific worlds

/rtp can now accept a world as a parameter. Admins can also restrict the worlds in which /rtp can be executed, after turning on the config entry rtp.per-world-permissions in main.conf, players will require the permission nucleus.rtp.world.[world in lowercase] to rtp in those worlds.

Per world configuration

In main.conf, players can now override the global rtp permissions using the rtp.world-overrides section.

Specifying a default world for /rtp

Some server owners may want /rtp to target a specific world by default, rather than the current world. The option rtp.default-world allows you to do this.

Offline Teleportation

Players with permission can now either use /tp [player] to teleport themseleves to an offline player (nucleus.teleport.teleport.offline), or /tphere [player] to teleport an offline player to their location (nucleus.teleport.tphere.offline).

Messages and Vanish

Nucleus will now prevent players from targetting a vanished player in /m, unless they have the permission nucleus.vanish.see.

Improvements to /lore commands

Thanks to first time contributor @NickImpact for adding the following commands for easier management of item lore:

  • /lore delete <line>
  • /lore insert <line> <text>
  • /lore edit <line> <text>

Autoredeeming kits on login

Thanks to @Mohron, Admins can now set a kit to be redeemed by a player automatically upon login by using /kit autoredeem <kit> <true|false>

Auto-redeem will only redeem a kit if:

  • Kit is set to AutoRedeem true
  • Kit has no associated cost
  • The player has permission to use the kit when separate permissions are set
  • OneTime Kit: only when not previously redeemed
  • Kit with cooldown: only when cooldown has expired
  • Admin exemption permissions do not apply!

Developers - API updates

Repository: ‘http://repo.drnaylor.co.uk/artifactory/list/minecraft’.
Dependency (1.10.2): ‘io.github.nucleuspowered:nucleus-api:0.27.0-PR1-S5.1’
Dependency (1.11.2): ‘io.github.nucleuspowered:nucleus-api:0.27.0-PR1-S6.0’

Nucleus Jail and Note services

Nucleus now exposes information about players who are jailed, and any notes that might be linked to a player.

Inmates and MuteInfo updates

You can now get the Instant of issuance for a jailed or muted player, if their jail or mute is issued in this version of Nucleus or later.

NucleusAPI static class

There have been changes the the NucleusAPI class, methods here can be used to get services, rather than the Sponge service manager, should you prefer.

Minor Changes & Enhancements

  • /clearinventory will support offline players if/when Sponge does.
  • Warn the player when a world could not be created and enabled due to server settings, and instructions on how to remedy this.
  • Allow /kit create to be run by the console to create an empty kit.
  • Added methods to NucleusAPI to expose the Nucleus services outside the Sponge service manager.
  • Mutes and Jails now have an associated creation date.

Bugfixes

  • Fix powertools firing twice in some circumstances.
  • Fix incorrect messages being returned by the command processor.
  • Fix some commands not treating a player argument as optional.
  • Fix warning messages with the user data store services when fake players are on the server.
  • Formatting fixes for some /check* commands.

Known Issues

  • /invsee does not work unless you are within 8 blocks of the target player. Use NucleusMixins to workaround this.
  • There is an API, but this is subject to change.
  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.

Commit History

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


Nucleus 0.27.1 for Minecraft 1.11.2

This is a maintainence release for Nucleus. For the new features in the 0.27.x series, please read the 0.27.0 release notes.

No APIs have been changed. Developers can continue to use any 0.27 version to build against.

  • Fixed issue where trying to jail a player may fail.
  • Fixed issue where /r was always asserting that a player was AFK
  • Fixed issue where default config entries in lists/maps (such as group templates) were always being added on server restart.
  • Updated QuickStart Module Loader dependency to 0.6.0

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


Nucleus 0.27.1 for Minecraft 1.10.2

This is a maintainence release for Nucleus. For the new features in the 0.27.x series, please read the 0.27.0 release notes.

No APIs have been changed. Developers can continue to use any 0.27 version to build against.

  • Fixed issue where trying to jail a player may fail.
  • Fixed issue where /r was always asserting that a player was AFK
  • Fixed issue where default config entries in lists/maps (such as group templates) were always being added on server restart.
  • Updated QuickStart Module Loader dependency to 0.6.0

As an aside, the latest version of SpongeForge (2262) for 1.10.2 will allow users to use /invsee without Nucleus Mixins. You should update your version of SpongeForge to the latest at your earliest convenience. SpongeVanilla should be soon to follow.

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


Nucleus 0.28.0 for Minecraft 1.11.2

For the version for Minecraft 1.10.2, click here.


Nucleus 0.28.0 is available for Sponge API 5.1 and Sponge API 6-SNAPSHOT. Documentation can be found at http://nucleuspowered.org/docs (command and permission references should already be up to date).

This is mostly a bug fix release as we firm up the system for 1.0, but includes some feature updates. It’s also later than usual, because I’ve been on holiday for three weeks. Apologies, normal service should be resumed soon!

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

Important Changes & Notices

There are no important notices for this version.

New Features

New alias for most root Nucleus commands

Most root Nucleus commands now have a new alias where n is prefixed to the command name. /world has had /nworld for a while, now, commands like /home, /seen and /serverstat can be accessed with /nhome, /nseen and /nserverstat.

New Module: Server List

The Server List module allows server owners to alter server list MOTD (the one that is displayed on the multiplayer server selection screen for Minecraft). The configuration for this is available in main.conf, the section being server-list. Note that the modification of server list messages is OFF by default.

The server list module allows you to do the following in the config:

  • Hide vanished players from the player count (on by default)
  • Hide the player count completely
  • Define a set of messages that could be displayed to the player on server ping (one will be chosen by default)
  • Define a set of messages that could be displayed to the player on server ping when it is whitelisted (one will be chosen by default)

This information can be displayed using the /serverlist (or /sl) command, optionally with the -m and -w flags to display the current messages and whitelist messages.

Temporary Server MOTDs

Just want to advertise a time limited event using the server list MOTD, but don’t want to forget to remove it? No problem, Nucleus is able to display a temporary server list MOTD that will disable itself after a specified period of time.

To create a temporary message, the following command can be used:

/sl m [-t <time in seconds/timespan format>] [-l [1|2]] [-r] <message>

  • -r will remove any temporary message
  • -t [time] will define the amount of time the message will be available for. If a message is defined and one is currently not set without specifying this, the time will default to an hour.
  • -l [1|2] defines the line of the server list MOTD to set, defaulting to the first (1)

So, /sl m -t 1d -l 1 &aHello will set the server list MOTD to a green “Hello” on the first line for a day. This will override anything in the config, regardless of whether the whitelist is on or not, and will persist over restarts.

Customisable Whitelist message

The whitelist message shown to non-whitelisted players can be customised in main.conf if the connection module is enabled, by altering the connection.whitelist-message config option.

Disable redemption messages on kits

The kits module has a new command: /kit togglemessage <kit> <true|false>. If set to true for a kit, the player will not be notified when redeeming a kit, which may be useful in scenarioes where a kit is given automatically, and the server owner may not wish to inform the user of this.

Developers - API updates

Repository: ‘http://repo.drnaylor.co.uk/artifactory/list/minecraft’.
Dependency (1.10.2): ‘io.github.nucleuspowered:nucleus-api:0.28.0-S5.1’
Dependency (1.11.2): ‘io.github.nucleuspowered:nucleus-api:0.28.0-S6.0’

NucleusPlayerMetadataService

This service allows plugins to get basic information about a player that Nucleus stores, including login and logout time.

See Nucleus/NucleusPlayerMetadataService.java at sponge-api/5 · NucleusPowered/Nucleus · GitHub for more information

Minor Changes & Enhancements

  • Added current gamemode to /seen.
  • Added /world border reset to reset a world border to the defaults.
  • Load unloaded (but not disabled) worlds when trying to warp to them, rather than failing.
  • Add additional type serialisers (via Neutrino) to support more modded items.
  • Disallow vanished users being targetted for /tp style commands.
  • Improved /hat logic to work as intended in all game modes.

Bugfixes

  • Fixed mutliple formatting errors with the NucleusTextTemplate and URL formatter.
  • Fixed staff chat not correctly parsing URLs in some cases.
  • Fixed tab completion with /tp and /tphere to favour online players, and not show offline players to those without permission.
  • Fixed partial name completion for commands that accept nicknames and offline players.
  • Stop the environment blacklist being overzealous when checking.

Known Issues

  • There is an API, but this is subject to change.
  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.

Commit History

1 Like