diff options
author | TrueDoctor <d-kobert@web.de> | 2018-06-11 18:28:13 +0200 |
---|---|---|
committer | TrueDoctor <d-kobert@web.de> | 2018-06-11 18:28:13 +0200 |
commit | af937e7a8519ea3b06be651eb21b54132295c510 (patch) | |
tree | 17dbc28a5e9a75a1a42813a233b1c41390e673c4 /DiscoBot/Commands | |
parent | ad4cb92819976b8add36f047e59335104aa171fe (diff) | |
parent | ff80592d541c79653ef0a7c04e0938d7249069ef (diff) |
Merge branch 'master' of https://github.com/TrueDoctor/DiscoBot
Diffstat (limited to 'DiscoBot/Commands')
-rw-r--r-- | DiscoBot/Commands/Gm.cs | 6 | ||||
-rw-r--r-- | DiscoBot/Commands/Help.cs | 24 | ||||
-rw-r--r-- | DiscoBot/Commands/List.cs | 82 |
3 files changed, 100 insertions, 12 deletions
diff --git a/DiscoBot/Commands/Gm.cs b/DiscoBot/Commands/Gm.cs index af152fa..212bc83 100644 --- a/DiscoBot/Commands/Gm.cs +++ b/DiscoBot/Commands/Gm.cs @@ -34,6 +34,12 @@ name = givenName.Aggregate((s, c) => s + c); } + if (name.ToLower().Equals("man") || name.ToLower().Equals("help")) + { + return this.ReplyAsync("```xl\n" + Help.Get_Specific_Help("ich bin") + "\n```"); + + } + var character = Dsa.Chars.OrderBy(x => SpellCorrect.CompareEasy(name, x.Name)).First(); // usage of compareEasy diff --git a/DiscoBot/Commands/Help.cs b/DiscoBot/Commands/Help.cs index 2bcbd03..c6de4a9 100644 --- a/DiscoBot/Commands/Help.cs +++ b/DiscoBot/Commands/Help.cs @@ -50,11 +50,31 @@ namespace DiscoBot.Commands [Command("help"), Summary("prints the help menu.")] [Alias("Help", "man", "Man")] - public async Task ShowHelpAsync(string command = "") + public async Task ShowHelpAsync(params string[] command_list) { + var command = ""; + if (command_list.Length > 0) { + command = command_list.Aggregate((s, c) => s + " " + c); + } + if (command.Equals(string.Empty)) // return generic Help { - await this.ReplyAsync("```\n[hilfreiche Erklärungen]\nAuflistung aller Commands mit !list commands\n```"); + string res = ""; + + foreach (var com in Commands) + { + int first_column_width = 8; + res += ("!" + com.Name + ": ").AddSpaces(first_column_width) + com.Brief; + + if (com.Description.Length > 1) + { + res += "\n" + "".AddSpaces(first_column_width) + "(\"!man " + com.Name + "\" gibt genauere Informationen)"; + } + + res += "\n\n"; + } + //await this.ReplyAsync("```\n[hilfreiche Erklärungen]\nAuflistung aller Commands mit !list commands\n```"); + await this.ReplyAsync("```xl\n" + res +"\n```"); return; } diff --git a/DiscoBot/Commands/List.cs b/DiscoBot/Commands/List.cs index c688daa..be7441b 100644 --- a/DiscoBot/Commands/List.cs +++ b/DiscoBot/Commands/List.cs @@ -22,9 +22,52 @@ var character = ((Character)Dsa.Chars.Find(x => x.Name.Equals(Dsa.Relation[this.Context.User.Username]))); + int first_column_width = 18; + + int persist = 0; switch (prop.ToLower()) { + case "all": + case "held": + case "char": + case "brief": + case "zettel": + persist = 1; + + res.Add(character.Name + ":\n"); + //Eigenschaften + res.AddRange( + character.Eigenschaften.Take(9).Select(s => s.Key + ":\t " + s.Value)); + res.Add(""); + //LE/AE + res.Add("LE:\t " + character.Lebenspunkte_Aktuell + "/" + character.Lebenspunkte_Basis); + if (character.Astralpunkte_Basis > 0) + { + res.Add("AE:\t " + character.Astralpunkte_Aktuell + "/" + character.Astralpunkte_Basis); + } + res.Add(""); + //Kampfwerte + res.Add("".AddSpaces(first_column_width) + " AT/PA"); + res.AddRange( + character.Kampftalente.Select(s => s.Name.AddSpaces(first_column_width) + " " + s.At.ToString().AddSpacesAtHead(2) + "/" + s.Pa.ToString().AddSpacesAtHead(2))); + res.Add(""); + //Vorteile + res.AddRange( + character.Vorteile + .Select(s => s.Name + "\t " + s.Value)); + res.Add(""); + //Talente + res.AddRange( + character.Talente.Select(s => (s.Name.AddSpaces(first_column_width) + " " + s.Value).AddSpaces(first_column_width + 5) + " " + s.Probe)); + res.Add(""); + //evtl Zauber + if (character.Zauber.Count > 0) + { + res.AddRange( + character.Zauber.Select(s => (s.Name.AddSpaces(first_column_width) + " " + s.Value).AddSpaces(first_column_width + 5) + " " + s.Probe)); + } + break; case "chars": case "Chars": res.AddRange(Dsa.Chars.Select(x => x.Name)); @@ -36,13 +79,13 @@ case "eig": case "eigenschaft": case "eigenschaften": - res.Add(character.Name + ":"); + res.Add(character.Name + ":\n"); res.AddRange( character.Eigenschaften.Take(8).Select(s => s.Key + ":\t " + s.Value)); break; case "stat": case "stats": - res.Add(character.Name + ":"); + res.Add(character.Name + ":\n"); res.AddRange( //character.Eigenschaften.Select(s => s.Key + ":\t " + s.Value)); character.Eigenschaften.Take(9).Select(s => s.Key + ":\t " + s.Value)); @@ -55,20 +98,26 @@ case "t": case "ta": case "talent": + res.Add(character.Name + ":\n"); + res.AddRange( + character.Talente.Select(s => (s.Name.AddSpaces(first_column_width) + " " + s.Value).AddSpaces(first_column_width + 5) + " " + s.Probe)); + break; case "zauber": - res.Add(character.Name + ":"); + case "z": + res.Add(character.Name + ":\n"); res.AddRange( - character.Talente.Select(s => s.Name + "\t " + s.Value + "\t " + s.Probe)); + character.Zauber.Select(s => (s.Name.AddSpaces(first_column_width) + " " + s.Value).AddSpaces(first_column_width + 5) + " " + s.Probe)); break; case "w": case "waffe": case "waffen": res.Add(character.Name + ":"); + res.Add("".AddSpaces(first_column_width) + " AT/PA"); res.AddRange( - character.Kampftalente.Select(s => s.Name)); + character.Kampftalente.Select(s => s.Name.AddSpaces(first_column_width) + " " + s.At.ToString().AddSpacesAtHead(2) + "/" + s.Pa.ToString().AddSpacesAtHead(2))); break; case "fern": - res.Add(character.Name + ":"); + res.Add(character.Name + ":\n"); res.AddRange( character.Talente.Select(s => s.Name)); break; @@ -81,7 +130,7 @@ case "vt": case "vor": case "vorteil": - res.Add(character.Name + ":"); + res.Add(character.Name + ":\n"); res.AddRange( character.Vorteile .Select(s => s.Name + "\t " + s.Value));// (s.Value == 0 ? string.Empty : s.Value.ToString()))); @@ -97,14 +146,27 @@ { if (sb.Length + re.Length > 1798) { - await this.ReplyTimedAsync(sb.ToString(), TimeSpan.FromSeconds(90)); + if (persist == 1) + { + await this.ReplyAsync("```xl\n" + sb.ToString() + "\n```"); + } + else + { + await this.ReplyTimedAsync(sb.ToString(), TimeSpan.FromSeconds(90)); + } sb.Clear(); } sb.AppendLine(re); } - - await this.ReplyTimedAsync(sb.ToString(), TimeSpan.FromSeconds(90)); + if (persist == 1) + { + await this.ReplyAsync("```xl\n" + sb.ToString() + "\n```"); + } + else + { + await this.ReplyTimedAsync(sb.ToString(), TimeSpan.FromSeconds(90)); + } } } } |