Skip to content
This repository has been archived by the owner on Nov 3, 2022. It is now read-only.

Releases: NucleusPowered/Nucleus

Version 0.24.1 (for 1.10.2 and 1.12)

19 Feb 22:33
Compare
Choose a tag to compare

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

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

  • Fixed error where some broadcast templates used the server, rather than the viewing player, as the context for a token.
  • Fixes issue where the join message was not replaced correctly
  • Fixes breakage due to Sponge 5.1(!) and 6 breakages.

Version 0.24.0 (for 1.10.2 and 1.12)

19 Feb 18:21
Compare
Choose a tag to compare

Nucleus 0.24.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

Changes to the text parsing system

The big change for 0.24 is the way Text is parsed. This allows for a wealth of oppotunities, and the ability to cache messages more effectively. We no longer have to build complex text up from scratch.

Bear in mind there might be the odd formatting error. Please report them if you see them.

/invsee, addition of permission nucleus.invsee.modify.

This new permission allows server owners to set their staff to only being able to view an inventory. However, because this is a new permission, no-one (unless you've wildcarded) will have it, and you will need to add nucleus.invsee.modify to the appropriate groups.

Tightening of jails

So, something I hadn't realised is that I wasn't really protecting against jailed players being teleported out by /tphere. So, I've fixed that, and added a new Teleport event system to the API.

If you want to be able to teleport to jailed players, you now need the permission nucleus.jail.teleporttojailed. If you want to teleport players out but keep them jailed, you need the permission nucleus.jail.teleportjailed. Requests will never work against jailed players.

New Features

/broadcast and /plainbroadcast now accept tokens

Thanks to the new Text system, we can now do more powerful things with these commands. Adding a token (such as {{displayname}} or {{name}} to the message will now show each player a personalised message - the tokens will be parsed based on each player rather than the sender. The sender's name is accessible through the {{sender}} token.

Console and Player

This does not affect how the tokens for the prefix/suffix work - they will still be based on the sender.

Ability to turn more command aliases on/off in commands.conf

Until now, only some aliases for some commands could be switched on or off. This has been improved, so now nearly all secondary command aliases are controllable.

/invsee can now look but not touch!

This was covered in the important notices above, but to reiterate, /invsee now requires an extra permission nucleus.invsee.modify to change someone's inventory.

Inline warp descriptions

If you prefer, you can now display warp descriptions inline, rather than on hover. If you choose to do so (set warps.show-warp-description-in-list to true and reload), then the location and cost (if any) will be displayed in the hover instead.

/warps

Refreshed /jails and added /jails tp

The /jails list had not seen much work since the early days. It's now functionally equivelent to /warps, and a new command, /jails tp, has been introduced to warp to a jail.

/jails info no longer has any use as /jails holds all the information. It has been removed.

PlaceholderAPI integration (with a new plugin, Gluon)

Nucleus, with the help of a companion plugin, will be able to hook into PlaceholderAPI and vice-versa. By installing Gluon, the tag {%placeholder%} will become available where placeholder is any PlaceholderAPI expression, and will be parsed by PlaceholderAPI. Similarly, with any plugin that uses PlaceholderAPI, the tag %nucleus_[id]% will become available, where [id] could be anything that would normally go in {{ }} tokens, such as displayname and o:rank, etc.

A 1.0.2 release of Gluon will be attached here. It requires this version of Nucleus or higher, and PlaceholderAPI 3.5+ to run.

Refreshing players in the user cache

Occasionally, the Minecraft username cache gets out of sync with the rest of the system, and some commands that require a user fail. /nucleus getuser <UUID|Name> allows you to request updated information about a user from Mojangs server (via either a UUID or a current user name) and adds them to the cache - making them accessible again

New Permission contexts for jailed players

If a player is jailed, they will now have two extra contexts in their context set:

  • The nucleus_jailed context simply exists with value "true" if the player has been jailed.
  • The nucleus_jail context exists with the name of the jail they are in if they are jailed.

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

Developers - API updates

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

NucleusTextTemplates

NucleusTextTemplates is the basic object of how Nucleus now parses text. Other plugins can take advantage of them too, just create a template from the NucleusMessageTokenService. When you want to build the text using Nucleus tokens, you can call getForCommandSource(CommandSource) and Nucleus will put in all the tokens for you. There is also an overload to offer your own tokens for that message alone.

More Text Token API updates

In order to support Gluon, there are some new methods available for use:

  • getPrimaryTokens gets all primary tokens available
  • parseToken parses a token, regardless of whether it's a primary token or a plugin token
  • registerTokenFormat allows plugins to register their own token delimiters, like Gluon does for {% %}. This method basically allows for a translation from (in the Gluon example) {%token%} to something like {{pl:nucleus-gluon:token}}.

Read the JavaDocs for more information.

Added NucleusAPIMetaService

This service simply allows you to get the version of Nucleus this API was built for.

NucleusHomeService

A convenience method, modifyOrCreateHome, was added, which will update a home's location whether it has been created or not. Thanks to Mohron for his contribution!

NucleusTeleportEvent

Plugins can now prevent most teleportations and associated requests that Nucleus initiates, including the requests made by /tpa and /tpahere commands.

Minor Changes & Enhancements

  • Add ability to remove blue underlines from messages.
  • Add UUID to /world list
  • Make Nucleus fail more obviously if a module fails to load - as we reach 1.0 we now need stricter checks.

Bugfixes

  • Players can no longer teleport jailed players out of jail.
  • /warp now lets admins warp to warps that have names that are subsets of currently logged on players.
  • Enchantment data is now read correctly for items in kits.
  • Fix home service not registering.
  • Fix broken tab completion with /warp category * commands

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 (#506). If you have more information, please add it there.
  • Some players are finding that enhanced pre-generation isn't giving output (#528). 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.24.0-1.10.2-S5.1-plugin.jar
  • We recommend you try NucleusMixins: NucleusMixins-0.15.0-S5-mixinplugin.jar

I'm using Minecraft 1.11.2

Download Nucleus-0.24.0-1.11.2-S6.0-plugin.jar

I'm also using PlaceholderAPI 3.5 or above

In addition, download NucleusGluon-1.0.2.jar

Version 0.24.0-PR1 (for 1.10.2 and 1.12)

18 Feb 19:43
Compare
Choose a tag to compare

This is a preview release. Not all the testing that you would come to expect has been performed on this build for a very specific reason - this is a stable testing build for testing the new Text templating system

This is the first pre-release for 0.24.x. It is anticipated that this will be representative of the 0.24 release.

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

Important Changes & Notices

Changes to the text parsing system

The big change for 0.24 is the way Text is parsed. This allows for a wealth of oppotunities, and the ability to cache messages more effectively. We no longer have to build complex text up from scratch.

Bear in mind there might be the odd formatting error. Please report them if you see them.

/invsee, addition of permission nucleus.invsee.modify.

This new permission allows server owners to set their staff to only being able to view an inventory. However, because this is a new permission, no-one (unless you've wildcarded) will have it, and you will need to add nucleus.invsee.modify to the appropriate groups.

New Features

/broadcast and /plainbroadcast now accept tokens

Thanks to the new Text system, we can now do more powerful things with these commands. Adding a token (such as {{displayname}} or {{name}} to the message will now show each player a personalised message - the tokens will be parsed based on each player rather than the sender. The sender's name is accessible through the {{sender}} token.

Console and Player

This does not affect how the tokens for the prefix/suffix work - they will still be based on the sender.

Ability to turn more command aliases on/off in commands.conf

Until now, only some aliases for some commands could be switched on or off. This has been improved, so now nearly all secondary command aliases are controllable.

/invsee can now look but not touch!

This was covered in the important notices above, but to reiterate, /invsee now requires an extra permission nucleus.invsee.modify to change someone's inventory.

Inline warp descriptions

If you prefer, you can now display warp descriptions inline, rather than on hover. If you choose to do so (set warps.show-warp-description-in-list to true and reload), then the location and cost (if any) will be displayed in the hover instead.

/warps

Refreshed /jails and added /jails tp

The /jails list had not seen much work since the early days. It's now functionally equivelent to /warps, and a new command, /jails tp, has been introduced to warp to a jail.

/jails info no longer has any use as /jails holds all the information. It has been removed.

PlaceholderAPI integration (with a new plugin, Gluon)

Nucleus, with the help of a companion plugin, will be able to hook into PlaceholderAPI and vice-versa. By installing Gluon, the tag {%placeholder%} will become available where placeholder is any PlaceholderAPI expression, and will be parsed by PlaceholderAPI. Similarly, with any plugin that uses PlaceholderAPI, the tag %nucleus_[id]% will become available, where [id] could be anything that would normally go in {{ }} tokens, such as displayname and o:rank, etc.

A 1.0 release of Gluon will be attached here. It requires this version of Nucleus or higher, and PlaceholderAPI 3.4 to run.

Developers - API updates

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

NucleusTextTemplates

NucleusTextTemplates is the basic object of how Nucleus now parses text. Other plugins can take advantage of them too, just create a template from the NucleusMessageTokenService. When you want to build the text using Nucleus tokens, you can call getForCommandSource(CommandSource) and Nucleus will put in all the tokens for you. There is also an overload to offer your own tokens for that message alone.

More Text Token API updates

In order to support Gluon, there are some new methods available for use:

  • getPrimaryTokens gets all primary tokens available
  • parseToken parses a token, regardless of whether it's a primary token or a plugin token
  • registerTokenFormat allows plugins to register their own token delimiters, like Gluon does for {% %}. This method basically allows for a translation from (in the Gluon example) {%token%} to something like {{pl:nucleus-gluon:token}}.

Read the JavaDocs for more information.

Added NucleusAPIMetaService

This service simply allows you to get the version of Nucleus this API was built for.

NucleusHomeService

A convenience method, modifyOrCreateHome, was added, which will update a home's location whether it has been created or not. Thanks to Mohron for his contribution!

Minor Changes & Enhancements

  • Add ability to remove blue underlines from messages.
  • Add UUID to /world list

Bugfixes

  • /warp now lets admins warp to warps that have names that are subsets of currently logged on players.
  • Enchantment data is now read correctly for items in kits.
  • Fix home service not registering.
  • Fix broken tab completion with /warp category * commands

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 (#506). If you have more information, please add it there.
  • Some players are finding that enhanced pre-generation isn't giving output (#528). 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

Downloads

Note that there are now two downloads for Sponge 5/1.10.2 servers. The mixinplugin is optional, but recommended, particularly for vanilla servers.

Version 0.23.2 (for 1.10.2 and 1.12)

16 Feb 22:11
Compare
Choose a tag to compare

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

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

  • Fixes an error where /tppos was using the x coordinate for the z coordinate
  • Added option to remove the blue underline Minecraft adds to chat when it thinks it detects a link (Nucleus takes this over, so it's not needed most of the time)

Version 0.23.1 (for 1.10.2 and 1.12)

14 Feb 22:29
Compare
Choose a tag to compare

This is a bug fix release for Nucleus. For the new features in the 0.23.x series, please read the 0.23.0 release notes. No new features have been added, no APIs have been changed.

  • Fixes an error with some message templates.

Version 0.23.0 (for 1.10.2 and 1.12)

14 Feb 18:23
Compare
Choose a tag to compare

Nucleus 0.23.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.

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

Changes to the internal data handlers

The big change for 0.23 is the way the data files are read and written. Server owners do not need to care about this, but please consider taking a backup of the /nucleus data folder before updating.

Permission changes: other becomes others

Some commands have permissions that allow you to act upon others. There was a horrible mix of *.other and *.others permissions - this has been rationalised and now, the standard suffix for targetting others is *.others. This might break some permission setups, but this allows for better consistency going forward.

New Features

Descriptions for Warps and Warp Categories

Warp categories now have descriptions and display names, which also accept colour codes. They will be displayed on the /warps list, and can be managed using the following commands.

  • /warp category list - lists all categories
  • /warp category setdisplayname [category] [& encoded name] - sets a display name for a category.
  • /warp category setdescription [category] [& encoded description] - sets a description for a category.
  • /warp category removedisplayname [category] - removes the display name for a category.
  • /warp category removedescription [category] - removes the description for a category.

Running the following commands for my "test" category:

  • /warp category setdisplayname test "&4Test &7Category"
  • /warp category setdescription test "&bThis is a &ltest description"

gives me the following.

warpcat

Warps can also have their own description, but for space reasons, these descriptions will be put into the hover that appears when you hover over a warp link. They can be set using the following command (or use -r to remove the description):

  • /warp setdescription [-r] [warp] [& encoded description]

So, on my warp "hello2", I could run the command /warp setdescription hello2 "This is the warp location &awhere you will be greeted with a sunny disposition and a gentle wave of a hand!" to get:

warp

Console can now bypass exemption permissions

In main.conf, a new option has been added: core.console-overrides-exemptions. This defaults to true - the console now has permission to override a player's specific exemption permissions (such as ban exemptions, etc.). If you would rather the console did not have these permissions (for those of you that might share the console), you can set this to false to retain original behaviour.

Updates to staff chat

Staff chat is now consistent whether you use /sc to toggle or /sc message to send a one-off message. Server owners can now control whether staff chat is formatted like Nucleus chat or not by setting the option staff-chat.include-standard-chat-formatting

/tppos to chunks!

/tppos now has a -c flag, which, if specified, will let you teleport to a specified chunk. Usage: /tppos -c <chunk co-ords>.

Selecting ALL the selectors!

@a will be pleased to know that you can now use standard Minecraft selectors in more Nucleus commands - including those that allowed you to use a nickname! However, I have removed individual permission support for each selector type - if you can target a player, you can use a selector (unless Sponge restricts it in some way, I'm not sure).

A side effect is that /lightning and /kill also accept the @e selector.

Any Nucleus selectors you were using will no longer function if they look different to Minecraft's selectors.

Presets (WorldArchetypes) in /world create

By using the -p flag, you can now specify a preset world type - to create a void world, you can now run /world create -p the_void <name>, and to create a skylands world, /world create -p the_skylands <name>. Other presets might be available.

/ban and /seen by UUID.

You can now ban a player, or look up their info, by using a UUID as the argument.

Sprucing up the usage/help window

Subcommands and command arguments are now separate. Subcommands can be clicked to suggest the command, or shift clicked to suggest the help command.

usage2

Any command that is simply a parent for subcommand (like /world) will now display this usage instead of the old error message.

usage1

This separation will make its way to the docs site shortly.

Developers - API updates

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

Javadocs: http://jd.nucleuspowered.org/

Please note that any interface ending in the word Service is obtainable during GamePostInitializationEvent (on orders of EARLY or later), or at any point past this.

Updated: NucleusMessageTokenService (Text Token API)

I realised that it was somewhat unfair of me to relegate plugins to a "second class" token (like {{pl:nucleus:token}}, so I've added a way to add what I call primary tokens. Now, you can register IDs with the NucleusMessageTokenService. Register your token provider like normal, use registerPrimaryToken to register your preferred alias! So, if you register token for your plugin with id plugin and identifier token, {{token}} becomes an alias for {{pl:plugin:token}}.

You can also account for variables too. If you register {{token}}, you will also recieve any token that starts with {{token| - so {{token|data}} will be translated to {{pl:plugin:token|data}}, and your TokenParser will recieve token|data.

Updated: Warp API

Addition of Warp Category methods

New methods have been added to the NucleusWarpService to allow developers to access the warp/warp category descriptions and display names.

Notice of Deprecation

The following previously marked Stable methods on NucleusWarpService have been deprecated. They will be removed in a future version of Nucleus.

  • Map<String, List<Warp>> getCategorisedWarps()
  • Map<String, List<Warp>> getCategorisedWarps(Predicate<Warp>)

Their replacements are as follows:

  • Map<WarpCategory, List<Warp>> getWarpsWithCategories()
  • Map<WarpCategory, List<Warp>> getWarpsWithCategories(Predicate<Warp>)

New: AFK API

The AFK API has two components

NucleusAFKService

This service allows plugins to probe information about a player's AFK status, when their last activity was, and whether or not they can go AFK or be kicked.

AFK Events

There are events to monitor when a player goes AFK, returns from AFK, and when they are about to be kicked for being inactive for too long.

New: Server Shop API

The NucleusServerShopService allows you to get the current buy and sell prices for items you specify.

Minor updates

  • Added API: NucleusNoIgnoreChannel - any channel that implements this interface will not be processed by the ignore module - that is, these messages cannot be ignored.
  • Updated API: NucleusNoFormatChannel - there are now two functions that controls what the chat module will do with the messages.

Minor Changes & Enhancements

  • First join date is now viewable on /seen even if the player is offline.
  • Enable tab completion of player names in /bc, /sc, /me
  • Add others permission to /tppos
  • Added namestyle option for usernames, works in the same way as chatstyle.
  • Make it more obvious when startup fails due to a config error.
  • All negative weights for /list groups
  • Add ability to disable commands intended for specific implementations of Sponge.
  • Allow tab completion of user names in /me, /bc, /sc.

Bugfixes

  • /me and /sc now let you use double quote marks in messages.
  • Prevent flying on world switch if the player does not have permission in the new world.
  • If enabled, force first spawn location on tick after join - fixing issues where a player might not spawn in the expected place when they join for the first time.
  • /kickall now actually supports -w for whitelisting a server.

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 (#506). If you have more information, please add it there.
  • Some players are finding that enhanced pre-generation isn't giving output (#528). This will work fine in 1.11.x.
  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission p...
Read more

Version 0.23.0-PR2 (for 1.10.2 and 1.12)

12 Feb 17:17
Compare
Choose a tag to compare

This is a preview release. Not all the testing that you would come to expect has been performed on this build for a very specific reason - this is a stable testing build for testing the new Data modularisation system and other internal optimisations

This is the second pre-release for 0.23.x. It is anticipated that this will be representative of the 0.23 release.

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

Important Changes & Notices

Changes to the internal data handlers

The big change for 0.23 is the way the data files are read and written. If all goes well, server owners will not care, no migration steps are required. The new system is for ongoing maintainence. However, please keep an eye on performance, and keep a backup before using this! I strongly advise you test this on a small-ish test base first.

PR2: I fixed an error with muting players - but that seems to be the only problem I've found so far.

Permission changes: other becomes others

Some commands have permissions that allow you to act upon others. There was a horrible mix of *.other and *.others permissions - this has been rationalised and now, the standard suffix for targetting others is *.others. This might break some permission setups, but this allows for better consistency going forward.

New Features

PR2: Descriptions for Warps and Warp Categories

Warp categories now have descriptions and display names, which also accept colour codes. They will be displayed on the /warps list, and can be managed using the following commands.

  • /warp category list - lists all categories
  • /warp category setdisplayname [category] [& encoded name] - sets a display name for a category.
  • /warp category setdescription [category] [& encoded description] - sets a description for a category.
  • /warp category removedisplayname [category] - removes the display name for a category.
  • /warp category removedescription [category] - removes the description for a category.

Warps can also have their own description, but for space reasons, these descriptions will be put into the hover that appears when you hover over a warp link. They can be set using the following command (or use -r to remove the description):

  • /warp setdescription [-r] [warp] [& encoded description]

PR2: Console can now bypass exemption permissions

In main.conf, a new option has been added: core.console-overrides-exemptions. This defaults to true - the console now has permission to override a player's specific exemption permissions (such as ban exemptions, etc.). If you would rather the console did not have these permissions (for those of you that might share the console), you can set this to false to retain original behaviour.

Updates to staff chat

Staff chat is now consistent whether you use /sc to toggle or /sc message to send a one-off message. Server owners can now control whether staff chat is formatted like Nucleus chat or not by setting the option staff-chat.include-standard-chat-formatting

/tppos to chunks!

/tppos now has a -c flag, which, if specified, will let you teleport to a specified chunk. Usage: /tppos -c <chunk co-ords>.

Selecting ALL the selectors!

@a will be pleased to know that you can now use standard Minecraft selectors in more Nucleus commands - including those that allowed you to use a nickname! However, I have removed individual permission support for each selector type - if you can target a player, you can use a selector (unless Sponge restricts it in some way, I'm not sure).

A side effect is that /lightning and /kill also accept the @e selector.

Any Nucleus selectors you were using will no longer function if they look different to Minecraft's selectors.

Presets (WorldArchetypes) in /world create

By using the -p flag, you can now specify a preset world type - to create a void world, you can now run /world create -p the_void <name>, and to create a skylands world, /world create -p the_skylands <name>. Other presets might be available.

Developers - API updates

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

PR2: Text Token API updates

I realised that it was somewhat unfair of me to relegate plugins to a "second class" token (like {{pl:nucleus:token}}, so I've added a way to add what I call primary tokens. Now, you can register IDs with the NucleusMessageTokenService. Register your token provider like normal, use registerPrimaryToken to register your preferred alias! So, if you register token for your plugin with id plugin and identifier token, {{token}} becomes an alias for {{pl:plugin:token}}.

You can also account for variables too. If you register {{token}}, you will also recieve any token that starts with {{token| - so {{token|data}} will be translated to {{pl:plugin:token|data}}, and your TokenParser will recieve token|data.

Updated Warp API

Addition of Warp Category methods

New methods have been added to the NucleusWarpService to allow developers to access the warp/warp category descriptions and display names.

Notice of Deprecation

The following previously marked Stable methods on NucleusWarpService have been deprecated. They will be removed in a future version of Nucleus.

  • Map<String, List<Warp>> getCategorisedWarps()
  • Map<String, List<Warp>> getCategorisedWarps(Predicate<Warp>)

Their replacements are as follows:

  • Map<WarpCategory, List<Warp>> getWarpsWithCategories()
  • Map<WarpCategory, List<Warp>> getWarpsWithCategories(Predicate<Warp>)

Minor updates

  • Added API: NucleusNoIgnoreChannel - any channel that implements this interface will not be processed by the ignore module - that is, these messages cannot be ignored.
  • Updated API: NucleusNoFormatChannel - there are now two functions that controls what the chat module will do with the messages.

Minor Changes & Enhancements

  • PR2: First join date is now viewable on /seen even if the player is offline.
  • PR2: Enable tab completion of player names in /bc, /sc, /me
  • PR2: Add others permission to /tppos
  • Added namestyle option for usernames, works in the same way as chatstyle.
  • Make it more obvious when startup fails due to a config error.
  • All negative weights for /list groups
  • Add ability to disable commands intended for specific implementations of Sponge.

Bugfixes

  • /me and /sc now let you use double quote marks in messages.
  • Prevent flying on world switch if the player does not have permission in the new world.
  • If enabled, force first spawn location on tick after join - fixing issues where a player might not spawn in the expected place when they join for the first time.

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 (#506). If you have more information, please add it there.
  • Some players are finding that enhanced pre-generation isn't giving output (#528). 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

Downloads

Note that there are now two downloads for Sponge 5/1.10.2 servers. The mixinplugin is optional, but recommended, particularly for vanilla servers.

Version 0.23.0-PR1 (for 1.10.2 and 1.11)

10 Feb 20:05
Compare
Choose a tag to compare

This is a preview release. Not all the testing that you would come to expect has been performed on this build for a very specific reason - this is a stable testing build for testing the new Data modularisation system.

This is the first pre-release for 0.23.x. There may be more to come for 0.23.x.

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

IMPORTANT: Changes to the internal data handlers

The big change for 0.23 is the way the data files are read and written. If all goes well, server owners will not care, no migration steps are required. The new system is for ongoing maintainence. However, please keep an eye on performance, and keep a backup before using this! I strongly advise you test this on a small-ish test base first.

Developers: API updates

Repository: 'http://repo.drnaylor.co.uk/artifactory/list/minecraft'.
Dependency (for this version): 'io.github.nucleuspowered:nucleus-api:0.23.0-S5.1-PR1'

  • Added API: NucleusNoIgnoreChannel - any channel that implements this interface will not be processed by the ignore module - that is, these messages cannot be ignored.
  • Updated API: NucleusNoFormatChannel - there are now two functions that controls what the chat module will do with the messages.

Updates to staff chat

Staff chat is now consistent whether you use /sc to toggle or /sc message to send a one-off message. Server owners can now control whether staff chat is formatted like Nucleus chat or not by setting the option staff-chat.include-standard-chat-formatting

/tppos to chunks!

/tppos now has a -c flag, which, if specified, will let you teleport to a specified chunk. Usage: /tppos -c <chunk co-ords>.

Selecting ALL the selectors!

@a will be pleased to know that you can now use standard Minecraft selectors in more Nucleus commands - including those that allowed you to use a nickname! However, I have removed individual permission support for each selector type - if you can target a player, you can use a selector (unless Sponge restricts it in some way, I'm not sure).

A side effect is that /lightning and /kill also accept the @e selector.

Any Nucleus selectors you were using will no longer function if they look different to Minecraft's selectors.

Presets (WorldArchetypes) in /world create

By using the -p flag, you can now specify a preset world type - to create a void world, you can now run /world create -p the_void <name>, and to create a skylands world, /world create -p the_skylands <name>. Other presets might be available.

Other minor features are:

  • Added namestyle option for usernames, works in the same way as chatstyle.
  • Make it more obvious when startup fails due to a config error.
  • All negative weights for /list groups
  • Add ability to disable commands intended for specific implementations of Sponge.

There has also been a few bugfixes in this release:

  • /me and /sc now let you use double quote marks in messages.
  • Prevent flying on world switch if the player does not have permission in the new world.
  • If enabled, force first spawn location on tick after join - fixing issues where a player might not spawn in the expected place when they join for the first time.

There are some known issues and things that you should be aware of:

  • /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 (#506). If you have more information, please add it there.
  • Some players are finding that enhanced pre-generation isn't giving output (#528). 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.

A note on GeoIP

GeoIP is disabled by default, and once enabled, will require you accept the third party library licences that are now included in the Jar. We ask that you use the feature responsibly, while we display public data, we understand the privacy concerns.

To use GeoIP, set modules.geo-ip to ENABLED and restart, then set geo-ip.accept-licences to true and run /nucleus reload. The command /geoip update and /geoip <player> will be available to you, requiring the nucleus.geoip.base permission. To display information on login to staff, grant the permission nucleus.geoip.login.

See http://nucleuspowered.org/thirdparty/geoip.html

Commit history:

For best results please use the latest SpongeForge or SpongeVanilla builds. Fixes that have been added to SpongeForge/SpongeVanilla include those discovered during Nucleus development - using newer builds will ensure that Nucleus runs smoother on your servers! Before reporting issues, make sure you are running these latest builds!

Leave your feedback, issues, complaints and feature requests on the forum post or in GitHub issues. This release was created with the help of those who test and report issues, thanks to everyone who played a part!

https://forums.spongepowered.org/t/wip-nucleus-the-ultimate-essentials-plugin-a-joint-project-between-dualspiral-and-hassans6000/11792

Downloads

Note that there are now two downloads for Sponge 5/1.10.2 servers. The mixinplugin is optional, but recommended, particularly for vanilla servers.

Version 0.22.0 (for 1.10.2 and 1.11)

05 Feb 16:03
Compare
Choose a tag to compare

Nucleus 0.22.0 is available for Sponge API 5.1 and is compatible with current builds for 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.

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 NOTE (from 0.21.0)

I've tightened an item ID check, so some items that you may have used in the shop module, for example, may no longer work and need to be redefined. Indeed, they may not be, but this is to ensure consistency in the future. Sorry for any inconvenience.

Developers: API updates

Repository: 'http://repo.drnaylor.co.uk/artifactory/list/minecraft'.
Dependency (for this version): 'io.github.nucleuspowered:nucleus-api:0.22.0-S5.1'

  • Added NucleusFirstJoinEvent to allow other plugins to detect when Nucleus thinks a player has joined for the first time.
  • Added NucleusChatChannel and NucleusNoFormatChannel for plugin developers to detect when Staff Chat or /me is being used (see NucleusChatChannel subinterfaces) and the NucleusNoFormatChannel to determine when Nucleus won't touch a message.

List has been turbocharged. Again

More bug fixes here, but /list should now use the weights properly. I've written tests to make sure this worked properly this time!

BETA: Added support for disabling player-player collisions

Just turn it on within the protection module. However, it's seen limited testing, and feedback on this feature will be helpful.

Enhanced /exp commands

You can now use levels in /exp give and /exp take. You can specify that you are using levels by either placing an L before or after the number, (/exp give dualspiral L30 or /exp take dualspiral 30L will both work

Other minor features in this release:

  • Added logon message when a player changes their Minecraft IGN.

There has also been a few bugfixes in this release:

  • Fixed a problem with first join being fired repeatedly.
  • Fixed /tpa and /tpahere sending requests to those who disabled teleport requests. (/tptoggle)

There are some known issues and things that you should be aware of:

  • /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 and beyond once I add support for it.
  • While we don't plan to make changes to the data files, things might change. These will be stabilised by 1.0
  • Sometimes, an incorrect custom prefix might be selected. Nucleus uses whatever the permission plugin hands back, check your inheritance with the permissions plugin.

A note on GeoIP

GeoIP is disabled by default, and once enabled, will require you accept the third party library licences that are now included in the Jar. We ask that you use the feature responsibly, while we display public data, we understand the privacy concerns.

To use GeoIP, set modules.geo-ip to ENABLED and restart, then set geo-ip.accept-licences to true and run /nucleus reload. The command /geoip update and /geoip <player> will be available to you, requiring the nucleus.geoip.base permission. To display information on login to staff, grant the permission nucleus.geoip.login.

See http://nucleuspowered.org/thirdparty/geoip.html

Commit history:

For best results please use the latest SpongeForge or SpongeVanilla builds. Fixes that have been added to SpongeForge/SpongeVanilla include those discovered during Nucleus development - using newer builds will ensure that Nucleus runs smoother on your servers! Before reporting issues, make sure you are running these latest builds!

Leave your feedback, issues, complaints and feature requests on the forum post or in GitHub issues. This release was created with the help of those who test and report issues, thanks to everyone who played a part!

https://forums.spongepowered.org/t/wip-nucleus-the-ultimate-essentials-plugin-a-joint-project-between-dualspiral-and-hassans6000/11792

Downloads

Note that there are now two downloads for Sponge 5/1.10.2 servers. The mixinplugin is optional, but recommended, particularly for vanilla servers.

Version 0.21.1 (for 1.10.2 and 1.11)

03 Feb 19:35
Compare
Choose a tag to compare

This is a bug fix release:

  • Fixes /sudo <player> c: adding an extra prefix.
  • Fixes issues with AFK messages and /vanish

For more information on the 0.21.x releases, please see the 0.21.0 annoucement.