Ejemplo n.º 1
0
        /// <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);
            }
        }
Ejemplo n.º 2
0
 private void ResponseGetRoomList(NetworkConnection connection, GetRoomList.Response response)
 {
     OnGetRoomListResponseEvent?.Invoke(response);
 }