我见过很多这样的问题,目前我遇到了同样的问题。我的机器人没有响应“清除”命令。我尝试了不同的方法,但仍然无效。我在命令的开头和结尾打印了两次,似乎第一个工作正常,但第二个没有。那到底是怎么回事?
@commands.command()
async def clear(self, ctx, *, limit=100):
channel = ctx.message.author.discord.text_channel.name
await channel.purge(limit = amount)
这就是代码。它也在一个齿轮中。我还提到我打印了两次:
@commands.command()
async def clear(self, ctx, *, limit=100):
print("x")
channel = ctx.message.author.discord.text_channel.name
await channel.purge(limit = amount)
print("y")
运行命令时基本上只有 x 被打印出来。所以问题必须是await channel.purge(limit = amount
。任何人有任何想法?任何答案将不胜感激! 另外我忘了说没有错误。
答案 0 :(得分:3)
您的函数有两个问题。
正如 RandomGuy 的回答所示,您需要 limit = limit
,因为您已将清除限制变量声明为 limit
而不是 amount
。
您还试图从频道名称中清除,而不是从频道对象中清除。您需要更改此行:
channel = ctx.message.author.discord.text_channel.name
到:
channel = ctx.channel
答案 1 :(得分:1)
未定义数量 var 您应该使用 limit
await channel.purge(limit = limit)