测试将某些设置模块移至DM而不是在服务器通道中进行测试,就好像我在通道中进行操作一样,即使我将漫游器设置为忽略任何人,但人们仍然容易对响应感到困惑原始命令作者
我已经尝试了常用的wait_for
处理程序,但似乎无法使该机器人通过dm捕获输入
@commands.command(name="dmstats")
async def stat_dm(self, ctx):
member = ctx.author
stat_list = await self.get_stat_vals(ctx, member)
reply = await ctx.author.send("What value do you want?")
await self.bot.wait_for('message')
if reply.content.lower() == "strength":
await ctx.author.send("Your strength is: {}".format(stat_list["strength"]))
预计当我[p]dmstats
并触发命令时,机器人会向我发送DM并提示我,但这样做没有捕捉到我的响应
答案 0 :(得分:0)
如果您只想在DM通道中接受来自该用户的消息,则可以记录将消息发送给该用户的通道,然后将其作为对wait_for
的支票的一部分
@commands.command(name="dmstats")
async def stat_dm(self, ctx):
stat_list = await self.get_stat_vals(ctx, member)
msg = await ctx.author.send("What value do you want?")
def check(message):
return message.author == ctx.author and message.channel == msg.channel
reply = await self.bot.wait_for('message', check=check)
if reply.content.lower() == "strength":
await ctx.author.send("Your strength is: {}".format(stat_list["strength"]))