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.

45 lines
1.2KB

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