private async void LongKeyPress() { CodjumperMainData mainData = await CodjumperDataManager.Instance.GetMainData(); if (mainData == null) { return; } longKeyPress = true; Logger.Instance.LogMessage(TracingLevel.INFO, "Detected Long Key Press"); Process.Start(youtubeQuery + mainData.Rcon.Serv.MapName + " walkthrough"); keyPressed = false; }
private async Task LoadCodjumperData() { if ((DateTime.Now - this.lastRefreshTime).TotalSeconds < RATE) { return; } Logger.Instance.LogMessage(TracingLevel.INFO, "Fetching 3xP' Codjumper data..."); this.lastRefreshTime = DateTime.Now; string str = await this.QueryAPI(URL); if (!String.IsNullOrEmpty(str)) { this.mainData = JsonConvert.DeserializeObject <CodjumperMainData>(str); } try { Logger.Instance.LogMessage(TracingLevel.DEBUG, "Current Map: " + mainData.Rcon.Serv.MapName + " | " + "Players Online: " + mainData.Rcon.Clients.Count.ToString() + "/" + mainData.Rcon.Serv.SvMaxClients); } catch { Logger.Instance.LogMessage(TracingLevel.DEBUG, "Unable to fetch 3xP' Codjumper data. | Server may be offline, attempting to re-fetch..."); } }
public async override void OnTick() { if (keyPressed) { int keyWasPressedAt = (int)(DateTime.Now - keyPressStartAt).TotalMilliseconds; if (keyWasPressedAt >= longKeyPressLength) { LongKeyPress(); } } CodjumperMainData mainData = await CodjumperDataManager.Instance.GetMainData(); if (mainData == null) { return; } try { string mapName = mainData.Rcon.Serv.MapName; if (settings.KeyCycle == CycleMethods.Static) { Regex regex = new Regex("mp_"); mapName = regex.Replace(mapName, "", 1); mapName = mapName.First().ToString().ToUpper() + mapName.Substring(1); switch (mapName) { case "Aerodynamics": await Connection.SetTitleAsync("Aero-\ndynamics"); break; case "Achromatic": await Connection.SetTitleAsync("Achro-\nmatic"); break; case "Architektur": await Connection.SetTitleAsync("Archi-\ntektur"); break; case "Dependence": await Connection.SetTitleAsync("Depen-\ndence"); break; case "Dependence_v2": await Connection.SetTitleAsync("Depen-\ndence\nv2"); break; case "Lavajump_v2_nos": await Connection.SetTitleAsync("Lavajump\nv2 nos"); break; case "Millennium": await Connection.SetTitleAsync("Millen-\nnium"); break; case "Morningstar": await Connection.SetTitleAsync("Morning-\nstar"); break; default: mapName = mapName.Replace("_", "\n"); await Connection.SetTitleAsync(mapName); break; } } if (settings.KeyCycle == CycleMethods.Dynamic) { if (String.IsNullOrEmpty(settings.LengthOfCycle)) { await Connection.SetTitleAsync("Please\nspecify\na valid\nduration."); return; } if ((DateTime.Now - lastCycleChange).TotalSeconds >= Convert.ToDouble(settings.LengthOfCycle)) { lastCycleChange = DateTime.Now; currentStage = (currentStage + 1) % 2; } switch (currentStage) { case 0: Regex regex = new Regex("mp_"); mapName = regex.Replace(mapName, "", 1); mapName = mapName.First().ToString().ToUpper() + mapName.Substring(1); { switch (mapName) { case "Aerodynamics": await Connection.SetTitleAsync("Aero-\ndynamics"); break; case "Achromatic": await Connection.SetTitleAsync("Achro-\nmatic"); break; case "Architektur": await Connection.SetTitleAsync("Archi-\ntektur"); break; case "Dependence": await Connection.SetTitleAsync("Depen-\ndence"); break; case "Dependence_v2": await Connection.SetTitleAsync("Depen-\ndence\nv2"); break; case "Lavajump_v2_nos": await Connection.SetTitleAsync("Lavajump\nv2 nos"); break; case "Millennium": await Connection.SetTitleAsync("Millen-\nnium"); break; case "Morningstar": await Connection.SetTitleAsync("Morning-\nstar"); break; default: mapName = mapName.Replace("_", "\n"); await Connection.SetTitleAsync(mapName); break; } break; } case 1: string currentPlayers = mainData.Rcon.Clients.Count.ToString(); string maxPlayers = mainData.Rcon.Serv.SvMaxClients.ToString(); await Connection.SetTitleAsync("Players:\n" + "(" + currentPlayers + "/" + maxPlayers + ")"); break; } } } catch { if ((DateTime.Now - lastCycleChange).TotalSeconds >= 5.0) { lastCycleChange = DateTime.Now; currentStage = (currentStage + 1) % 2; } switch (currentStage) { case 0: await Connection.SetTitleAsync("Invalid\nresponse\nfrom 3xP'\nAPI..."); break; case 1: await Connection.SetTitleAsync("Fetching\ndata from\n3xP' API\nawait..."); break; } } }