| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import discord
- from discord.ext import commands
- from discord.commands import Option
- from discord.commands import slash_command
- import configparser
- import time
- #Gives supervisors an information, when a department member leaves the server.
- class infoleaving(commands.Cog):
- def __init__(self, bot: discord.Bot):
- self.bot = bot
-
- def _load_config(self):
- config = configparser.ConfigParser()
- configFilePath = r'config.cfg'
- config.read(configFilePath)
- return config
- def _get_info_channel(self):
- config = self._load_config()
- info_channel_id = int(config["Einweisung"]["info_channel_id"])
- info_channel = self.bot.get_channel(info_channel_id)
- if info_channel is None:
- print(f"Log channel with ID {info_channel_id} not found.")
- return None
- return info_channel
-
- @commands.Cog.listener()
- async def on_member_remove(self, member):
- config = self._load_config()
- enable_info = config.getboolean("Einweisung","enable_channel_info_on_leaving")
- if not enable_info:
- return
- info_channel = self._get_info_channel()
- if info_channel is None:
- return
- department_roles_ids = [int(role_id.strip()) for role_id in config.get("Role Management", "department1_ranks").split(",")]
- department_roles = [member.guild.get_role(role_id) for role_id in department_roles_ids]
- if any(role.id in department_roles for role in member.roles):
- embed = discord.Embed(
- title="Departmentmeber left the server.",
- description=f"{member.mention} has left the server. Name: {member.name}, {member.nick}, ID: {member.id}",
- color=discord.Color.dark_red(),
- timestamp=discord.utils.utcnow()
- )
- embed.set_footer(text=f"User ID: {member.id}")
- await info_channel.send(embed=embed)
- else:
- return
- def setup(bot: discord.Bot):
- bot.add_cog(infoleaving(bot))
|