Example #1
0
 private static void EndRoomListSearch(List <RoomInformation.Field> fields, bool Disconnect)
 {
     if (Disconnect)
     {
         RoomWebDataBase.Disconnect();
         RoomWebDataBase.RemoveAllEvent();
     }
     if (fields.Count == 0)
     {
         SendMsg(true, "조건에 맞는 대기실을 찾을 수 없었습니다.");
     }
     else if (fields.Count <= 2)
     {
         foreach (var item in fields)
         {
             SendMsg(false, $"{item.gname} [{item.now_players}명] - {item.player0}");
         }
     }
     else
     {
         StringBuilder builder = new StringBuilder();
         SendMsg(true, $"{fields.Count} 개의 대기실을 찾았습니다.");
         fields.Sort((a, b) => (int)(a.now_players - b.now_players));
         foreach (var item in fields)
         {
             builder.AppendFormat("[{0}명] ", item.now_players);
         }
         SendMsg(false, builder.ToString());
     }
 }
Example #2
0
        internal static void SearchRoomListMap()
        {
            string SearchText = GetFullArgs(true);

            if (string.IsNullOrEmpty(SearchText))
            {
                SendMsg(true, "Error - 검색할 맵 파일명을 입력해주세요.");
                return;
            }
            SendMsg(true, $"맵 파일명에 {IsKoreanBlock(SearchText, "이", "가")} 포함된 대기실을 검색하는 중...");
            bool Disconnect = RoomWebDataBase.InitEvent();

            if (Disconnect)
            {
                RoomWebDataBase.EndFirstConnect += () =>
                                                   EndRoomListSearch(RoomWebDataBase.infoList.FindAll(item =>
                                                                                                      item.flag == "public" &&
                                                                                                      item.status == "open" &&
                                                                                                      item.mapname.ToLower().IndexOf(SearchText) != -1), Disconnect);
                RoomWebDataBase.Connect();
            }
            else
            {
                EndRoomListSearch(RoomWebDataBase.infoList.FindAll(item =>
                                                                   item.flag == "public" &&
                                                                   item.status == "open" &&
                                                                   item.mapname.ToLower().IndexOf(SearchText) != -1), Disconnect);
            }
        }