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

Discord真心话大冒险机器人调用无响应问题求助

Discord 真心话大冒险机器人无响应问题排查与修复

问题概述

开发的Discord真心话大冒险机器人部署在Replit平台,已成功上线且配置了管理员、读取消息及发送消息权限,但执行!truth、!dare命令时机器人无任何响应,运行过程中未出现报错信息。

问题根源

代码存在两个核心问题:

  • 缺少消息内容读取权限:Discord的Intents.default()默认不包含message_content权限,而命令解析模块需要读取消息内容才能识别命令前缀与具体指令。
  • 冗余的命令处理调用:在truth和dare命令函数中调用await bot.process_commands(ctx.message)会触发重复的命令处理流程,干扰正常逻辑执行。

修复后的完整代码

import discord
from discord.ext import commands
import random

# 配置机器人所需的意图,新增消息内容读取权限
intents = discord.Intents.default()
intents.typing = False
intents.presences = False
intents.message_content = True  # 开启消息内容读取权限,命令解析必须

bot = commands.Bot(command_prefix='!', intents=intents)

# 真心话问题列表(已翻译为中文)
truth_questions = [
"你有没有骗过最好的朋友?",
"你最大的恐惧是什么?",
"你有没有考试作弊过?",
"你最尴尬的时刻是什么?",
"你有没有偷过东西?",
"你的隐藏天赋是什么?",
"你有没有撒谎被抓现行?",
"你最后悔的事是什么?",
"你有没有偷听别人的对话?",
"你闯过的最大祸是什么?"
]

# 大冒险任务列表(已翻译为中文)
dare_tasks = [
"立刻做10个俯卧撑!",
"大声唱一首歌!",
"给大家讲个笑话!",
"跳一段搞笑的舞蹈!",
"接下来5分钟用外国口音说话!",
"给一个随机朋友打电话说‘我爱你!’",
"靠墙做一个倒立!",
"给你的暗恋对象发消息说你喜欢TA!",
"吃一勺辣酱!",
"在公共场所做一个侧手翻!"
]

@bot.event
async def on_ready():
    print(f"已登录为 {bot.user.name}")

@bot.command()
async def truth(ctx):
    question = random.choice(truth_questions)
    await ctx.send(f"真心话:{question}")

@bot.command()
async def dare(ctx):
    task = random.choice(dare_tasks)
    await ctx.send(f"大冒险:{task}")

# 替换为你的机器人Token
bot.run('你的机器人Token')

关键配置补充

除代码修改外,需在Discord开发者平台完成以下操作:

  1. 进入机器人的Privileged Gateway Intents设置页面
  2. 开启Message Content Intent选项并保存更改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 18:14:53