summaryrefslogtreecommitdiff
path: root/DiscoBot/Commands
diff options
context:
space:
mode:
authorTrueDoctor <d-kobert@web.de>2018-06-11 18:28:13 +0200
committerTrueDoctor <d-kobert@web.de>2018-06-11 18:28:13 +0200
commitaf937e7a8519ea3b06be651eb21b54132295c510 (patch)
tree17dbc28a5e9a75a1a42813a233b1c41390e673c4 /DiscoBot/Commands
parentad4cb92819976b8add36f047e59335104aa171fe (diff)
parentff80592d541c79653ef0a7c04e0938d7249069ef (diff)
Merge branch 'master' of https://github.com/TrueDoctor/DiscoBot
Diffstat (limited to 'DiscoBot/Commands')
-rw-r--r--DiscoBot/Commands/Gm.cs6
-rw-r--r--DiscoBot/Commands/Help.cs24
-rw-r--r--DiscoBot/Commands/List.cs82
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));
+ }
}
}
}