/// <summary> /// 部屋一覧を取得する。 /// </summary> private void RequestedGetRoomList(NetworkConnection connection, GetRoomList.Request request) { var msg = new GetRoomList.Response(); var id = connection.connectionId; try { // プレイヤーが存在しているかどうかチェック if (!playerDataHolder.ExistPlayerData(id)) { Debug.LogWarningFormat("[RequestedGetRoomList] 存在しないプレイヤーが指定されました\nid : {0}", id); msg.Result = GetRoomList.Result.FailureNonExistPlayer; connection.Send(msg); return; } var roomDataList = roomDataHolder .GetAllRoomData() .Where(d => !d.IsPlaying) .Where(d => !d.IsFullMember) .OrderBy(d => d.DateTime) .Select(d => d.CreateRoomSimpleData()) .ToList(); msg.Result = GetRoomList.Result.Succeed; msg.RoomDataList = roomDataList; connection.Send(msg); } catch (Exception e) { Debug.LogErrorFormat("[RequestedGetRoomList] 予期せぬエラーが発生しました\nid : {0}", id); Debug.LogException(e); msg.Result = GetRoomList.Result.FailureUnknown; msg.Exception = e; connection.Send(msg); } }
private void ResponseGetRoomList(NetworkConnection connection, GetRoomList.Response response) { OnGetRoomListResponseEvent?.Invoke(response); }