You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让我的Discord bot仅在代码中两个变量相等时发送消息?

Discord Bot运行错误修复方案

代码存在的问题

  • client.run()是阻塞启动方法,放置在业务逻辑前会导致后续获取频道、定义事件的代码完全无法执行,必须放在代码的最后一行
  • 没有用@client.event装饰器修饰on_ready函数,Discord客户端无法识别这个事件回调
  • 缩进错误:if分支下的await语句没有对应缩进,else块位置错误,应该放在on_ready函数内部与if平级
  • 频道获取操作执行时机不对:客户端还未完成登录连接时调用client.get_channel只会返回None,必须放在on_ready内部执行

修正后的可用代码

import discord

client = discord.Client()

v1 = 1
v2 = 2 # 测试时修改为1即可触发发消息逻辑

@client.event
async def on_ready():
    # 客户端登录完成后再获取频道
    announcements1 = client.get_channel(123123) # 替换为你自己的频道ID
    if v1 == v2:
        await announcements1.send('hello')
    else:
        print("no")

# client.run必须放在代码最后
client.run('123123') # 替换为你自己的bot token

你的需求完全可以实现,将v1和v2设置为相等值后启动bot,登录完成就会自动往指定频道发送hello消息。

内容的提问来源于stack exchange,提问作者Marco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:09:04