protected virtual void OnGameServerFinalized() { if (GameSpawnTask.FinalizationPacket == null) { return; } var data = GameSpawnTask.FinalizationPacket.FinalizationData; if (!data.ContainsKey(OptionKeys.RoomId)) { BroadcastChatMessage("Game server finalized, but room ID cannot be found", true); return; } // Get room id from finalization data var roomId = int.Parse(data[OptionKeys.RoomId]); var room = Plugin.RoomsPlugin.GetRoom(roomId); if (room == null) { return; } Room = room; GameIp = room.Options.RoomIp; GamePort = room.Options.RoomPort; room.Destroyed += OnRoomDestroyed; }
public void OnRoomDestroyed(RegisteredRoom room) { room.Destroyed -= OnRoomDestroyed; GameIp = ""; GamePort = -1; Room = null; GameSpawnTask = null; State = Config.PlayAgainEnabled ? Packets.Lobbies.LobbyState.Preparations : Packets.Lobbies.LobbyState.GameOver; }