import discord
from discord.ext import commands
async def anyfunc(ctx):
await ctx.send(f"{ctx.message.author.mention}, "Hi!")
bot_message_id = ((bot's_last_message)).id
在(())中添加什么以使漫游器记住它将发送的消息的ID? 有没有办法将下一条(例如,用户的)消息(尚未发送)的ID用作变量?
答案 0 :(得分:1)
ctx.send()
返回其发送的消息的discord.Message
实例,因此您可以将其存储在变量中。
message = await ctx.send(f"{ctx.message.author.mention}, Hi!")
# do what you want with the message, in your case getting it's id
bot_message_id = message.id
关于第二个问题,如果要获得用户对该消息的响应(这样特定用户将发送下一条消息),则可以使用内置的wait_for
。 / p>
def check(message):
return message.author.id == the_id_of_that_user
message = await bot.wait_for("message", check=check)
这样,该漫游器就会从字面上wait for
发送一条消息,使您的check
函数返回True
,或者在这种情况下,该用户发送的消息。有关详细信息,请参见相关的API documentation。
答案 1 :(得分:-1)
我不太清楚您的问题,但我会尽力回答。根据{{3}},您可以使用channel.history().get()
得到某人的最后一条消息。所以这是一个例子:
import discord
from discord.ext import commands
async def anyfunc(ctx):
await ctx.send(f"{ctx.message.author.mention}, Hi!")
bot_message_id = await ctx.channel.history().get(author__name="Bot's name").id
这可能会起作用,但是如果出现错误,也许您可以尝试使用author__id=bot's id
而不是author__name
。