如何在discord.py中合并2个on_message函数

时间:2021-02-20 09:48:07

标签: python discord discord.py

我需要在discord.py重写1.6.0版本中将这3个on_message函数合并为1个函数,我该怎么办?

import discord

client = discord.Client()

@client.event
async def on_ready():
    print('in on_ready')

@client.event
async def on_message(hi):
    print("hello")

@client.event
async def on_message(Hey there):
    print("General Kenobi")

@client.event
async def on_message(Hello):
    print("Hi")

client.run("TOKEN")

1 个答案:

答案 0 :(得分:1)

on_message 函数定义为:

async def on_message(message)

因此您需要检查 on_message 命令中的消息内容并根据其内容做任何您需要的操作,为此您可以使用 Message 对象的 content 属性,如此处定义here

@client.event
async def on_message(message):
    if message.content == "hi":
        print("hello")
    elif message.content == "Hey there":
        print("General Kenobi")
    elif message.content == "Hello":
        print("Hi")

请注意,如果您希望机器人实际发送消息,则需要将 print(...) 替换为 await message.channel.send(...),因为这是您发送消息的方式,print 仅输出默认到终端。