Added Default Options for WaveSystem and methods to get child items
Replaced inGame and inLobby variables with is null check, added
hasPlayerClass, leaveTeam and leaveGame methods
Added WaveType Enum
Added createWave static Methods
Added isActionValid check for PlayerJoinAction
Implemented RulesList class for better RuleManagement
Changed PlayerAction Type to interface for multi inheritance
Added missing getPlayer() method
Added missing getPlayer() and getSpawnPoint() methods
Changed WaveAction Type to interface for multi inheritance
Added missing methods
Added isValid and isActionValid checks
Changed GameRule type to abstract class and added name field
Changed return value of isActionValid to true
Switched to RulesList class instead of List<GameRule>
Switched to RulesList instead of List<GameRule>, Added basic config
loading, added player.leaveGame() and player.setLobby() calls
Added PlayerClassAction interface for actions which do something with
classes
Added ClassPickAction
Added WaveRule for automatic Wave spawning
Added RespawnRule and RespawnAction