From f56c0080a2703d12254efd3bd12072365984894e Mon Sep 17 00:00:00 2001
From: dnns01 <mail@dnns01.de>
Date: Mon, 2 Nov 2020 20:45:04 +0100
Subject: [PATCH] Whenever a degree program role is added, the default student
 role is assigned, too

---
 roles_cog.py | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/roles_cog.py b/roles_cog.py
index 3283a61..b90343e 100644
--- a/roles_cog.py
+++ b/roles_cog.py
@@ -7,6 +7,16 @@ from discord.ext import commands
 import utils
 
 
+def get_student_role(guild):
+    student_role_id = int(os.getenv("DISCORD_STUDENTIN_ROLE"))
+
+    for role in guild.roles:
+        if role.id == student_role_id:
+            return role
+
+    return None
+
+
 class RolesCog(commands.Cog):
     def __init__(self, bot):
         self.bot = bot
@@ -163,12 +173,14 @@ class RolesCog(commands.Cog):
             return
 
         role_name = ""
+        student_role = None
         guild = await self.bot.fetch_guild(payload.guild_id)
         member = await guild.fetch_member(payload.user_id)
         roles = member.roles
 
         if payload.emoji.name in self.assignable_roles[0]:
             role_name = self.assignable_roles[0].get(payload.emoji.name)
+            student_role = get_student_role(guild)
         else:
             role_name = self.assignable_roles[1].get(payload.emoji.name)
 
@@ -182,3 +194,5 @@ class RolesCog(commands.Cog):
             for role in guild_roles:
                 if role.name == role_name:
                     await member.add_roles(role)
+                    if student_role:
+                        await member.add_roles(student_role)
-- 
GitLab