📌  相关文章
📜  discord.py 如何获取用户输入 - Python (1)

📅  最后修改于: 2023-12-03 14:40:45.208000             🧑  作者: Mango

Discord.py 如何获取用户输入

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 等命令的参数输入时,可以使用 ctxarguments

@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 函数来获取用户在文本和私聊频道中的消息,使用 ctxarguments 来接受命令参数输入。