コード例 #1
0
        public FProgram()
        {
            InitializeExplorer();
            InitializeComponent();

            form = this;
            Program.LoadData();

            webBrowser.Url = new Uri(Program.APP_URL + "user-interface.php");
            webBrowser.DocumentCompleted += (s, e) => {
                Console.WriteLine("Loading Done. Initialized: " + Initialized);
                if (!Initialized)
                {
                    Aternos = new Aternos();

                    webBrowser.ObjectForScripting = this;
                    ExecuteScript("SetCookie", new object[] {
                        Program.PHPSESSID
                    });
                    Controls.Add(webBrowser);

                    CreateThread();
                    Initialized = true;

                    UpdateApplication();
                }
                else
                {
                    ExecuteScript("SetCookie", new object[] {
                        Program.PHPSESSID
                    });
                }
            };
        }
コード例 #2
0
        public void RefreshMinecraftChat()
        {
            WebClient wc;

            RunOnAternos(wc = new WebClient(), () => {
                try {
                    string[] lines = new string[0];
                    if (MinecraftChatLineCount >= 0)
                    {
                        lines = wc.DownloadString("https://aternos.org/panel/ajax/console.php?ASEC=fi0cgnx3yii00000%3Aki2uw8csgt000000").Split(new string[] { "\",\"" }, StringSplitOptions.None);
                    }


                    if (lines.Length < MinecraftChatLineCount)
                    {
                        MinecraftChatLineCount = 0;
                    }
                    for (int i = MinecraftChatLineCount; i < lines.Length; i++)
                    {
                        try {
                            string l = lines[i].Replace("\\u001b[m\\r", "").Replace("\\u001b[m\"]", "").Replace("\\\"}\\r", "").Replace("\\\"}\"]", "");
                            if (!l.Contains("Chat Thread") && !l.Contains("tellraw") && !l.Contains("time"))
                            {
                                continue;
                            }
                            if (!l.Contains("tellraw"))
                            {
                                string time    = l.Split('[')[2].Split(']')[0];
                                string message = l.Split(new string[] { "]: " }, StringSplitOptions.None)[1];
                                string sender  = message.Substring(1).Split('>')[0];
                                string content = message.Substring(3 + sender.Length);

                                FProgram.ExecuteScript("AddMessage", new object[] {
                                    sender, content, time
                                });
                            }
                            else
                            {
                                string m = l.Substring(24);
                                string t = m.Split('\\')[0];
                                m        = m.Split(',')[1].Substring(11);

                                string sender  = m.Substring(1).Split('>')[0];
                                string content = m.Substring(3 + sender.Length);

                                FProgram.ExecuteScript("AddMinecraftMessage", new object[] {
                                    t, sender, content
                                });
                            }
                        }
                        catch { }
                    }
                    MinecraftChatLineCount = lines.Length - 5;
                    lines = null;
                }
                catch { }
            });
        }
コード例 #3
0
 public FProgram()
 {
     InitializeComponent();
     form = this;
     Program.LoadData();
     Aternos = new Aternos();
     CreateThread();
     UpdateApplication();
 }
コード例 #4
0
        public void v2RefreshStatus()
        {
            try {
                WebClient wc;
                RunOnAternos(wc = new WebClient(), () => {
                    string r = wc.DownloadString("https://aternos.org/server");

                    string lastStatus = r
                                        .Split(new string[] {
                        "var lastStatus = {"
                    }, StringSplitOptions.None)[1]
                                        .Split(new string[] {
                        "};"
                    }, StringSplitOptions.None)[0];

                    AlanV rv        = new AlanV(lastStatus);
                    string ip       = rv.Get("ip")[0].Split('.')[0];
                    string software = rv.Get("software")[0];
                    string version  = rv.Get("version")[0];
                    string status   = rv.Get("class")[1];

                    switch (status)
                    {
                    case "offline":
                        FProgram.ExecuteScript("SetStatus", new object[] {
                            "offline", ip, software, version, "", ""
                        });
                        break;

                    case "online":
                        string ps = lastStatus
                                    .Split(new string[] {
                            "\"playerlist\":["
                        }, StringSplitOptions.None)[1]
                                    .Split(']')[0];

                        string[] players;
                        if (ps.Contains(","))
                        {
                            players = ps.Split(',');
                        }
                        else
                        {
                            players = new string[] { ps }
                        };

                        for (int i = 0; i < players.Length; i++)
                        {
                            players[i] = players[i].Replace("\"", "");
                            if (!Players.Contains(players[i]) && players[i].Length > 3)
                            {
                                FProgram.ExecuteScript("AddPlayer", new object[] {
                                    players[i]
                                });
                            }
                        }

                        for (int i = 0; i < Players.Length; i++)
                        {
                            if (!players.Contains(Players[i]))
                            {
                                FProgram.ExecuteScript("RemovePlayer", new object[] { Players[i] });
                            }
                        }

                        Players = players;
                        FProgram.ExecuteScript("SetStatus", new object[] { "online", ip, software, version, "", "" });
                        break;

                    case "queueing":

                        int per = (int)Double.Parse(lastStatus
                                                    .Split(new string[] {
                            "\"percentage\":"
                        }, StringSplitOptions.None)[1]
                                                    .Split(',')[0]);

                        try {
                            string icon = rv.Get("icon")[0];
                            if (icon == "fa-exclamation-triangle")
                            {
                                Confirm();
                            }
                        }
                        catch { }
                        FProgram.ExecuteScript("SetStatus", new object[] {
                            "queue", ip, software, version, rv.Get("time")[0], per
                        });
                        break;

                    case "loading":
                    case "loading starting":
                        FProgram.ExecuteScript("SetStatus", new object[] {
                            "queue", ip, software, version, "Ucitavanje resursa", 0
                        });
                        break;
                    }
                });
            }
            catch { }
        }