首页 > 解决方案 > 如何修复嵌入不发送踢/禁止(discord.py)

问题描述

当我运行我的 kick/ban 命令时,我希望它向执行命令的频道发送一个嵌入消息,以宣布谁被禁止。我在代码中有它,但是当用户被踢时它不会发布。我将如何解决这个问题?

@commands.has_permissions(kick_members=True)
async def kick(context, member : discord.Member, *, reason=None):
    # Conditions  
    if reason == None:
        await context.channel.send("**``Please provide a reason for why this member should be kicked!``**", delete_after=3)
    else:
        # Await Kick
        await member.kick(reason=reason)

        # Send Embed in Server
        myEmbed = discord.Embed(title="CRYPTIC Moderation", color=0x000000)
        myEmbed.add_field(description=f'{member.mention} has been successfully kicked for: **``{reason}``**!')
        myEmbed.set_footer(icon_url=context.author.avatar_url, text=f'Invoked by {context.message.author}')

        await context.message.channel.send(embed=myEmbed) 

        # DM Kicked User
        if member.dm_channel == None:
            await member.create_dm()
        await member.dm_channel.send(
            content=f"You have been kicked from **``{context.guild}``** by {context.message.author} for **``{reason}``**!"
        ) ```


The DM part works in both commands, but the embed doesn't work in either. Thank you.

标签: pythondiscorddiscord.py

解决方案


问题是,您添加了一个字段,而不是仅向嵌入添加描述,但字段具有nameandvalue和 not description。因此,请在您设置嵌入标题的位置设置描述:

#@bot.command or something similar is missing here. Copy and paste error?
@commands.has_permissions(kick_members=True)
async def kick(context, member : discord.Member, *, reason=None):
    # Conditions  
    if reason == None:
        await context.channel.send("**``Please provide a reason for why this member should be kicked!``**", delete_after=3)
    else:
        # Await Kick
        await member.kick(reason=reason)

        # Send Embed in Server
        myEmbed = discord.Embed(title="CRYPTIC Moderation", color=0x000000, description=f'{member.mention} has been successfully kicked for: **``{reason}``**!') #add the description where you add the title
        myEmbed.set_footer(icon_url=context.author.avatar_url, text=f'Invoked by {context.message.author}')

        await context.message.channel.send(embed=myEmbed) 

        # DM Kicked User
        if member.dm_channel == None:
            await member.create_dm()
        await member.dm_channel.send(
            content=f"You have been kicked from **``{context.guild}``** by {context.message.author} for **``{reason}``**!"
        ) ```

推荐阅读