@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.
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 MailFilter
s 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
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.
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 MailFilter
s 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
- Download Nucleus-0.25.0-1.10.2-S5.1-plugin.jar
- We recommend you try NucleusMixins: NucleusMixins-0.25.1-S5.1
I’m also using PlaceholderAPI 3.5 or above
In addition, download Nucleus Gluon
For ease:
- Nucleus for 1.10.2: Nucleus / Nucleus
- Nucleus Mixins for 1.10.2: https://ore.spongepowered.org/Nucleus/Nucleus-Mixins/versions/0.25.0-5.1
- Nucleus for 1.11.2: Nucleus / Nucleus
If you use Nucleus and PlaceholderAPI:
- Nucleus Gluon: dualspiral / Nucleus Gluon
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.
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
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:
- Nucleus for 1.10.2: Nucleus / Nucleus
- Nucleus Mixins for 1.10.2: Nucleus / Nucleus Mixins
- Nucleus for 1.11.2: Nucleus / Nucleus
If you use Nucleus and PlaceholderAPI:
- Nucleus Gluon: dualspiral / Nucleus Gluon
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:
- Minecraft 1.10.2: Nucleus / Nucleus
- Minecraft 1.11.2: Nucleus / Nucleus
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:
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:
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.