不和谐py。无法在嵌入中发送原因

时间:2021-04-07 17:54:16

标签: python discord discord.py

我正在尝试制作服务器黑名单机器人。当命令被执行时,它会向#blackllisted-servers 发送一个嵌入。

@client.command(name="serverblacklist")
@commands.has_permissions(administrator=True)
async def server_blacklist(ctx, guild_id: int,*,reason="No reason specified"):
    await ctx.send("Server has been blaclisted! " + reason)
    channel = client.get_channel(828860015783575632)

    embed = Embed(title="Server blacklisted", description="**Added by:** <@671577320632614962> \n**Reason:** {reason}", colour=0xFF0000)
    await channel.send(embed=embed)
    # To add a guild id to the file:
    with open("blacklisted guilds.txt", "a") as blacklistfile:
        blacklistfile.write(f"{guild_id}\n") 

我的问题是:

  1. 如何指定原因,使其不会像这样发送{reason} https://media.discordapp.net/attachments/614194370316337174/829412952385257513/unknown.png

  2. 我将所有列入黑名单的服务器 ID 保存在 .txt 文件中。执行命令时是否可以获取添加的 id。并添加一个 Server: (serverid)

  3. 我如何提及用户,因为 {message.author.mention} 不起作用

1 个答案:

答案 0 :(得分:2)

请不要在一篇文章中提出多个问题,因为它们都涉及不同的主题。

对于您的第一个问题:您必须使用 f-strings 才能正确显示。

您的新描述将是

description=f"**Added by:** {ctx.message.author.name} \n**Reason:** {reason}"

否则它只会显示:“添加者: <@671577320632614962> + 原因: {reason}”

要提及用户/消息作者,请使用以下内容:

f"{ctx.message.author.name}"

您确实也可以读出文本文件,但我更愿意使用 JSON 文件,这取决于您。