コード例 #1
0
ファイル: nabbot.py プロジェクト: LadyKeladry/NabBot
    async def on_member_unban(self, guild: discord.Guild, user: discord.User):
        """Called when a member is unbanned from a guild"""
        now = dt.datetime.utcnow()
        log_message = "{1.name}#{1.discriminator} (ID:{1.id}) was unbanned from {0.name}".format(
            guild, user)
        bot_member = guild.me  # type: discord.Member

        embed = discord.Embed(description="Unbanned")
        icon_url = get_user_avatar(user)
        embed.set_author(name="{0.name}#{0.discriminator}".format(user),
                         icon_url=icon_url)
        embed.timestamp = now
        embed.colour = discord.Colour(0xff9000)

        if bot_member.guild_permissions.view_audit_log:
            async for entry in guild.audit_logs(
                    limit=10,
                    reverse=False,
                    action=discord.AuditLogAction.unban,
                    after=now -
                    dt.timedelta(0, 5)):  # type: discord.AuditLogEntry
                if abs((entry.created_at - now).total_seconds()) >= 5:
                    # After is broken in the API, so we must check if entry is too old.
                    break
                if entry.target.id == user.id:
                    icon_url = get_user_avatar(entry.user)
                    embed.set_footer(text="{0.name}#{0.discriminator}".format(
                        entry.user),
                                     icon_url=icon_url)
                    log_message += f"by {entry.user.name}"
                    break
        log.warning(log_message)
        await self.send_log_message(guild, embed=embed)
コード例 #2
0
 async def on_guild_join(self, guild: discord.Guild):
     """Called when the bot joins a guild (server)."""
     log.info(
         "Nab Bot added to server: {0.name} (ID: {0.id})".format(guild))
     message = f"**I've been added to this server.**\n" \
               f"Some things you should know:\n" \
               f"‣ My command prefix is: `{config.command_prefix[0]}` (it is customizable)\n" \
               f"‣ You can see all my commands with: `{config.command_prefix[0]}help` or " \
               f"`{config.command_prefix[0]}commands`\n" \
               f"‣ You can configure me using: `{config.command_prefix[0]}settings`\n" \
               f"‣ You can set a world for me to track by using `{config.command_prefix[0]}settings world`\n" \
               f"‣ If you want a logging channel, create a channel named `{config.log_channel_name}`\n" \
               f"‣ If you need help, join my support server: **<https://discord.me/NabBot>**\n" \
               f"‣ For more information and links in: `{config.command_prefix[0]}about`"
     for member in guild.members:
         if member.id in self.members:
             self.members[member.id].append(guild.id)
         else:
             self.members[member.id] = [guild.id]
     try:
         channel = self.get_top_channel(guild)
         if channel is None:
             log.warning(
                 f"Could not send join message on server: {guild.name}. No allowed channel found."
             )
             return
         await channel.send(message)
     except discord.HTTPException as e:
         log.error(f"Could not send join message on server: {guild.name}.",
                   exc_info=e)
コード例 #3
0
def on_member_unban(server: discord.Server, user: discord.User):
    """Chamado sempre que um membro é desbanido de um servidor."""
    log.warning("{1.name} (ID:{1.id}) was unbanned from {0.name}".format(server, user))
    yield from send_log_message(bot, server, "**{0.name}#{0.discriminator}** was unbanned.".format(user))
コード例 #4
0
def on_member_ban(member: discord.Member):
    """Chamado sempre que um membro é banido de um servidor."""
    log.warning("{0.display_name} (ID:{0.id}) was banned from {0.server.name}".format(member))
    yield from send_log_message(bot, member.server, "**{0.name}#{0.discriminator}** was banned.".format(member))