Nucleus - The Ultimate Essentials Plugin

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


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

This was built from Nucleus commit: 372944da

Release Notes

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

API Updates

Updated NucleusSendToSpawnEvent

Plugins can now make use of Nucleus’ spawn system but change the location a player spawns, and use the new SPAWN_EVENT_TYPE event context key to
determine whether a redirect should happen.

With massive thanks to Brycey92 for this feature - he developed this for his plugin WarpSpawns.

(Aside: Do you have a plugin that uses Nucleus in some way? We’d love to hear about it - I may well start a showcase on the Ore/Nucleus docs pages.)

Known Issues

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


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

This was built from Nucleus commit: 5a63053

Release Notes

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

Bug fixes

  • Ensure translations are in the correct asset directory
  • Fixed spam from the FreezePlayerListener when a non-player user is moving or interacting.

Known Issues

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


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

This was built from Nucleus commit: a2c21606

Release Notes

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

Configuration updates

There are three new configuration options in the teleport module:

  • show-clickable-tpa-accept-deny allows you to enable/disable the accept/deny message when a teleport request is sent
  • use-commands-when-clicking-tpa-accept-deny forces the accept/deny links to run the /nucleus:tpaccept and /nucleus:tpdeny commands, rather
    than just accepting/denying (which allows protection plugins that work by blocking the name of the command only to work).
  • use-request-location-on-tp-requests causes players who accept a teleport request to warp to the location of the target when the request was made,
    rather than the current location of the player, which may help close off a loophole with claim restrictions.

Bug fixes

  • Take into account vanish status properly for some isOnline checks where players do not have permission to see others.
  • Fix edge case where text in /info files causes an error instead.
  • Fix first join kits showing up in the kit list when not an admin

Known Issues

1 Like

A suggestion I’d like to suggest is, being able to color code the text commands. such as the Tp’ing. being able to make the text a different color other than yellow and green.

Suggestions are best made on the Nucleus Github :slight_smile:

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


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

This was built from Nucleus commit: efa4221

Release Notes

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

New features

Added /near command

Thanks to work from clienthax, the /near command has now been added. Shows who is near you.

Added /time add and /time remove commands

Thanks to TheFlash787, you can now use /time add and /time remove to advanced and turn back time.

API updates

Updated NucleusKitEvent

Plugins can now alter the items given and/or the commands run on a player for a specific invocation of a kit.

Bugfixes

  • Changed default for show-clickable-tpa-accept-deny from false to true (it was always meant to be true).
  • If a kit fails to load, rather than wipe the file, Nucleus will try to validate the item. If it fails, an error will appear on the console.

Known Issues

Hi, is there a way to make portals to the worlds that you create just with the Nucleus plugin? Or would you need to download a portal plugin as well?

Can’t see anything in documentation about portals or getting to the worlds you create.

You’d need another plugin for that.

1 Like

Hello bro, I downloaded the plugin, but when I entered the plugin was all normal, but the commands are not working, what do I have to do to fix?

Check they work fine from the console, if they do, add permissions for them. A recent change in Sponge caused commands you don’t have permission for to return an “unknown command” message, rather than a “no permission” message.

You can use https://nucleuspowered.org/docs/commands2.html to see what permissions you might need, or https://nucleuspowered.org/docs/configuration/permissions.html for a quick start guide.

1 Like

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


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

This was built from Nucleus commit: fed256a8

Release Notes

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

New features

Added /clearback command

This allows admins to remove a player’s /back target.

Added configuration key to allow handling respawns to be turned off

This allows for compatibility with some mods that handle respawns on their own.

Minor Updates

  • The config entry warp.separate-permissions now defaults to true, as this will be removed in v2 and this will be the default behaviour. This does not affect current configuration files.

Bugfixes

  • Fixed German translation typo (thanks to Retoc)
  • Made /back backed implementation simpler, resolving a bug where the /back target becomes inaccessible.
  • Fixed message key error on /ext
  • Fixed issue where Nucleus would not handle player spawning if Nucleus’ /setspawn was not set on a world.

Known Issues

1 Like

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


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

This was built from Nucleus commit: b69a2af4

Release Notes

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

Minor Updates

Added a way to turn language autodetection off if “default” is selected for the language, forcing “en_GB”

Bugfixes

  • Language selection should now accept either - or _ in the config entry
  • Warps in /warp list should no longer show as unavailable when the world they point to is unloaded and could be loaded.
  • Calling asMutable on the staff chat message channel no longer causes the formatting to drop.

