📅  最后修改于: 2023-12-03 14:40:45.208000             🧑  作者: Mango
Discord.py 是一个Python库,用于编写功能丰富的机器人和应用程序,它提供了许多方便的函数和方法,用于获取和处理用户输入,本篇介绍如何在 Discord.py 中获取用户输入。
获取文本频道中用户的消息可以使用 on_message
函数,该函数会在每个新消息到达时调用。
async def on_message(message):
# 判断消息是否为用户发送
if message.author == client.user:
return
# 判断消息是否为指令
if message.content.startswith('!hello'):
await message.channel.send('Hello!')
在上面的示例中,当用户在任何一个文本频道发出以 !hello
开头的消息时,机器人将向该频道发送消息 Hello!
。
Discord.py中也可以在私聊频道中获取用户输入,使用与文本频道相同的方式,只需将 on_message
函数更改为 on_private_message
即可。
async def on_private_message(message):
# 判断消息是否为用户发送
if message.author == client.user:
return
# 回复消息
await message.channel.send('你好,这是私聊频道!')
在上面的示例中,当机器人接收到私聊频道的消息时,将回复 你好,这是私聊频道!
。
获取用户在文本频道或私聊频道中使用 !command
等命令的参数输入时,可以使用 ctx
和 arguments
。
@client.command()
async def greet(ctx, arg):
await ctx.send(f"Hello, {arg}!")
在上面的示例中, arg
参数用于接收用户从 !greet
命令传递的输入,机器人将回复类似于 Hello, World!
的消息,其中 World
是输入。
在 Discord.py 中获取用户输入的方法取决于您需要从哪个频道获取输入,并且可以使用 on_message
函数和 on_private_message
函数来获取用户在文本和私聊频道中的消息,使用 ctx
和 arguments
来接受命令参数输入。