Jelajahi Sumber

Added a Head of Unit role and Supervisor role for Department 1 and Department 2 as permissions for unit assignment commands. Finished the unit assignment command.

BaumSplitter41 4 bulan lalu
induk
melakukan
0f58d398e0
2 mengubah file dengan 39 tambahan dan 11 penghapusan
  1. 35 9
      VPD_BOT/cogs/unit.py
  2. 4 2
      VPD_BOT/config.cfg

+ 35 - 9
VPD_BOT/cogs/unit.py

@@ -16,8 +16,7 @@ class unit(commands.Cog):
         self,
         ctx,
         user: str = Option(discord.User, "Select User", required=True),
-        #unit: str = Option(str, "Select Unit", required=True),
-        unit=["Detective", "SWAT", "Canine", "Air Support"]
+        unit: str = Option(str, "Select Unit", required=True)
     ):
         if user not in ctx.guild.members:
             await ctx.respond("The selected user is not a member on this Server!", ephemeral=True)
@@ -34,20 +33,32 @@ class unit(commands.Cog):
         config.read_file(open(configFilePath))
 
 #Role configuration
-        department1_role_id = config.get('Einweisung', 'department1_role_id').split(', ')
+        department1_role_id = config.get('Einweisung', 'department1_role_id')
         department1_role = ctx.guild.get_role(int(department1_role_id))
-        #department2_role_id = config.get('Role Management', 'department2_role_id').split(', ')
+        #department2_role_id = config.get('Role Management', 'department2_role_id')
         #department2_role = ctx.guild.get_role(int(department2_role_id))
+        department1_head_unit_id = int(config.get('Role Management', 'department1_head_unit'))
+        department1_head_unit = server.get_role(department1_head_unit_id)
+        department1_supervisor_role_id = int(config.get('Einweisung', 'department1_supervisor_id'))
+        department1_supervisor_role = server.get_role(department1_supervisor_role_id)
 
         department1_units_id = config.get('Role Management', 'department1_units').split(', ')
         department1_units = [ctx.guild.get_role(int(role_id)) for role_id in department1_units_id]
         #department2_units_id = config.get('Role Management', 'department2_units').split(', ')
         #department2_units = [ctx.guild.get_role(int(role_id)) for role_id in
+        #department2_head_unit_id = int(config.get('Role Management', 'department2_head_unit'))
+        #department2_head_unit = server.get_role(department2_head_unit_id)
+        #department2_supervisor_role_id = int(config.get('Einweisung', 'department2_supervisor_id'))
+        #department2_supervisor_role = server.get_role(department2_supervisor_role_id)
 
         if department1_role in user.roles:
-            units = "department1"
+            units = department1_units
+            supervisor_role = department1_supervisor_role
+            head_unit_role = department1_head_unit
         #elif department2_role in user.roles:
             #units = "department2"
+            #supervisor_role = department2_supervisor_role
+            #head_unit_role = department2_head_unit
         else:
             await ctx.respond("The selected user is not a member of any department!", ephemeral=True)
             return
@@ -55,16 +66,31 @@ class unit(commands.Cog):
 
 #Command implementation
         if unit == "Detective":
-            unit_role = int(department1_units[0])
+            unit_role = int(units[0])
         elif unit == "SWAT":
-            unit_role = int(department1_units[1])
+            unit_role = int(units[1])
         elif unit == "Canine":
-            unit_role = int(department1_units[2])
+            unit_role = int(units[2])
         elif unit == "Air Support":
-            unit_role = int(department1_units[3])
+            unit_role = int(units[3])
         else:
             await ctx.respond("The selected unit does not exist!", ephemeral=True)
             return
+        
+
+        unit_role = server.get_role(unit_role)
+        if ctx.author == supervisor_role or ctx.author == head_unit_role:
+            if unit_role in user.roles:
+                await user.remove_roles(unit_role)
+                await ctx.respond(f"The user {user.mention} has been removed from the unit successfully!", ephemeral=True)
+            else:
+                await user.add_roles(unit_role)
+                await ctx.respond(f"The user {user.mention} has been added to the unit successfully!", ephemeral=True)
+        else:
+            await ctx.respond("You do not have permission to use this command!", ephemeral=True)
+            return
+        
+
 
 
 

+ 4 - 2
VPD_BOT/config.cfg

@@ -27,8 +27,10 @@ department2_deputy_id =
 [Role Management]
 department1_command = 1451668309648084992
 department1_ranks = 1459935618371948743, 1459935662102020279, 1459935773108338921, 1459935923608223766, 1459945390571782245, 1459945659548565634, 1459936064612466861, 1459936186922700912, 1459936215766667448, 1459936269168541736, 1459936307974373427 
-department1_units = 1448793349627838556, 1450499400488058930, 1461039851762876584, 1461039891633803364
+department1_units = 1448793349627838556, 1450499400488058930, 1461039851762876584, 
+department1_head_unit = 1461050183000391680
 
 department2_command =
 department2_ranks =
-department2_units =
+department2_units =
+department2_head_unit =