Very likely I was going to refactor this class, but then stopped since
it's abstract and thus can't have any constructor... but apparently I
forgot to revert that line.
Closes#377
If a player logs out then logs back in, and the task in the
PlayerJoinEvent rescues him first and the player has sat in the rescue
location for over 10 ticks (which should be within another portal), then
this task will also attempt to rescue the player. Because it was using
metadata in the log message though, it failed but also printed a
stacktrace since the player's metadata was already removed.
- Claim expiration collects all players (uuids) that own claims, and
iterates this set instead of iterating through every single claim.
- Individual claims had a "last modified" timestamp, so this method was
valid before, but makes no sense now since expiration is based on player
inactivity instead of claim inactivity.
New config option under the advanced node allows controlling the
frequency each player in the aforementioned set is checked for
inactivity.
[20:58:37] RoboMWM: hmmm it's a bit annoying how CB cuts off the
trailing 0 in my versions
[20:58:49] RoboMWM: e.g. 16.10 displays as 16.1
[20:59:02] +Choco: That seems... stupid? lol
[20:59:12] RoboMWM: very
[20:59:27] RoboMWM: plugin.yml inside jar reveals it to be correct
[20:59:43] RoboMWM: and afaik this is supposed to be a string so idk why
it's doing that
[21:00:49] RoboMWM: apparently wrapping it with single quotes does the
job
[21:01:33] +Choco: Maybe it assumes it's a double then converts it to a
String
[21:02:04] RoboMWM: I guess >_> since I stuck a test.16.10 without
quotes and it's all there
[21:02:09] RoboMWM: thank you yaml
[21:02:22] +Choco: What if you were to do 1.1.10?
[21:02:30] +Choco: Because that's not a valid number, maybe it would
assume String
[21:02:33] RoboMWM: the second dot probably makes it a string
[21:02:51] RoboMWM: maybe I should do 16.1O
[21:02:57] +Choco: lol that's cheating