Known Issues

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


This is an beta version of Nucleus 2.0.0 for Sponge API version 7.1

THIS IS A BETA VERSION. IT MAY NOT BE STABLE. DO NOT USE ON PRODUCTION SERVERS. USE 1.14.3 ON PRODUCTION SERVERS. THE NUCLEUS API HAS CHANGED, CURRENT INTEGRATIONS WILL NOT WORK.

Please report any issues to Github Issues (Issues · NucleusPowered/Nucleus · GitHub) CLEARLY stating the version of Nucleus you are using.

This was built from Nucleus commit: 8d83f414

Release Notes

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


Nucleus 2.0

Nucleus 2 is a major rewrite of much of the base code. It is designed to make future work to the system simpler, easier to understand, and hopefully, easier for people to contribute to.

As it stands, Nucleus 2 is a BETA quality product. Please do not use it on production servers, but I would appreciate any testing I can get. I am only one person!

Here is a rundown of some of what is new, changed, removed, fixed and crucially, known to be broken.

PSA: Before you use Nucleus 2…

Nucleus 2 does not change how your data is stored, but the entire storage system has been completely rewritten. This is to enable database support which is currently slated for Q2 2020. There may be issues with the storage system that I have been unable to test that might cause unexpected data loss. If this happens, please tell me via Github Issues.

No migration is necessary for the following:

  • main.conf
  • info.txt and other info files
  • User data
  • World data
  • Kits, warps, and other general data

Nucleus 2 also uses a new format for the commands.conf file and no migrator is provided at this time as the format is likely to change further as I complete the plugin. Please inspect commands.conf when you load and make any necessary changes.

For Server Owners and Players

This list is not yet exhaustive. There is not yet a lot to talk about, but v2 is not yet feature complete.

ADDED: Permission Levels/Powers for moderation tasks

Many of you have been asking “permission levels” because you don’t trust lower level staff to not abuse their powers and use them against higher level staff. They already existed for social spy, but now they exist for muting, jailing, kicking and banning. This feature allows you to give a numeric level to each player - by default, if your level is higher than the person you’re trying to act upon, your action will go through. By default, those with the same power for an action will not be able to affect each other.

Because this is an advanced feature, you must turn it on for the respective modules. The options in the mute, jail, kick, admin (for /sudo) and ban modules are:

  • use-permission-level: set to true to use permission levels
  • can-affect-same-level: set to true to let two players with the same permission level affect each other, false if not.

To specify a permission level, you have to give a specific permission option to the player in question. In LuckPerms, options are referred to as “meta”. The options you need to assign are specified in the config file (at least for now, will be on docs later), but for convenience, they are:

  • nucleus.ban.level
  • nucleus.jail.level
  • nucleus.kick.level
  • nucleus.mute.level
  • nucleus.sudo.level
  • nucleus.socialspy.level (this already existed)

No prizes for guessing which one is which! In LuckPerms, you would then specify the level an option using the command:

/lp user <user> meta set <option> <level>

For a ban level of 4 on dualspiral:

/lp user dualspiral meta set nucleus.ban.level 4

If a level is invalid or does not exist, having the permission to run the command you are running is considered a level of 1, not having the permission is considered a level of 0.

This has only been lightly tested. Please report any feedback on the system to me during your testing.

ADDED: Ability to specify arbitrary command names for Nucleus commands (EXPERIMENTAL)

Nucleus commands can now be given arbitrary command names in commands.conf under the “root level aliases” section, and Nucleus will attempt to register the command under that alias.

This feature is still subject to some testing, but I realised it was easy to add with the new codebase.

ADDED: Per User translation of Nucleus system messages

While Nucleus’ support for translation isn’t great and I’ve not been successful in getting a translation platform running (yet), Nucleus will support sending messages to players based on either:

  • The locale set via /nucleussetlanguage on a per-player basis; or
  • The client’s locale.

This will be available as we (hopefully) receive more translations.

You will be able to turn this off, of course, if you want all clients to see the same language.

ADDED: Permission context when running a Nucleus command

When a player is running a Nucleus command, they will obtain a permission context for the duration of that call. This context is nucleus_command, and will have a context value corresponding to the command in question - this can be seen by looking at the help page for the command in question.

ADDED: Compatibility Warning system

Nucleus comes packaged with information about known plugins and mods that conflict with its functions. These warnings may appear on startup, and on demand by running /nucleus compat.

