我在使用discord.py时遇到了一些问题。我想使用on_typing事件来记录日志之类的,但它不起作用。我试过这么做
intents = discord.Intents.default()
intents.typing = True
client = discord.Client(intents=intents)这是所有的代码。on_ready和on_message运行良好,但on_typing。如何让它工作?
@client.event
async def on_ready():
logger.info("But successfully runned!")
@client.event
async def on_typing(channel, user, when):
logger.info("{} is typing message in {} : {}".format(user.name, channel, when))
@client.event
async def on_message(message):
logger.info("{} has just sent {}".format(message.author, message.content))发布于 2020-12-10 01:30:37
我相信这是你的错误:
intents = discord.Intents.default()
intents.typing = True
client = discord.Client(intents=intents)不要写intents.typing = True这一行,只需在开头启用所有意图即可。为此,您需要删除intents.typing = True行,然后用intents = discord.Intents.all()替换intents = discord.Intents.default(),然后就是这样(确保您已经在Discord Dev Portal中启用了intents )!根据你的机器人ping,它不会立即检测到输入,而是几毫秒之后。因此,结束代码将如下所示:
intents = discord.Intents.all()
client = discord.Client(intents=intents)那么您调用on_typing事件就是正确的!希望这能有所帮助!如果您对我的代码或不可预见的错误有任何后续问题,请随时跟进!
发布于 2020-12-10 06:46:56
您是否尝试过将on_typing事件和on_message事件替换为@client.listen,例如:
@client.event
async def on_ready():
logger.info("But successfully runned!")
@client.listen
async def on_typing(channel, user, when):
logger.info("{} is typing message in {} : {}".format(user.name, channel, when))
@client.listen
async def on_message(message):
logger.info("{} has just sent {}".format(message.author, message.content))我在制作加入消息时遇到了这个问题,这似乎解决了它。
https://stackoverflow.com/questions/65083011
复制相似问题