当前位置: 首页 > 知识库问答 >
问题:

不一致pybot只响应一个命令

卢元龙
2023-03-14

它在给定时间仅显示一个命令
如果我写!你好!再见它不会工作,但如果我写!唱歌它会输出la-la
如果我切换前面的字符,它将变为!你好!唱不起作用,但是!再见工作和说再见

import os

client = discord.Client()

@client.event 
async def on_ready():
  print('We have logged in as {0.user}'
  .format(client))

@client.event
async def on_message(message):
  if message.author == client.user:
    return

  if message.content.startswith('!hi'):
    await message.channel.send('Hello!')

@client.event
async def on_message(message):
  if message.author == client.user:
    return

  if message.content.startswith('!bye'):
    await message.channel.send('Goodbye Friend!')

@client.event
async def on_message(message):
  if message.author == client.user:
    return

  if message.content.startswith('!sing'):
    await message.channel.send('la la la')

client.run(os.getenv('TOKEN'))```

共有3个答案

严正初
2023-03-14

不要重复on_message事件。只有一个,并将if语句放入这个事件中。

郭远
2023-03-14

只有一个事件,不要为每个命令创建新事件。

@client.event
async def on_message(message):
  if message.author == client.user:
    return
  elif message.content.startswith('!sing'):
    await message.channel.send('La La la.')
  elif message.content.startswith('!hi'):
    await message.channel.send('Hello!')
司迪
2023-03-14

您试图使用多个事件,而是在一个事件中使用所有事件,如下所示:

@client.event
async def on_message(message):
  if message.author == client.user:
    return

  if message.content.startswith('!hi'):
    await message.channel.send('Hello!')
 
  elif message.content.startswith('!bye'):
    await message.channel.send('Goodbye Friend!')

  elif message.content.startswith('!sing'):
    await message.channel.send('la la la')

另外,确保在其他事件中使用elif,而不是if。这应该可以了。

 类似资料:
  • 我需要在JavaFX中执行如下操作: 你能告诉我如何在GridPane布局中只改变一列(中间的一列)的大小吗?这些黑色边框的矩形是VBoxs。基本上,VBoxs的宽度必须保持不变,这个红色标记区域的宽度应该调整。有什么想法或建议吗?

  • 问题内容: 我正在通过通过IE插件注入到每个页面的iframe发出ajax请求。我正在使用IE的跨域请求,因为IE的jQuery的ajax失败。在IE8和9上,此功能的工作时间为75%。另外25%的时间甚至不会触发。 服务器php正在执行其工作…该日志在何时触发和不触发时看起来相同。另外,也不会触发。 有任何想法吗? 问题答案: 在最后一分钟发现了问题。就我而言,即使请求没有超时,我也需要指定一个

  • 我得到了一个unban命令代码,在控制台中出现以下错误: (节点:9348)未处理的PromisejectionWarning:TypeError:无法读取未定义的at对象的属性“member”。在客户端执行(C:\Users\19nik\Documents\GitHub\bot project\commands\unban.js:9:22)。(C:\Users\19nik\Documents\G

  • 如果我执行类似于它工作正常。 但是,我找不到一种方法使其适用于ping。我尝试了机器人ID和名称。我的机器人ID代码: 有人能帮忙吗?

  • 上面的代码正在运行。 我没有得到任何错误,但我也希望机器人显示他们是afk的原因,当他们提到。有人能帮忙吗?

  • 我在我的discord机器人上遇到了一个问题。命令不起作用。我认为代码不是问题。除了命令外,一切都很完美。不和谐,如果我使用!在这里测试mytext,什么都不会发生。 提前谢谢你!