internal void OnPlayerRespawn(PlayerInfo player) { PlayerRespawn?.Invoke(this, player); }
protected virtual void OnPlayerJoined(PlayerInfo player) { PlayerJoined?.Invoke(this, player); }
protected virtual void OnPlayerLeft(PlayerInfo player) { PlayerLeft?.Invoke(this, player); }
protected virtual PlayerInfo CreatePlayer(byte id, bool local = false) { Players[id] = new PlayerInfo(id); OnPlayerJoined(Players[id]); return(Players[id]); }