//サーバーを取得 string[] GetServerNames() { string[] Server_Lists = Server_File.Server_Open_File_Line("/WoTB_Voice_Mod/Voice_Online/Server_Names.dat"); string[] Temp = { }; for (int Number = 0; Number <= Server_Lists.Length - 1; Number++) { if (Server_Lists[Number] != "") { Array.Resize(ref Temp, Temp.Length + 1); Temp[Temp.Length - 1] = Server_Lists[Number]; } } return(Temp); }
//サーバーに参加 private async void Server_Connect_B_Click(object sender, RoutedEventArgs e) { if (IsClosing) { return; } if (Server_Lists.SelectedIndex == -1) { Message_Feed_Out("サーバーが選択されていません。"); return; } try { string Directory_Name = Server_Names_List[Server_Lists.SelectedIndex] + "/Voices"; if (Directory.Exists(Voice_Set.Special_Path + "/Server/" + Directory_Name) && Directory.GetFiles(Voice_Set.Special_Path + "/Server/" + Directory_Name).Length == 0) { Directory.Delete(Voice_Set.Special_Path + "/Server/" + Directory_Name, true); } XDocument xml2 = XDocument.Load(Voice_Set.FTPClient.GetFileRead("/WoTB_Voice_Mod/Voice_Online/" + Server_Names_List[Server_Lists.SelectedIndex] + "/Server_Config.dat")); XElement item2 = xml2.Element("Server_Create_Config"); if (bool.Parse(item2.Element("IsEnablePassword").Value)) { if (Password_T.Text != item2.Element("Password").Value) { Message_Feed_Out("パスワードが違います。"); return; } } Message_T.Text = "サーバーに参加しています..."; await Task.Delay(50); Server_Voices.Voice_List.Clear(); FtpWebRequest fwr = (FtpWebRequest)WebRequest.Create(new Uri("ftp://" + SRTTbacon_Server.IP + "/WoTB_Voice_Mod/Voice_Online/" + Directory_Name + "/")); fwr.UsePassive = true; fwr.KeepAlive = false; fwr.Credentials = new NetworkCredential(SRTTbacon_Server.Name, SRTTbacon_Server.Password); fwr.Method = WebRequestMethods.Ftp.ListDirectory; StreamReader sr = new StreamReader(fwr.GetResponse().GetResponseStream()); string str = sr.ReadLine(); while (str != null) { if (str != "") { Server_Voices.Voice_List.Add(str); } str = sr.ReadLine(); } sr.Close(); fwr.Abort(); Voice_Set.SRTTbacon_Server_Name = Server_Names_List[Server_Lists.SelectedIndex]; Directory.CreateDirectory(Voice_Set.Special_Path + "/Server/" + Directory_Name); Voice_Set.FTPClient.DownloadFile("/WoTB_Voice_Mod/Voice_Online/" + Directory_Name + "/" + Server_Voices.Voice_List[0], Voice_Set.Special_Path + "/Server/" + Directory_Name + "/" + Server_Voices.Voice_List[0]); string Chat_Temp = Server_File.Server_Open_File("/WoTB_Voice_Mod/Voice_Online/" + Voice_Set.SRTTbacon_Server_Name + "/Chat.dat"); if (Voice_Set.UserName == item2.Element("Master_User_Name").Value) { if (!Chat_Temp.Contains(Voice_Set.UserName + "(管理者)が参加しました。")) { Voice_Set.AppendString("/WoTB_Voice_Mod/Voice_Online/" + Voice_Set.SRTTbacon_Server_Name + "/Chat.dat", Voice_Set.UserName + "が参加しました。\n"); } } else { if (!Chat_Temp.Contains(Voice_Set.UserName + "が参加しました。")) { Voice_Set.AppendString("/WoTB_Voice_Mod/Voice_Online/" + Voice_Set.SRTTbacon_Server_Name + "/Chat.dat", Voice_Set.UserName + "が参加しました。\n"); } } Voice_Set.TCP_Server.Send(Voice_Set.SRTTbacon_Server_Name + "|Chat"); Visibility = Visibility.Hidden; Opacity = 0; } catch (Exception e1) { Sub_Code.Error_Log_Write(e1.Message); Message_Feed_Out("エラーが発生しました。"); } }