예제 #1
0
        private void ReloadCMD_Button_Click(object sender, RoutedEventArgs e)
        {
            if (!PasswordCheck())
            {
                return;
            }
            int i = SelectedServer.SelectedIndex;

            switch (SSH.Servers[i].name)
            {
            case "生存服":
                if (((ListBoxItem)operationSelection.SelectedItem).Content.ToString() == "Announcement")
                {
                    try
                    {
                        DoBgTask("发送命令 reload_cmd\n请稍候...", () =>
                        {
                            SSH.ScreenCommand(ref SSH.Servers[i], "reload_cmd");
                            SSH.ScreenCommand(ref SSH.Servers[i], "reload_cmd");
                        });
                    }
                    catch (Exception) { }
                }
                break;

            default:
                break;
            }
        }
예제 #2
0
        private void SaveButton_Click(object sender, RoutedEventArgs e)
        {
            if (!PasswordCheck())
            {
                return;
            }
            int i = SelectedServer.SelectedIndex;

            switch (SSH.Servers[i].name)
            {
            case "生存服":
                if (((ListBoxItem)operationSelection.SelectedItem).Content.ToString() == "Announcement")
                {
                    string localpath = dataPath + SSH.Servers[i].name + "\\cmd.json";
                    DoBgTask("保存中\n请稍候...", () =>
                    {
                        JArray json = JArray.Parse(File.ReadAllText(localpath));
                        Dispatcher.Invoke(new Action(() => json.First(lambda => FindJToken((JObject)lambda, "name", "announcement"))["text"] = EditTextbox.Text.Replace("\r", null)));
                        File.WriteAllText(localpath, json.ToString());
                        DoBgTask("正在上传到服务器\n请稍候...", () =>
                        {
                            SSH.UploadFile(ref SSH.Servers[i], localpath, $"/mc/{SSH.Servers[i].dirPath}/config/", "cmd.json");
                        });
                    });
                }
                break;

            default:
                break;
            }
        }
예제 #3
0
 private void SelectedServer_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     for (int i = 0; i < SSH.Servers.Length; i++)
     {
         SSH.DisConnect(ref SSH.Servers[i]);
     }
     if (SelectedServer.SelectedIndex != -1)
     {
         int i = SelectedServer.SelectedIndex;
         OperationAreaSet();
     }
 }
예제 #4
0
        private void OperationAreaSet()
        {
            EditTextbox.Clear();
            if (SelectedServer.SelectedIndex != -1)
            {
                if (!PasswordCheck())
                {
                    return;
                }
                int i = SelectedServer.SelectedIndex;
                switch (((ListBoxItem)operationSelection.SelectedItem).Content)
                {
                case "player.log":
                    DoBgTask("正在从服务器上下载player.log\n请稍候...", () =>
                    {
                        string get = SSH.RunShell(ref SSH.Servers[i], $"cat /mc/{SSH.Servers[i].dirPath}/player.log");
                        Dispatcher.Invoke(new Action(() => EditTextbox.Text = get));
                    });
                    break;

                case "screenlog.0":
                    DoBgTask("正在从服务器上下载screenlog.0\n请稍候...", () =>
                    {
                        string get = SSH.RunShell(ref SSH.Servers[i], $"cat /mc/{SSH.Servers[i].dirPath}/screenlog.0");
                        Dispatcher.Invoke(new Action(() => EditTextbox.Text = get));
                    });
                    break;

                case "/config/cmd.json":
                    SSH.DownloadFile(ref SSH.Servers[i], $"/mc/{SSH.Servers[i].dirPath}/config/cmd.json", dataPath + SSH.Servers[i].name + "\\cmd.json");
                    EditTextbox.Text = null;
                    break;

                case "Announcement":
                    DoBgTask("正在从服务器上获取数据Announcement\n请稍候...", () =>
                    {
                        SSH.DownloadFile(ref SSH.Servers[i], $"/mc/{SSH.Servers[i].dirPath}/config/cmd.json", dataPath + SSH.Servers[i].name + "\\cmd.json");
                        try
                        {
                            string get = JArray.Parse(File.ReadAllText(dataPath + SSH.Servers[i].name + "\\cmd.json")).First(lambda => FindJToken((JObject)lambda, "name", "announcement"))["text"].ToString();
                            Dispatcher.Invoke(new Action(() => EditTextbox.Text = get));
                        }
                        catch (Exception) { }
                    });
                    break;

                default:
                    break;
                }
            }
        }