ADDED: Kit data can now be reloaded from persistence on demand

I don’t recommend that you ever do this manually, but you can now update the kits data from persistence and reload it using /kit reload.

MODIFIED: Chat tokens no longer accept pl style tokens

Chat tokens work in a similar way to before, but are no longer plugin namespaced (so, {{pl:[]}}. {{o:[]}} style tokens still work.

MODIFIED: The /tp alias for /teleport defaults to disabled

Many mods, such as JourneyMap, were using the /tp command to perform teleports

Other commands may get the same treatment if the Nucleus team figures that it would be in the best interest of the community.

MODIFIED: The /mute and /unmute, /jail and /unjail commands are no longer toggles

This also has the side effect of making these actions all require their own permission.

MODIFIED: Warps now always require the permission nucleus.warps.<name> to redeem

Until recently, this was a configuration toggle. This is no longer the case. To emulate the previous behaviour, simply grant the nucleus.warps permission.

REMOVED: Debug Mode

Nucleus will just spit out errors to the console now, as they should never happen (or if they do, you should know about them).

REMOVED: The Warnings module has been removed

It wasn’t used much and, honestly, it was actually pushing the boundaries as to what Nucleus really should be doing. There are no migration paths available as it stands, however plugin developers can use the Nucleus API to extract any warnings against a player if they wish to enable such migration.

REMOVED: The Server Shop module has been removed

It wasn’t used much and it had many issues with it that were not simple to fix. There are no migration paths available.

REWRITTEN: Teleportation Routines

Player teleportation should now be more reliable as the base teleport code has been deleted and completely rebuilt.

REWRITTEN: Message channel support removed for higher compatibility with other plugins

Nucleus will no longer use message channels, instead using an inhouse solution to support formatting with other mods, (and for reporting formatting to other plugins).

BUG FIXES: Miscellaneous fixes

While many bugs might have been introduced, other bugs have been fixed. Notable issues that have been fixed will be noted here.

For Plugin Developers that use the API

All Nucleus API calls cannot be considered to be stable at this time. Do not build production plugins against the v2 API.

REMOVED: The Nucleus static object

I’m going to start with something that isn’t in the API - Nucleus.getNucleus(). I’ve had the occasional complaint that updates to Nucleus have broken some plugins that depend on it. It always turns out to be developers not asking for API additions (which I try to guarantee) but just decide to use Nucleus.getNucleus() everywhere. Don’t do it - I do not class that as part of the API and it was a horrible object that allowed me to be lazy. v2 is about stopping me being lazy.

You shouldn’t do it anyway, but you will not be able to do it at all in v2, because the Nucleus object has been deleted. Please use the API. If there is something missing from the API that you wish to use, please open a Github issue.

MODIFIED: The location of nearly everything

To try to make things a little more sane, all APIs are now classified by their module or overreaching theme first, rather than whether they are a service, event etc. This should make it simpler to see what APIs are available for each module.

MODIFIED: TeleportResults is now TeleportResult, an enum. Other CatalogTypes are now Suppliers

TeleportResult is now an enum. Other CatalogTypes are now represented by Suppliers to remove reliance on hacky reflection techniques.

REPLACED: NucleusMessageTokenService has been removed and replaced by NucleusPlaceholderService

The message token service has been completely removed. In its place, there is a NucleusPlaceholderService. Registration is no longer per plugin but per token, and the confusing variable system has been removed. Plugins can now simply register a token using the following:

NucleusAPI.getPlaceholderService().registerToken(PluginContainer, String, PlaceholderParser);

Nucleus Gluon v1 will no longer work for supporting placeholder API tokens.

REMOVED: Nucleus MessageChannels

These will be restored in a marker capacity only

In order to enable Nucleus formatting in chat events and to avoid future conflicts with other plugin message channels, Nucleus will now apply its formatting during the MessageChannelEvent.Chat event, and will no longer use MessageChannels for formatting. Nucleus will dynamically create message channels during the LATE priority.

As a result, no API for message channels is available in the API.

REMOVED: NucleusModuleService

The NucleusModuleService has been removed. Plugins wishing to disable modules should listen to the NucleusModuleEvent.AboutToConstruct event instead.

MODIFIED: All kinds of stuff

Please take a look through the API yourself for now. It’s all subject to change, but I have tried to add sensible documents. I will flesh out this section once we approach Beta.

For Developers considering contributing to Nucleus

Nucleus’ biggest changes have happened in this area. v2 no longer uses the static Nucleus object, but instead uses Guice and DI to create a series of cross cutting concerns to provide Nucleus wide actions. Commands, listeners and tasks should all have INucleusServiceCollection injected into themselves for access to these systems.

MODIFIED: Nucleus now uses Gradle 5.6.4

We have jumped from Gradle 4.10 to 5.6.4, as this is the last version that the SpongeGradle plugin has been tested with.

MODIFIED: Nucleus Implementation is now moved to the nucleus-core subproject

This gives a cleaner separation of the project, and allows for other sub projects to be added more easily. The root project now handles project wide actions only.

MODIFIED: Nucleus now uses the Kotlin DSL

The build scripts have been rewritten in Kotlin to improve type safety and being some more order to the scripts.


More information will be put on the website once things have settled.


Known Issues

1 Like

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


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

This was built from Nucleus commit: 95068d54

Release Notes

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

Minor Updates

  • Russian translations have been updated (thanks to bigenergy).
  • Chinese (Simplified) translations have been updated (thanks to Frost-ZX).
  • Allow /back to target unloaded (but enabled) worlds (thanks to GuusLieben).

Bugfixes

  • None

Known Issues

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


THIS IS FOR MINECRAFT 1.12.2, NOT 1.14.4. NUCLEUS JUST HAPPENS TO HAVE A VERSION NUMBER OF 1.14.4

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

This was built from Nucleus commit: c2fd9fd4

Release Notes

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

New Features

  • Add nucleus.exp.keepondeath permission for keeping XP across deaths.

Bugfixes

  • Try to ensure that staff chat persists over player deaths.
  • Don’t kick players who are allowed to join a full server when the server is whitelisted.

Known Issues

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


THIS IS FOR MINECRAFT 1.12.2, NOT 1.14.4. NUCLEUS JUST HAPPENS TO HAVE A VERSION NUMBER OF 1.14.4

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

This was built from Nucleus commit: c2fd9fd4

Release Notes

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

New Features

  • Add nucleus.exp.keepondeath permission for keeping XP across deaths.

Bugfixes

  • Try to ensure that staff chat persists over player deaths.
  • Don’t kick players who are allowed to join a full server when the server is whitelisted.

Known Issues

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


This is an beta version of Nucleus 2.0.0 for Sponge API version 7.2

THIS IS A BETA VERSION. IT MAY NOT BE STABLE. DO NOT USE ON PRODUCTION SERVERS

Please report any issues to Github Issues (Issues · NucleusPowered/Nucleus · GitHub) CLEARLY stating the version of Nucleus you are using.

This was built from Nucleus commit: 1a064be9

Release Notes

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


Nucleus 2.0

Nucleus 2 is a major rewrite of much of the base code. It is designed to make future work to the system simpler, easier to understand, and hopefully, easier for people to contribute to.

As it stands, Nucleus 2 is a BETA quality product. Please do not use it on production servers, but I would appreciate any testing I can get. I am only one person!

Here is a rundown of some of what is new, changed, removed, fixed and crucially, known to be broken.

PSA: Before you use Nucleus 2…

Nucleus 2 does not change how your data is stored, but the entire storage system has been completely rewritten. This is to enable database support which is currently slated for Q2 2020. There may be issues with the storage system that I have been unable to test that might cause unexpected data loss. If this happens, please tell me via Github Issues.

No migration is necessary for the following:

  • main.conf
  • info.txt and other info files
  • User data
  • World data
  • Kits, warps, and other general data

Nucleus 2 also uses a new format for the commands.conf file and no migrator is provided at this time as the format is likely to change further as I complete the plugin. Please inspect commands.conf when you load and make any necessary changes.

For Server Owners and Players

This list is not yet exhaustive. There is not yet a lot to talk about, but v2 is not yet feature complete.

For the things YOU need to do as a server owner, please visit our instructions on how to upgrade.

ADDED: Permission Levels/Powers for moderation tasks

Many of you have been asking “permission levels” because you don’t trust lower level staff to not abuse their powers and use them against higher level staff. They already existed for social spy, but now they exist for muting, jailing, kicking and banning. This feature allows you to give a numeric level to each player - by default, if your level is higher than the person you’re trying to act upon, your action will go through. By default, those with the same power for an action will not be able to affect each other.

Because this is an advanced feature, you must turn it on for the respective modules. The options in the mute, jail, kick, admin (for /sudo) and ban modules are:

  • use-permission-level: set to true to use permission levels
  • can-affect-same-level: set to true to let two players with the same permission level affect each other, false if not.

To specify a permission level, you have to give a specific permission option to the player in question. In LuckPerms, options are referred to as “meta”. The options you need to assign are specified in the config file (at least for now, will be on docs later), but for convenience, they are:

  • nucleus.ban.level
  • nucleus.jail.level
  • nucleus.kick.level
  • nucleus.mute.level
  • nucleus.sudo.level
  • nucleus.socialspy.level (this already existed)

No prizes for guessing which one is which! In LuckPerms, you would then specify the level an option using the command:

/lp user <user> meta set <option> <level>

For a ban level of 4 on dualspiral:

/lp user dualspiral meta set nucleus.ban.level 4

If a level is invalid or does not exist, having the permission to run the command you are running is considered a level of 1, not having the permission is considered a level of 0.

This has only been lightly tested. Please report any feedback on the system to me during your testing.

ADDED: Ability to specify arbitrary command names for Nucleus commands (EXPERIMENTAL)

Nucleus commands can now be given arbitrary command names in commands.conf under the “root level aliases” section, and Nucleus will attempt to register the command under that alias.

This feature is still subject to some testing, but I realised it was easy to add with the new codebase.

ADDED: Per User translation of Nucleus system messages

While Nucleus’ support for translation isn’t great and I’ve not been successful in getting a translation platform running (yet), Nucleus will support sending messages to players based on either:

  • The locale set via /nucleussetlanguage on a per-player basis; or
  • The client’s locale.

This will be available as we (hopefully) receive more translations.

You will be able to turn this off, of course, if you want all clients to see the same language.

ADDED: Permission context when running a Nucleus command

When a player is running a Nucleus command, they will obtain a permission context for the duration of that call. This context is nucleus_command, and will have a context value corresponding to the command in question - this can be seen by looking at the help page for the command in question.

ADDED: Compatibility Warning system

Nucleus comes packaged with information about known plugins and mods that conflict with its functions. These warnings may appear on startup, and on demand by running /nucleus compat.

ADDED: Kit data can now be reloaded from persistence on demand

I don’t recommend that you ever do this manually, but you can now update the kits data from persistence and reload it using /kit reload.

MODIFIED: Chat tokens no longer accept pl style tokens

Chat tokens work similar to before, but are no longer plugin namespaced (so, {{pl:[]}}. {{o:[]}} style tokens still work.

MODIFIED: The /tp alias for /teleport defaults to disabled

Many mods, such as JourneyMap, were using the /tp command to perform teleports

Other commands may get the same treatment if the Nucleus team figures that it would be in the best interest of the community.

MODIFIED: The /mute and /unmute, /jail and /unjail commands are no longer toggles

This also has the side effect of making these actions all require their own permission.

MODIFIED: Warps now always require the permission nucleus.warps.<name> to redeem

Until recently, this was a configuration toggle. This is no longer the case. To emulate the previous behaviour, simply grant the nucleus.warps permission.

MODIFIED: Permission Group Chat Templates

The original way Nucleus attempted to determine which group template to use when displaying chat formatting was unpredictable and was very slow as it had to collect a lot of data from a permissions plugin. This has now been removed.

Nucleus has supported a nucleus.chat.group permission option (meta in LuckPerms) for some time. This option is now the only way to determine the group template a permission group or user will use - falling back to the default if this does not match.

MODIFIED: Permission Group /list groups

For similar reasons to chat groups no longer relying on parent groups, /list no longer does either. Groups are now defined by the nucleus.list.group option/meta.
The group alias config has also been removed, as you can just provide them the same nucleus.list.group option value.

As a bonus, /list groups now use text colour codes in the group names.

REMOVED: Debug Mode

Nucleus will just spit out errors to the console now, as they should never happen (or if they do, you should know about them).

REMOVED: The Warnings module has been removed

It wasn’t used much and, honestly, it was actually pushing the boundaries as to what Nucleus really should be doing. There are no migration paths available as it stands, however plugin developers can use the Nucleus API to extract any warnings against a player if they wish to enable such migration.

REMOVED: The Server Shop module has been removed

It wasn’t used much, and it had many issues with it that were not simple to fix. There are no migration paths available.

REWRITTEN: Teleportation Routines

Player teleportation should now be more reliable as the base teleport code has been deleted and completely rebuilt.

REWRITTEN: Message channel support removed for higher compatibility with other plugins

Nucleus will no longer use message channels, instead using an in-house solution to support formatting with other mods, (and for reporting formatting to other plugins). However, when possible, the messsage channels will still be applied to the event so plugins can see that Nucleus is doing something with them.

BUG FIXES: Miscellaneous fixes

While many bugs might have been introduced, other bugs have been fixed. Notable issues that have been fixed will be noted here.

For Plugin Developers that use the API

All Nucleus API calls cannot be considered to be stable at this time. Do not build production plugins against the v2 API.

REMOVED: The Nucleus static object

I’m going to start with something that isn’t in the API - Nucleus.getNucleus(). I’ve had the occasional complaint that updates to Nucleus have broken some plugins that depend on it. It always turns out to be developers not asking for API additions (which I try to guarantee) but just decide to use Nucleus.getNucleus() everywhere. Don’t do it - I do not class that as part of the API and it was a horrible object that allowed me to be lazy. v2 is about stopping me being lazy.

You shouldn’t do it anyway, but you will not be able to do it at all in v2, because the Nucleus object has been deleted. Please use the API. If there is something missing from the API that you wish to use, please open a Github issue.

MODIFIED: The location of nearly everything

To try to make things a little more sane, all APIs are now classified by their module or overreaching theme first, rather than whether they are a service, event etc. This should make it simpler to see what APIs are available for each module.

MODIFIED: TeleportResults is now TeleportResult, an enum. Other CatalogTypes are now Suppliers

TeleportResult is now an enum. Other CatalogTypes are now represented by Suppliers to remove reliance on hacky reflection techniques.

REPLACED: NucleusMessageTokenService has been removed and replaced by NucleusPlaceholderService

The message token service has been completely removed. In its place, there is a NucleusPlaceholderService. Registration is no longer per plugin but per token, and the confusing variable system has been removed. Plugins can now simply register a token using the following:

NucleusAPI.getPlaceholderService().registerToken(PluginContainer, String, PlaceholderParser);

Nucleus Gluon v1 will no longer work for supporting placeholder API tokens.

REMOVED: Nucleus MessageChannels

These will be restored in a marker capacity only

In order to enable Nucleus formatting in chat events and to avoid future conflicts with other plugin message channels, Nucleus will now apply its formatting during the MessageChannelEvent.Chat event, and will no longer use MessageChannels for formatting. Nucleus will dynamically create message channels during the LATE priority.

As a result, no API for message channels is available in the API.

REMOVED: NucleusModuleService

The NucleusModuleService has been removed. Plugins wishing to disable modules should listen to the NucleusModuleEvent.AboutToConstruct event instead.

MODIFIED: All kinds of stuff

Please take a look through the API yourself for now. It’s all subject to change, but I have tried to add sensible documents. I will flesh out this section once we approach Beta.

For Developers considering contributing to Nucleus

Nucleus’ biggest changes have happened in this area. v2 no longer uses the static Nucleus object, but instead uses Guice and DI to create a series of cross cutting concerns to provide Nucleus wide actions. Commands, listeners and tasks should all have INucleusServiceCollection injected into themselves for access to these systems.

MODIFIED: Nucleus now uses Gradle 5.6.4

We have jumped from Gradle 4.10 to 5.6.4, as this is the last version that the SpongeGradle plugin has been tested with.

MODIFIED: Nucleus Implementation has been moved to the nucleus-core subproject

This gives a cleaner separation of the project, and allows for other sub projects to be added more easily. The root project now handles project wide actions only.

MODIFIED: Nucleus now uses the Kotlin DSL

The build scripts have been rewritten in Kotlin to improve type safety and being some more order to the scripts.


More information will be put on the website once things have settled, but you can have a look around now at https://v2-beta.nucleuspowered.org/docs.


Known Issues

Hi, is there any way to add a warmup to the /tppos command or to the vanilla /tpn command? I cannot find anything to make that happen, any thoughts?

Edit: I’m using journeymaps and I would love to have a warmup with the teleport feature we’re currently using /tppos or /tpn to make it work tho, maybe when implemented to the vanilla command it would be doable without any change in the options.

Edit2: Actually it would be awesome to have cooldowns, cost and warmups on every possible command even one’s that arent nucleus related is that even possible?

No to all your questions. It would be feasible to do it for /tppos I guess, and maybe for /tpn.

It most certainly won’t be possible to do it for non-Nucleus commands. Sponge is missing an event that would enable this - maybe I should look into adding that to Spogne.

Thanks for the reply, having it on one of the two (/tpn or /tppos) would already be great!