einweisung.py 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import discord
  2. from discord.ext import commands
  3. from discord.commands import Option
  4. from discord.commands import slash_command
  5. import configparser
  6. class einweisung(commands.Cog):
  7. def __init__(self, bot: discord.Bot):
  8. self.bot = bot
  9. #Command initialization
  10. @slash_command(name="einweisung", description="Freischalten eines User nach der Einweisung")
  11. async def einweisung(
  12. self,
  13. ctx,
  14. user: discord.User = Option(discord.User, "Select User"),
  15. ):
  16. if user is None:
  17. user = ctx.author
  18. elif user not in ctx.guild.members:
  19. await ctx.respond("The selected user is not a member on this Server!", ephemeral=True)
  20. return
  21. elif user == self.bot.user:
  22. await ctx.respond(f"This is me - the {self.bot.user}", ephemeral=True)
  23. return
  24. server = ctx.guild
  25. config = configparser.RawConfigParser()
  26. configFilePath = r'config.cfg'
  27. config.read_file(open(configFilePath))
  28. #Role Configuration
  29. acces_role_id = int(config.get('Einweisung', 'acces_role_id'))
  30. acces_role = server.get_role(acces_role_id)
  31. uneingewiesen_role_id = int(config.get('Einweisung', 'uneingewiesen_role_id'))
  32. uneingewiesen_role = server.get_role(uneingewiesen_role_id)
  33. department1_supervisor_id = int(config.get('Einweisung', 'department1_supervisor_id'))
  34. department1_role_id = int(config.get('Einweisung', 'department1_role_id'))
  35. department1_role = server.get_role(department1_role_id)
  36. department1_supervisor = server.get_role(department1_supervisor_id)
  37. department1_deputy_id = int(config.get('Einweisung', 'department1_deputy_id'))
  38. department1_deputy = server.get_role(department1_deputy_id)
  39. department1_unit_role_id = int(config.get('Einweisung', 'department1_unit_role_id'))
  40. department1_unit_role = server.get_role(department1_unit_role_id)
  41. #department2_supervisor_id = int(config.get('Einweisung', 'department2_supervisor_id'))
  42. #department2_role_id = int(config.get('Einweisung', 'department2_role_id'))
  43. #department2_role = server.get_role(department2_role_id)
  44. #department2_supervisor = server.get_role(department2_supervisor_id)
  45. #department2_deputy_id = int(config.get('Einweisung', 'department2_deputy_id'))
  46. #department2_deputy = server.get_role(department2_deputy_id)
  47. #department2_unit_role_id = int(config.get('Einweisung', 'department2_unit_role_id'))
  48. #department2_unit_role = server.get_role(department2_unit_role_id)
  49. #Command implemetation
  50. if department1_role is None or department1_supervisor is None or acces_role is None or department1_deputy is None:
  51. await ctx.respond("One or more roles are not configured properly!", ephemeral=True)
  52. return
  53. if department1_supervisor in ctx.author.roles:
  54. n = 1
  55. #elif department2_supervisor in ctx.author.roles:
  56. #n = 2
  57. else:
  58. await ctx.respond("You don't have permission to use this command!", ephemeral=True)
  59. return
  60. try:
  61. if n == 1:
  62. await user.add_roles(department1_role, department1_deputy, acces_role, department1_unit_role)
  63. await user.remove_roles(uneingewiesen_role)
  64. #elif n == 2:
  65. # await user.add_roles(department2_role, department2_deputy, acces_role)
  66. # await user.remove_roles(uneingewiesen_role)
  67. except discord.Forbidden:
  68. await ctx.respond("I don't have permission to assign roles!", ephemeral=True)
  69. return
  70. embed = discord.Embed(title="Einweisung abgeschlossen", color=0x00ff00)
  71. embed.add_field(name="User Freigeschaltet:", value=f"{user.mention} wurde erfolgreich freigeschaltet.", inline=False)
  72. await ctx.respond(embed=embed, ephemeral=True)
  73. def setup(bot: discord.Bot):
  74. bot.add_cog(einweisung(bot))