python - 如何将 ID 更改为 Ping(PyCharm,Python 3.9)
问题描述
我已经发出了这个狙击命令(来自 Stackoverflow 问题),但是当机器人回答时,标题显示已删除消息的作者的 ID,而不是 ping 或名称。我该如何改变它?
代码:
snipe_message_content = None
snipe_message_author = None
snipe_message_id = None
@bot.event
async def on_message_delete(message):
global snipe_message_content
global snipe_message_author
global snipe_message_id
snipe_message_content = message.content
snipe_message_author = message.author.id
snipe_message_id = message.id
await asyncio.sleep(60)
if message.id == snipe_message_id:
snipe_message_author = None
snipe_message_content = None
snipe_message_id = None
@bot.command()
async def snipe(message):
if snipe_message_content is None:
await message.channel.send("Theres nothing to snipe.")
else:
embed = discord.Embed(description=f"{snipe_message_content}")
embed.set_footer(text=f"Asked by {message.author.name}#{message.author.discriminator}", icon_url=message.author.avatar_url)
embed.set_author(name=f"<@{snipe_message_author}>")
await message.channel.send(embed=embed)
return
解决方案
不幸的是,您无法在author
嵌入部分中 ping 用户。但是,您可以说出他们的名字,这就是我们要做的。
作者姓名
获取作者姓名就像将snipe_message_author = message.author.id
(获取 ID)更改为snipe_message_author = message.author.name
.
显示作者姓名
要以良好的格式显示作者姓名,请从显示姓名的位置删除“<@ >”。
代码
@client.event
async def on_message_delete(message):
global snipe_message_content
global snipe_message_author
global snipe_message_id
snipe_message_content = message.content
snipe_message_author = message.author.name
snipe_message_id = message.id
await asyncio.sleep(60)
if message.id == snipe_message_id:
snipe_message_author = None
snipe_message_content = None
snipe_message_id = None
@client.command()
async def snipe(message):
if snipe_message_content is None:
await message.channel.send("Theres nothing to snipe.")
else:
embed = discord.Embed(description=f"{snipe_message_content}")
embed.set_footer(text=f"Asked by {message.author.name}#{message.author.discriminator}", icon_url=message.author.avatar_url)
embed.set_author(name=f"{snipe_message_author}")
await message.channel.send(embed=embed)
return
输出
编辑
不小心泄露了我的不和谐名称和鉴别器,将鉴别器更改为随机整数。代码仍然有效。
推荐阅读
- javascript - 使用 reactDOM.render 渲染时出现问题
- python - 在正则表达式的末尾添加不同的数字
- java - 使用 JNI 授予对 Android 应用程序的 C/C++ 本机端的 root 访问权限,这似乎是不可能的
- c++ - 将 cv::Mat 转换为 std::vector 的通用函数
- c# - 使用 DbConnection、SqlConnection、SqlCommand、DbCommand 等连接数据库
- python - Python函数将所有直方图绘制到同一个图中,而不是为每次迭代创建不同的图
- python - 如何强制将python输出保存为excel文件?
- angular - 用 Hammerjs 从每个点捏
- python - Python忽略缺失值
- javascript - 将基本轮询变成长轮询