我正在尝试制作服务器黑名单机器人。当命令被执行时,它会向#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")
我的问题是:
如何指定原因,使其不会像这样发送{reason} https://media.discordapp.net/attachments/614194370316337174/829412952385257513/unknown.png
我将所有列入黑名单的服务器 ID 保存在 .txt 文件中。执行命令时是否可以获取添加的 id。并添加一个 Server: (serverid)
我如何提及用户,因为 {message.author.mention} 不起作用
答案 0 :(得分:2)
请不要在一篇文章中提出多个问题,因为它们都涉及不同的主题。
对于您的第一个问题:您必须使用 f-strings
才能正确显示。
您的新描述将是:
description=f"**Added by:** {ctx.message.author.name} \n**Reason:** {reason}"
否则它只会显示:“添加者: <@671577320632614962> + 原因: {reason}”
要提及用户/消息作者,请使用以下内容:
f"{ctx.message.author.name}"
您确实也可以读出文本文件,但我更愿意使用 JSON 文件,这取决于您。