Communities will only be refreshed if:
- We know (via redis message) that the community has been changed (e.g.,
if a member joins/leaves, if an invite is sent, ...).
- Five minutes have passed since a full refresh
This is to fix a troublesome race condition occurring between Mineplexer
and Core. Simply put, the following steps occur normally:
1) Player logs in via Bungee
2) If there is no PlayerInfo entry, PlayerStats inserts a PlayerInfo entry
into Redis
3) CoreClientManager looks for the PlayerInfo entry and finds it
4) If the PlayerInfo entry was just inserted, it will have accountId=0.
CoreClientManager sees this and updates it to a valid accountId, then
reinserts into Redis
5) All is good
However, sometimes Step 3 occurs before Step 2 (perhaps latency to Redis
is a factor), and so CoreClientManager
sees a null entry and ignores it. Then, an invalid PlayerInfo entry is
inserted with accountId=0, which then breaks any SQL queries relying on an
valid accountId
Negative yaw values are considered valid in minecraft.
UtilShapes doesn't correctly handle negative yaw values
(throws an ArrayIndexOutOfBoundsException) so whenever
a player is facing east they're unable to activate Frost
Barrier.
This commit fixes the issue by allowing UtilShapes to take
negative values.
Currently players are unable to drop items if the held item
slot is below 5. This works fine when dropping items simply
by pressing q, but it often interferes with players dropping
items from an open inventory. This commit changes the check
to iterate over the first five slots and only cancel the event
if they're dropping one of them.
While the name of the gold items is "Golden X", the
name of the material is "GOLD X" resulting in gold items
providing no protective benefit other than the default
vanilla protection(in the case of there being only gold
armor).