Beastmaster wolf spawning suffered from the same issue as the Wizards
"Summon Wolves" spell: spigot has an issue when setting an owner to a
wolf or ocelot without a previous owner. See SpigotUtil for details.
Elo and Division should be displaying properly
Cleaned the code up a bit
Added endElo() to Game.java to handle team Elo code
Added event listener to check for GameState.End in TDM to call endElo()
This fixes the Summon Wolves spell in Wizards.
Explanation:
- Wolves keep track of their most recent owner.
- When a wolf is assigned a new owner, it updates the data
watcher with the new owner's UUID
- During this process, the old owner's UUID is checked
against the new one
- If the wolf didn't have a previous owner, the old owner's
UUID is the empty string.
- UUID.fromString() is called on the empty string, and throws
an exception.
Previously, cannon explosions effects could lock up the main thread if:
- The effect location selection RNG was sufficiently unlucky
- The explosion occured sufficiently deep into a larger claimed
territory
The new challenge selection system, picks a random challenge from
the list as a starting point. Once the challenge is ended, the next
one in the list will be selected. That process continues, until the
index is out of bounds, and from that point, a new starting point
will be selected. During that process, any challenge that is picked,
is also reviewed to make sure it's suitable according to the player
count. If that's not the case, the selection process will continue
until one challenge is found. If there is no appropriate challenge,
the game will be ended.
In addition to those changes, there are a couple of bug fixes and changes.
At first, some methods that keep track of player lists were renamed and
secondly, the enchantment lore is now hidden on challenges that use items.
Consequently, elo code is actually being called now
Bukkit.broadcastMessage calls have shown where things are breaking
handleElo() added to EloManager to facilitate movement of team elo code
preparing to use EloManager's getNewRatings() method to
calculate team elos