From bf1c1d06a8313c1a82f217041517fa14274dfa32 Mon Sep 17 00:00:00 2001
From: Dennis Klein <mail@dnns01.de>
Date: Wed, 15 Jul 2020 19:00:36 +0200
Subject: [PATCH] Changed Fernuni-Bot help command to use an embed now for
 displaying help message to a user

---
 fernuni-bot.py | 49 ++++++++++++++++++++++++++++---------------------
 1 file changed, 28 insertions(+), 21 deletions(-)

diff --git a/fernuni-bot.py b/fernuni-bot.py
index e91711e..6072b68 100644
--- a/fernuni-bot.py
+++ b/fernuni-bot.py
@@ -79,35 +79,42 @@ def get_reaction(reactions):
 
 
 # Send DM to a user/member
-async def send_dm(user, message):
+async def send_dm(user, message, embed=None):
     if type(user) is discord.User or type(user) is discord.Member:
         if user.dm_channel is None:
             await user.create_dm()
 
-        await user.dm_channel.send(message)
+        await user.dm_channel.send(message, embed=embed)
 
 
 # Send help message as DM
 async def fu_help(message):
-    answer = f'Ich bin der Fernuni-Bot. Ich kann Rollen zuweisen/entfernen. \n\n'
-    answer += f'Folgende Kommandos stehen zur verfügung:\n'
-    answer += f'`!help` - Zeigt diesen Hilfetext an.\n'
-    answer += f'`!link` - Zeigt den Einladungslink für diesen Discord-Server an.\n'
-    answer += f'`!stats` - Gibt ein paar kleine Statistiken aus.\n'
-    answer += f'`!all-roles` - Zeigt alle verfügbaren Rollen an, die ich dir zuweisen/entfernen kann.\n'
-    answer += f'`!my-roles` - Zeigt alle Rollen an, die dir momentan zugewiesen sind.\n'
-    answer += f'`!add-roles` - Mit diesem Kommando, gefolgt von einer Liste von Rollen, ' \
-              f'weise ich dir diese Rollen zu.\n'
-    answer += f'`!remove-roles` - Mit diesem Kommendo, gefolgt von einer Liste von Rollen, ' \
-              f'entferne ich dir diese Rollen.\n\n'
-    answer += f'Hinweise für die Nutzung der Kommandos zum Zuweisen/Entfernen von Rollen:\n'
-    answer += f'In der Liste der verfügbaren Rollen siehst du in eckigen Klammern  einen Schlüssel für die jeweilige ' \
-              f'Rolle, die für diese Kommandos zu verwenden ist. \n'
-    answer += f'Beispiel: \n[BI] B.Sc. Informatik \n[MM] M.Sc. Mathematik \n'
-    answer += f'`!add-roles BI` fügt die Rolle B.Sc. Informatik hinzu. \n'
-    answer += f'`!remove-roles BI MM` entfernt die Rollen B.Sc. Informatik und M.Sc Mathematik. \n'
-
-    await send_dm(message.author, answer)
+    embed = discord.Embed(title="Fernuni-Bot Hilfe",
+                          description="Mit mir kannst du auf folgende Weise interagieren:",
+                          color=0x004c97)
+    # embed.from_dict(commands)
+    embed.set_thumbnail(
+        url="https://cdn.discordapp.com/avatars/697842294279241749/c7d3063f39d33862e9b950f72ab71165.webp?size=1024")
+    embed.add_field(name="!help", value='Hilfe anzeigen', inline=False)
+    embed.add_field(name="!link", value='Einladungslink für diesen Discord-Server anzeigen.', inline=False)
+    embed.add_field(name="!stats", value='Nutzerstatistik anzeigen', inline=False)
+    embed.add_field(name="!all-roles", value='Alle verfügbaren Rollen anzeigen', inline=False)
+    embed.add_field(name="!my-roles", value='Dir zugewiesene Rollen anzeigen', inline=False)
+    embed.add_field(name="!add-roles ROLE1 ...", value='Eine oder mehrere Rollen hinzufügen', inline=False)
+    embed.add_field(name="!remove-roles ROLE1 ...", value='Eine oder mehrere zugewiesene Rollen entfernen',
+                    inline=False)
+    embed.add_field(name='\u200B', value='\u200B', inline=False)
+    embed.add_field(name="Benutzung Rollenbezogener Kommandos",
+                    value='Der Aufruf von `!all-roles` oder `!my-roles` gibt eine Liste der Rollen aus, die '
+                          'folgendermaßen aufgebaut ist: `[KEY] ROLLENNAME`. \u000ABeispiel: \u000A'
+                          '[BWI] B.Sc. Wirtschaftsinformatik \u000A[BM] B.Sc. Mathematik \u000A'
+                          '[BI] B.Sc. Informatik \u000A\u000ABei der Verwendung von `!add-roles` und `!remove-roles` '
+                          'kann nun eine Liste von Keys übergeben werden, um sich selbst diese Rollen hinzuzufügen, '
+                          'oder zu entfernen. Möchte man sich also nun selbst die Rollen B.Sc. Informatik und '
+                          'B.Sc. Mathematik hinzufügen, gibt man folgendes kommando ein: `!add-roles BI BM`',
+                    inline=False)
+
+    await send_dm(message.author, "", embed=embed)
 
 
 # Send all available roles that can be assigned to a member by this bot as DM
-- 
GitLab