From 5b48fb5888b62baf41cc94840134354f480203a6 Mon Sep 17 00:00:00 2001
From: Fabian <75286597+ffaadd@users.noreply.github.com>
Date: Tue, 19 Oct 2021 20:00:27 +0200
Subject: [PATCH] added mod-role to permissions and fix help (#124)

---
 cogs/help.py           |  2 +-
 cogs/learninggroups.py | 29 +++++++++++++++++++++--------
 2 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/cogs/help.py b/cogs/help.py
index 9135ac7..f4dd30a 100644
--- a/cogs/help.py
+++ b/cogs/help.py
@@ -175,7 +175,7 @@ class Help(commands.Cog):
         try:
             command = data['command'][name]
             if command['mod'] and not utils.is_mod(ctx):
-                raise KeyError
+                return #raise KeyError
         except KeyError:
             await ctx.channel.send(
                 "Fehler! Für dieses Kommando habe ich keinen Hilfe-Eintrag. Gib `!help` ein um eine Übersicht zu erhalten. ")
diff --git a/cogs/learninggroups.py b/cogs/learninggroups.py
index 4c0361f..2b86a65 100644
--- a/cogs/learninggroups.py
+++ b/cogs/learninggroups.py
@@ -307,8 +307,10 @@ class LearningGroups(commands.Cog):
                             "\n(manche Kommandos sind von Discord limitiert und können nur einmal alle 5 Minuten ausgeführt werden)"
                            "```"
                            )
-
-        self.groups["groups"][str(channel.id)] = {"owner_id": requested_channel_config["owner_id"]}
+        self.groups["groups"][str(channel.id)] = {
+            "owner_id": requested_channel_config["owner_id"],
+            "last_rename": int(time.time())
+        }
 
         await self.remove_group_request(message)
         if not direct:
@@ -399,8 +401,12 @@ class LearningGroups(commands.Cog):
         channel = await self.bot.fetch_channel(str(channel.id))
         group_config = self.groups["groups"].get(str(channel.id))
         guild = await self.bot.fetch_guild(int(self.guild_id))
+        mods = guild.get_role(int(self.mod_role))
 
-        overwrites = {guild.default_role: disnake.PermissionOverwrite(read_messages=False)}
+        overwrites = {
+            mods: disnake.PermissionOverwrite(read_messages=True),
+            guild.default_role: disnake.PermissionOverwrite(read_messages=False)
+        }
 
         if not group_config:
             return overwrites
@@ -428,7 +434,7 @@ class LearningGroups(commands.Cog):
     @commands.group(name="lg", aliases=["learninggroup", "lerngruppe"], pass_context=True)
     async def cmd_lg(self, ctx):
         if not ctx.invoked_subcommand:
-            await self.cmd_module_info(ctx)
+            await ctx.channel.send("Gib `!help lg` ein um eine Übersicht über die Lerngruppen-Kommandos zu erhalten.")
 
     @help(
         command_group="lg",
@@ -688,11 +694,17 @@ class LearningGroups(commands.Cog):
         brief="Fügt einen Benutzer zu einer Lerngruppe hinzu.",
         parameters={
             "@usermention": "Der so erwähnte Benutzer wird zur Lerngruppe hinzugefügt.",
-            "#channel": "Der Kanal dem der Benutzer hinzugefügt werden soll."
+            "#channel": "(optional) Der Kanal dem der Benutzer hinzugefügt werden soll."
         }
     )
     @cmd_lg.command(name="addmember", aliases=["addm", "am"])
-    async def cmd_add_member(self, ctx, arg_member: disnake.Member, arg_channel: disnake.TextChannel):
+    async def cmd_add_member(self, ctx, arg_member: disnake.Member, arg_channel: disnake.TextChannel = None):
+        if not arg_channel:
+            if not self.channels.get(str(ctx.channel.id)):
+                await ctx.channel.send("Wenn das Kommando außerhalb eines Lerngruppenkanals aufgerufen wird, muss der" 
+                                       "Lerngruppenkanal angehängt werden. `!lg addmember <@usermention> <#channel>`")
+                return
+            arg_channel = ctx.channel
         if self.is_group_owner(arg_channel, ctx.author) or utils.is_mod(ctx):
             await self.add_member_to_group(arg_channel, arg_member)
             await self.update_permissions(arg_channel)
@@ -730,14 +742,15 @@ class LearningGroups(commands.Cog):
 
         users = group_config.get("users")
         if not users:
-            await ctx.channel.send("Keine Benutzer vorhanden.")
+            await ctx.channel.send("Keine Lerngruppenmitglieder vorhanden.")
+
             return
 
         names = []
         for user_id in users:
             user = await self.bot.fetch_user(user_id)
             names.append("@" + user.name)
-        await ctx.channel.send(f"Members:  {', '.join(names)}")
+        await ctx.channel.send(f"Mitglieder:  {', '.join(names)}")
 
     @help(
         command_group="lg",
-- 
GitLab