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

Discord Selfbot白名单用户命令功能失效无报错,求技术帮助

修复你的Discord Selfbot命令问题

我看到你代码里有几个关键问题导致命令不生效,咱们一步步来解决:

1. 重复初始化客户端

你先创建了discord.Client()实例,接着又用commands.Bot()覆盖了它——虽然后者会生效,但完全没必要保留第一个,直接用commands.Bot就够了,它本身继承自discord.Client。

2. 白名单逻辑未读取txt文件

你的checkforuser函数只检查了单个固定ID,没有从txt文件里读取白名单列表。咱们需要修改这个逻辑,每次检查时读取文件里的所有用户ID。

3. 缺少Intents配置(Discord.py v2+必需)

Discord.py 2.0及以上版本要求明确启用消息相关的intents,否则客户端无法接收消息事件,自然也触发不了命令。

修复后的完整代码

import discord
from discord.ext import commands

# 配置Intents,确保能接收消息
intents = discord.Intents.default()
intents.message_content = True

# 只保留一个Bot实例,去掉多余的discord.Client()
client = commands.Bot(command_prefix='+', self_bot=True, fetch_offline_members=False, intents=intents)

def check_whitelisted(ctx):
    # 读取白名单文件,注意文件路径要正确,每行一个用户ID
    try:
        with open('whitelist.txt', 'r') as f:
            whitelisted_ids = [line.strip() for line in f if line.strip().isdigit()]
        # 把ctx.author.id转成字符串对比,因为文件里读出来的是字符串
        return str(ctx.message.author.id) in whitelisted_ids
    except FileNotFoundError:
        # 如果文件不存在,默认拒绝(或者你可以返回False,根据需求调整)
        print("白名单文件whitelist.txt未找到!")
        return False

@client.command()
@commands.check(check_whitelisted)
async def ping(ctx):
    await ctx.send('Pong!')

# 启动客户端,替换成你的令牌
client.run('你的Discord令牌', bot=False)

额外注意事项

  • 确保whitelist.txt文件和你的脚本在同一目录下,文件里每行写一个用户ID(比如669311027615105030),不要加引号或其他符号。
  • Discord的服务条款禁止使用selfbot,这可能导致你的账号被封禁,这个代码仅用于学习目的,请谨慎使用。
  • 如果你运行后还是没反应,检查一下令牌是否正确,以及你的账号是否在对应的服务器里,并且消息能被客户端接收到。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 11:27:27