gpt4 book ai didi

python - 带 Discord.py 跳线的 Discord Bot

转载 作者:行者123 更新时间:2023-11-28 22:17:50 25 4
gpt4 key购买 nike

我今天尝试制作一个基于 python discord.py 的机器人来获得一点乐趣,并遵循一些随机教程并复制代码,效果很好,一旦我掌握了它,我添加了一些新命令,但显然大多数命令随机停止工作,并且出于某种原因,现在只有最底部的命令实际上在不一致的情况下运行,有什么想法可能是这样吗?代码:

import discord
from discord.ext import commands

description = 'Tutorial Bot'
bot_prefix = '!'

client = commands.Bot(description=description, command_prefix=bot_prefix)

list_of_strings = ['hello', 'hi']

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

@client.event
async def on_message(message):
if message.content.startswith('!what'):
await client.send_message(message.channel, 'Huh?')

@client.event
async def on_message(message):
if message.content in list_of_strings:
await client.send_message(message.channel, 'Hey there')

client.run('*set to code before attempting*')

我已将 client.run 设置为最新代码,但每当我使用底部字符串列表命令时,它都可以正常工作,但 !what 部分不起作用。我尝试反转它们,但同样的问题仍然存在,无论它们的顺序如何,只有最底部的一个可以工作。是否有一些明显的我可能在这里遗漏的东西?

最佳答案

我不是 Python 专家,但您的部分问题可能是两个函数声明完全以相同的方式定义。我想第二个函数正在重新定义第一个函数。

@client.event
async def on_message(message):
//Function 1 code
@client.event
async def on_message(message):
//Function 2 code

不要使用两个,而是将第二个条件转移到第一个中,如下所示:

@client.event
async def on_message(message):
if message.content.startswith('!what'):
await client.send_message(message.channel, 'Huh?')

elif message.content in list_of_strings:
await client.send_message(message.channel, 'Hey there')

关于python - 带 Discord.py 跳线的 Discord Bot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51005282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com