public async Task ProcessCommand(ServiceChannel requestChannel, long userId, string command, params string[] parameters) { switch (command.ToLower()) { case "start": case "help": await Send(requestChannel, $@"Voit hallita haluamiasi hälytyksiä lähettällä yksityisviestillä minulle seuraavia komentoja: {Prefix}add Salin Nimi - Lisää salin seurantaan. {Prefix}remove Salin Nimi - Poistaa salin seurannasta. {Prefix}list - Listaa seuratut salit. {Prefix}set ProfiiliNimi aika - Asettaa profiilin, vapaaehtoiseen aikakentään voi määrittää kuinka monta {ServiceChannel.GetTimerUnit()} profiili pysyy päällä. {Prefix}profiles - Listaa profiilit {Prefix}save ProfiiliNimi - Tallentaa tämän hetkiset salit profiiliin {Prefix}setdefault ProfiiliNimi - Asettaa halutun profiilin oletukseksi. Oletusprofiili ladataan aluksi ja kun asetetun profiilin aika umpeutuu. {Prefix}removeprofile ProfiiliNimi - Poistaa profiilin."); break; case "list": if (requestChannel == null || !requestChannel.Gyms.Any()) { await Send(requestChannel, "Sinulla ei ole yhtään salia seurannassa."); } else { string reply = requestChannel.Gyms.First(); foreach (var requestChannelGym in requestChannel.Gyms.Skip(1)) { reply = $"{reply}, {requestChannelGym}"; } await Send(requestChannel, reply); } break; case "add": if (parameters.Length != 1) { break; } if (!Channels.Contains(requestChannel)) { requestChannel.Gyms.Add(parameters[0]); Channels.Add(requestChannel); await Send(requestChannel, $"{parameters[0]} lisätty."); SaveGyms(); } else { if (requestChannel.Operators.Any() && !requestChannel.Operators.Contains(userId)) { await Send(requestChannel, "Sinulla ei ole oikeuksia lisätä saleja."); break; } if (!requestChannel.Gyms.Contains(parameters[0])) { requestChannel.Gyms.Add(parameters[0]); await Send(requestChannel, $"{parameters[0]} lisätty."); SaveGyms(); } } break; case "remove": if (requestChannel.Operators.Any() && !requestChannel.Operators.Contains(userId)) { await Send(requestChannel, "Sinulla ei ole oikeuksia poistaa saleja."); break; } if (parameters.Length < 1) { await Send(requestChannel, $"Anna poistettavan salin nimi komennon perään Esim. {Prefix}remove Esimerkkisali Numero 1"); break; } if (requestChannel.Gyms.Contains(parameters[0])) { requestChannel.Gyms.Remove(parameters[0]); SaveGyms(); await Send(requestChannel, $"Sali {parameters[0]} poistettu seurannasta."); } else { await Send(requestChannel, $"Sinulla ei ole salia {parameters[0]} seurannassa. Tarkista kirjoititko salin nimen oikein."); break; } break; case "set": if (parameters.Length < 1) { await Send(requestChannel, $"Anna profiilin nimi. Esim: {Prefix}Set Työ"); } var splitMessageText = parameters[0].Split(" ", 2); int duration = 0; if (splitMessageText.Length > 1 && int.TryParse(splitMessageText[1], out duration)) { } if (!requestChannel.SetProfile(splitMessageText[0], duration)) { await Send(requestChannel, $"Profiilia {splitMessageText[0]} ei löydy."); } else { await Send(requestChannel, $"Profiili {splitMessageText[0]} asetettu aktiiviseksi."); if (duration > 0) { await Send(requestChannel, $"Vakioprofiili asetetaan takaisin {duration} {ServiceChannel.GetTimerUnit()} päästä."); } } break; case "profiles": if (!requestChannel.Profiles.Any()) { await Send(requestChannel, "Sinulla ei ole profiileja."); break; } string profiilit = ""; foreach (var profiili in requestChannel.Profiles) { profiilit += $"{profiili.Name} "; } await Send(requestChannel, profiilit); break; case "save": if (parameters.Length < 1) { await Send(requestChannel, $"Anna tallennettavan profiilin nimi. Esim: {Prefix}save Koti"); break; } if (parameters[0].Contains(" ")) { await Send(requestChannel, "Profiilin nimessä ei saa olla välilyöntejä."); break; } requestChannel.SaveProfile(parameters[0]); SaveGyms(); await Send(requestChannel, $"Profiili {parameters[0]} tallennettu"); break; case "setdefault": if (parameters.Length < 1) { await Send(requestChannel, $"Anna profiilin nimi. Esim: {Prefix}SetDefault Koti"); } if (requestChannel.SetDefault(parameters[0])) { await Send(requestChannel, $"Profiili {parameters[0]} asetettu oletukseksi."); } else { await Send(requestChannel, $"Profiilia {parameters[0]} ei löytynyt. Tarkista kirjoititko nimen oikein."); } break; case "removeprofile": if (parameters.Length < 1) { await Send(requestChannel, $"Anna profiilin nimi. Esim: {Prefix}removeprofile Koti"); } if (requestChannel.RemoveProfile(parameters[0])) { await Send(requestChannel, $"Profiili {parameters[0]} poistettu."); } else { await Send(requestChannel, $"Profiilia {parameters[0]} ei löytynyt. Tarkista kirjoititko nimen oikein."); } break; case "addoperator": if (userId != Master) { break; } if (parameters.Length < 1) { await Send(requestChannel, $"Anna käyttäjän nimi"); } break; } }