This update improves the way players are cached. It brings somewhat breaking changes.
New Player caching
AdvancedServerList now stores cached players as a JSON Array of JSON objects in a playercache.json file.
When a player joins your server/network will it now collect and save the following information when disabling:
- IP for identification
- Player name
- Player UUID
A quick example using myself (actual file would be minified by Gson):
[
{
"ip": "127.0.0.1",
"name": "Andre_601",
"uuid": "286f8d0c-b571-4720-b7ab-f2929cb38120"
}
]
Placeholder changes
With the above changes are there also changes to the available placeholders.
Namely, ${player uuid} can now be used across all platforms and not just Spigot/Paper like in the previous versions.
In addition was a new option called unknown_player_uuid added to the config.yml. This String option would have the UUID used for ${player uuid} should the pinging player be unknown (not cached) by AdvancedServerList yet.
It defaults to 606e2ff0-ed77-4842-9d6c-e1d3321c7838 which is the UUID of MHF_Question.
OfflinePlayer handling in Spigot and Paper
With the Cache changes were also changes made to how AdvancedServerList obtains OfflinePlayer instances. It now uses UUID instead of player names to obtain an OfflinePlayer instance.
Please let me know if this has any unwanted side-effects for you.
What comes next?
The next major plan is to release v2 of AdvancedServerList, which brings an API for providing your own Placeholder values! You can check out #38 for further info and progress (Spoiler: It's pretty much done by now).
This update should fix some NullPointerExceptions caused by Boolean being nullable.
It now uses a own class to guarantee a not-null value being returned.
This update adds a better Version check system to replace the other one.
The main issue with the old one was/is, that it only expects n.n.n patterns, so a version like the previous one (1.10.0-b1) would break it.
Additionally have I removed some debug lines I left in by accident. Sorry for the console spam.
I also consider this a proper release now!
This update is a rather big one, as it adds a new profiles option to the serve list profile.
Profiles
The Server List profile can now have a profiles option. This is a list that contains the different Options in a server list profile.
As an example:
profiles:
- motd:
- Line 1
- Line 2
playerCount:
text: Hey!
is the same as...
motd:
- Line 1
- Line 2
playerCount:
text: Hey!
The main differences are...
- You can have multiple entries.
- Whenever an option is not set in a entry, will the global one (The option you usually have in the file) be used as replacement. This allows you to only modify specific parts while keeping others the same.
Breaking changes!
There are unfortunately breaking changes to this release.
The previously introduced motds option has been removed in favour of this new option. This means that motd is the default again and no longer deprecated.
I've written a small migration guide for those that used the motds option to see how they can migrate.
Link: https://github.com/Andre601/AdvancedServerList/wiki/Migrate-from-v1.9.0-to-v1.10.0
You can now add multiple MOTDs to a Server list profile.
To not break compatability with the motd option is this new feature available as a separate option called motds that takes priority over motd if both are present.
Note that the syntax is a little bit different for this option. Instead of each entry being a line is each entry the MOTD, meaning you have to use the |- option of YAML like this:
motds:
- |-
MOTD 1
One of the MOTDs
- MOTD 2
Another MOTD