The removeExtraBlocks() method was changed, in order to include all
arena blocks. The previous version did not remove all extra blocks,
as it was using the getArenaSize() method inside the for-loop, which
returns a different integer depending on the challengers.
To fix that, I've implemented the '_arenaStartSize' field to store the
starting arena size value that is used in the map generation method.
Separated functionality into different methods in order to improve
readability and maintainability. All four abstract methods were
updated, in order to make sure they work as intended without any
second thoughts.
Moreover, a PlayerQuitEvent listener was added to remove players from
the '_cooldown' array list and a null check in the onEnd method, to
prevent any null pointer exceptions.
Also, there were some minor display changes, regarding titles and chat
messages on the moveTextAndSound() and cannotMoveTextAndSound() methods.
Lastly, the bedrock layer was removed from map generation.
Added comments on game classes, except challenges
and statistics trackers.
Removed challenge validity checks from onCollide method in Anvil Dance
and Falling Blocks, since that is now handled on the Collide method
located in the main game class.
Separated functionality into different methods in order to improve
readability and maintainability. All four abstract methods were
updated, in order to make sure they work as intended without any
second thoughts.
Also, a new PlayerQuitEvent listener is added, in order to remove
players from the '_survivedWaves' hash map, which keeps track of
the waves every player survived.
Lastly, onCollide if-statement logic was reversed to reduce and
simplify the lines of code inside the method.