You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.5KB

  1. import discord
  2. from config.server_config import ServerConfig
  3. class JoinLeave():
  4. def __init__(self, Bot):
  5. self.bot = Bot
  6. self.con = ServerConfig()
  7. self.servers = self.con.servers
  8. async def on_member_join(self, member):
  9. """
  10. Greets users when they join a server.
  11. """
  12. self.con.load_config()
  13. if not self.servers[member.server.id]["greets"]["enabled"]:
  14. return
  15. if self.servers[member.server.id]["greets"]["custom-message"]:
  16. message = self.servers[member.server.id]["greets"]["custom-message"]
  17. else:
  18. message = self.servers[member.server.id]["greets"]["default-message"]
  19. em = discord.Embed(
  20. title="Welcome to {}!".format(member.server),
  21. description='Hey {}! Welcome to **{}**! {}'.format(member.mention, member.server, message),
  22. colour=0xDEADBF)
  23. em.set_thumbnail(url=member.avatar_url)
  24. if self.servers[member.server.id]["greets"]["welcome-channel"]:
  25. channel = discord.Object(self.servers[member.server.id]["greets"]["welcome-channel"])
  26. else:
  27. channel = member.server.default_channel
  28. return await self.bot.send_message(channel, embed=em)
  29. async def on_member_remove(self, member):
  30. """
  31. The same but the opposite
  32. """
  33. self.con.load_config()
  34. if not self.servers[member.server.id]["goodbyes"]["enabled"]:
  35. return
  36. else:
  37. return await self.bot.send_message(member.server,embed=discord.Embed(
  38. description="{}#{} has left or been beaned.".format(member.name, member.discriminator), colour=0xDEADBF))
  39. def setup(Bot):
  40. Bot.add_cog(JoinLeave(Bot))