internal class HuntSysUI : IConquerAIWebUI { public string Name { get { return "Hunter System"; } } public string Page { get { return "/huntsys.html"; } } public void RenderUI(UriQuery urlQuery, HttpListenerContext context, HttpListenerRequest request, HttpListenerResponse response, StreamWriter output) { // // update fields / handle input, etc. // string value; if (urlQuery.TryGetField("quality", out value)) HunterSettings.MinQuality = (LootQuality)Math.Max(int.Parse(value), (int)LootQuality.Refined); if (urlQuery.TryGetField("bless", out value)) HunterSettings.MinBless = Math.Min(7, Math.Max(int.Parse(value), 1)); if (urlQuery.TryGetField("tradeadd", out value)) HunterSettings.TradeAddItems = (value == "on"); if (urlQuery.TryGetField("usetraders", out value)) HunterSettings.UseTraders = (value == "on"); if (urlQuery.TryGetField("username", out value)) { string password, server, profile, action; if (urlQuery.TryGetField("password", out password) && urlQuery.TryGetField("server", out server) && urlQuery.TryGetField("profile", out profile)) { HunterSettings.AddHunter(value, password, server, profile); HttpServer.LogMessage("Attempting to add hunter... {0}, {1}", value, server); } else if (urlQuery.TryGetField("action", out action)) { LoginData ld; COFarmerClient inst; switch (action) { case "disconnect": if (HunterSettings.TryGetStandaloneData(value, out ld)) HunterSettings.DisconnectStandalone(ld); else if (HunterSettings.TryGetCliented(value, out inst)) HunterSettings.DisconnectClient(inst); break; case "remove": if (HunterSettings.TryGetStandaloneData(value, out ld)) HunterSettings.RemoveStandalone(ld); else if (HunterSettings.TryGetCliented(value, out inst)) HunterSettings.RemoveClient(inst); break; case "stop": if (HunterSettings.TryGetStandaloneData(value, out ld)) HunterSettings.StopStandalone(ld); else if (HunterSettings.TryGetCliented(value, out inst)) HunterSettings.StopClient(inst); ; break; case "start": if (HunterSettings.TryGetStandaloneData(value, out ld)) HunterSettings.StartStandalone(ld); else if (HunterSettings.TryGetCliented(value, out inst)) HunterSettings.StartClient(inst); break; } } } // // // // render left side panel // min quality, bless, trade +, use traders var sb = new StringBuilder(); sb.AppendLine("
"); // to-do render logged in client list... string frmtOptions = ""; var clientTable = new HtmlTable(); clientTable.Tags["border"] = "2"; clientTable.AddRow(new HtmlTable.Row("Account", "Server", "Name", "Status", "Options")); foreach (var client in HunterSettings.Cliented) { foreach (var set in HunterSettings.ClientHunters) { if (client.Username == set.Item2) { clientTable.AddRow(new HtmlTable.Row(client.Username, client.Server, client.Name, client.Hunting ? "Hunting" : "Not hunting.", string.Format(frmtOptions, client.Username))); break; } } } var accountedFor = new List