Please note
Despite this being a minor version bump does it contain breaking changes due to the API being updated from v1 to v2 which has its own set of breaking changes (See this Release for details)
Also, while the plugin has been tested using the asl-mockup
plugin could there be bugs and compatability issues. Please report them when you encounter any.
Removed API module
The api
module has been removed. Instead is the separate asl-api
repository used for the actual API stuff, meaning that the plugin will now use the same API as you would when hooking into it.
Added PreServerListSetEvent
This event is fired whenever AdvancedServerList is about to alter the server list for a player. It allows you to modify the used ProfileEntry or even cancel the event to not have the server list changed.
Fixed =
condition not working when surrounded by spaces
If you had a =
(equals) condition and the =
was surrounded by spaces would this break the check, as an expression like value1 = value1
would check "value1 "
with " value1"
which obviously aren't equal.
The plugin now removes any leading and trailing spaces from the left and right side of the expression before evaluating the condition.
This is a HUGE update as it brings a lot of changes to AdvancedServerList, including a brand new API to hook into!
New API
A completely new API has been created to allow plugins to provide their own placeholders to parse in AdvancedServerList. How you can hook and use this API is explained on the new Wiki here: https://www.andre601.ch/AdvancedServerList/api/
AdvancedServerList is using this API internally for the player and server placeholders you can already use.
A mockup paper plugin is also available for you to see how it could look like. I've tested it and it works:
New Wiki
As mentioned is there also a new wiki you can visit. The old one - while working fine - simply wasn't nice in terms of look or available features. With the new wiki I can customize it more. The link is - again - https://www.andre601.ch/AdvancedServerList/
The source of this wiki is also in this repository, located under the docs/
directory. PRs always welcome if they improve things.
I really hope this update brings new functionality to AdvancedServerList. I've put a lot of effort into it. I started this over a month ago and am really happy now to publish it.
My next goals are to expand the API further... If you have any ideas, let me know. I'm always open for feedback!
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!