public async Task ImpersonateAsync(string name) { var eb = new EmbedBuilder(); var heldenliste = await Helden_software_API.GetHeroBasics(name); if (!heldenliste.Any()) { await ReplyAsync("helden-software ist zurzeit offline. es wird auf ein Backup zugegriffen."); heldenliste = await DBService.GetHeldenIDUndName(name.ToLower()); } if (heldenliste.Count > 1) { string tmp = ""; int count = 0; foreach (var entry in heldenliste) { tmp += entry.Value; count++; if (count < heldenliste.Count) { tmp += ", "; } } var embed = eb.AddField("Fehler", "Es fangen **" + heldenliste.Count + "** Helden mit \"" + name + "\" an (" + tmp + "), " + "bitte sei etwas genauer wessen Rolle du übernehmen möchtest.") .WithColor(Color.Red) .Build(); await ReplyAsync(null, false, embed); } else if (heldenliste.Count < 1) { var embed = eb.AddField("Fehler", "Leider habe ich keinen Helden namens \"" + name + "\" gefunden, " + "gebe **!list** für eine Liste aller Helden die im Moment online sind ein.") .WithColor(Color.Red) .Build(); await ReplyAsync(null, false, embed); } else { await DBService.UpdateDsaLink(Context.User.Id, heldenliste.Keys.First()); await DBService.UpdateHeroName(heldenliste.Keys.First(), heldenliste.Values.First()); var embed = eb.AddField(Context.User.Username, "Du übernimmst jetzt die Werte von: **" + heldenliste.Values.First() + "**.") .WithColor(Color.Green) .Build(); await ReplyAsync(null, false, embed); } }
public async Task ListAsync() { var heldenliste = await Helden_software_API.GetHeroList(); if (!heldenliste.Any()) { await ReplyAsync("helden-software ist zurzeit offline. es wird auf ein Backup zugegriffen."); heldenliste = await DBService.GetHeldenListe(); } var eb = new EmbedBuilder(); var embed = eb .AddField("Folgende Helden sind derzeit Online:", String.Join("\n", heldenliste)) .WithColor(Color.Blue) .Build(); await ReplyAsync(null, false, embed); }
public async Task IsOnline() => await ReplyAsync("helden-software server sind derzeit **" + await Helden_software_API.IsOnline() + "**.");
public async Task TrialAsync(params string[] args) { var eb = new EmbedBuilder(); Embed embed = null; int mod = 0; int extrasternchen = 0; var talent = new List <string>(); bool isStringDone = false; var special = new List <Eigenschaften>(); _3_W_20_Throw wurf = null; // parse the input for (int i = 0; i < args.Length; i++) { // überprüft ob der Sonderfall Attributo eingetroffen ist if ("attributo".StartsWith(args[i].ToLower())) { if (args.Length < 2 || !Enum.IsDefined(typeof(Eigenschaften), args[i + 1].ToUpper())) { embed = eb.AddField("Fehler", "Die Syntax ist nicht korrekt.\n" + "Gib: **!help Attributo** für hilfe wie man Ritualkenntnis auswürfelt ein.") .WithColor(Color.Red) .Build(); await Context.Channel.SendMessageAsync(null, false, embed); return; } else { talent.Add(args[i]); Eigenschaften eg; Enum.TryParse(args[i + 1].ToUpper(), out eg); special.Add(Eigenschaften.KL); special.Add(Eigenschaften.CH); special.Add(eg); isStringDone = true; } } // überprüft ob der Sonderfall Ritualkenntnis eingetroffen ist if ("ritualkenntnis".StartsWith(args[i].ToLower()) || "gildenmagie".StartsWith(args[i].ToLower())) { if ("ritualkenntnis".StartsWith(args[i].ToLower()) || args.Length < 2 || args[i + 1].Length != 8) { embed = eb.AddField("Fehler", "Die Syntax ist nicht korrekt.\n" + "Gib: **!help Ritualkenntnis** für hilfe wie man Ritualkenntnis auswürfelt ein.") .WithColor(Color.Red) .Build(); await Context.Channel.SendMessageAsync(null, false, embed); return; } else { talent.Add(args[i]); Enum.TryParse(args[i + 1].Split('/')[0].ToUpper(), out Eigenschaften eg); special.Add(eg); Enum.TryParse(args[i + 1].Split('/')[1].ToUpper(), out eg); special.Add(eg); Enum.TryParse(args[i + 1].Split('/')[2].ToUpper(), out eg); special.Add(eg); isStringDone = true; } } // überprüft ob sternchen manipuliert werden if ((args[i].StartsWith('+') || args[i].StartsWith('-')) && args[i].EndsWith('*')) { extrasternchen = Convert.ToInt32(args[i].Remove(args[i].Length - 1)); isStringDone = true; // überprüft ob es modifikationen gibt } else if (args[i].StartsWith('+') || args[i].StartsWith('-')) { mod += Convert.ToInt32(args[i]); isStringDone = true; // überprüft ob der talentname vorbei ist } else if (!isStringDone) { talent.Add(args[i]); } } string talentprobe = string.Join(" ", talent); var held = await DBService.GetHeldenID(Context.User.Id); if (special.Any()) { wurf = await Helden_software_API.GetHeroValues(held.Key, talentprobe, DBService, special); } else { wurf = await Helden_software_API.GetHeroValues(held.Key, talentprobe, DBService); } if (wurf.Modifikation == -999 && wurf.Eigenschaft1 == "" && wurf.Wert2 == 0) { await ReplyAsync("helden-software ist zurzeit offline. es wird auf ein Backup zugegriffen." + "\nMöglicherweise besitzt du das Talent/den Zauber auch nicht."); if (special.Any()) { wurf = Helden_software_API.ParseSpecialProbe(XDocument.Parse(await DBService.GetHeldenXML(held.Key)), talentprobe, special); } else { wurf = Helden_software_API.ParseProbe(XDocument.Parse(await DBService.GetHeldenXML(held.Key)), talentprobe); } } wurf.Modifikation = mod; wurf.TaW += extrasternchen; if (wurf.Talent == "F" && wurf.Eigenschaft1 == "A" && wurf.Eigenschaft2 == "I" && wurf.Eigenschaft3 == "L" && wurf.Wert1 == 0 && wurf.Wert2 == 0 && wurf.Wert3 == 0) { embed = eb.AddField("Fehler", "kein Talent namens: **" + talentprobe + "** gefunden.\n" + "hast du dich verschrieben oder Besitzt du das Talent nicht?") .WithColor(Color.Red) .Build(); await Context.Channel.SendMessageAsync(null, false, embed); return; } string quali = ""; string StarGrammar = ""; string spezialisierung = ""; if (extrasternchen != 0) { spezialisierung = extrasternchen.ToString("+0;-#"); } var wurfergebnis = new _3_W_20_Score(wurf); eb.AddField(wurf.Talent, "TaW: **" + (wurf.TaW - extrasternchen) + spezialisierung + "**\n" + "modifiziert um: **" + wurf.Modifikation.ToString("+0;-#") + "**") .AddField(wurf.Eigenschaft1, "Eigenschaft: **" + wurf.Wert1 + "**\nWurf: **" + wurfergebnis.W1 + "**", true) .AddField(wurf.Eigenschaft2, "Eigenschaft: **" + wurf.Wert2 + "**\nWurf: **" + wurfergebnis.W2 + "**", true) .AddField(wurf.Eigenschaft3, "Eigenschaft: **" + wurf.Wert3 + "**\nWurf: **" + wurfergebnis.W3 + "**", true); switch (wurfergebnis.ergebnis) { case Ergebnis.nicht_bestanden: embed = eb.AddField("Misslungen", "Schade **" + held.Value.Split(' ')[0] + "** du hast die Probe nicht geschafft.") .WithColor(Color.Red) .Build(); break; case Ergebnis.bestanden: if (wurfergebnis.Qualität > wurfergebnis.Sternchen) { quali = "Die Qualität beträgt: **" + wurfergebnis.Qualität + "**"; } if (wurfergebnis.Sternchen != 1) { StarGrammar = "e"; } else { StarGrammar = ""; } embed = eb.AddField("Geschafft!", "Glückwunsch **" + held.Value.Split(' ')[0] + "** du hast **" + wurfergebnis.Sternchen + "** Stern" + StarGrammar + " übrig!\n" + quali) .WithFooter(footer => footer.Text = "die Qualität wird nur angezeigt wenn sie höher als die erreichten Sternchen ist.") .WithColor(Color.Green) .Build(); break; case Ergebnis.patzer: embed = eb.AddField("Patzer", "Was für ein Pech **" + held.Value.Split(' ')[0] + "**! Du hast leider gepatzt.") .WithColor(new Color(0x9400d3)) .Build(); break; case Ergebnis.krit: if (wurfergebnis.Qualität > wurfergebnis.Sternchen) { quali = "Die Qualität beträgt: **" + wurfergebnis.Qualität + "**"; } if (wurfergebnis.Sternchen != 1) { StarGrammar = "e"; } else { StarGrammar = ""; } embed = eb.AddField("Kritisch!", "Glückwunsch **" + held.Value.Split(' ')[0] + "** du hast gekrittet, es sind **" + wurfergebnis.Sternchen + "** Sterne übrig!\n" + quali) .WithFooter(footer => footer.Text = "Vergiss deine SE nicht!") .WithColor(Color.Gold) .Build(); break; } await ReplyAsync(null, false, embed); }