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

Discord.js开发者权限检测失效问题求助

问题:Discord机器人开发者权限检测失效

我正在开发一款Discord机器人,设置了若干仅开发者可使用的命令,但开发者身份检测系统无法正常工作。测试addmoney命令时,我本应拥有权限,却收到了「仅开发者可使用」的提示。相关代码如下:

const { MessageEmbed } = require("discord.js");

exports.execute = async (client, message, args) => {
    if (!client.config.admins.includes(message.author.id)) return message.channel.send("Slow down, poke. This is devs only, poke?"); // return if author isn't bot owner
    let user = message.mentions.users.first();
    if (!user) return message.channel.send("Send money to who?");
    let amount = args[1];
    if (!amount || isNaN(amount)) return message.reply("That isn't a valid amount.");
    let data = client.eco.addMoney(user.id, parseInt(amount));
    const embed = new MessageEmbed()
        .setTitle(`You'll be rich! The money has been added.`)
        .addField(`User`, `<@${data.user}>`)
        .addField(`Balance Given`, `${data.amount} 💸`)
        .addField(`Total Amount`, data.after)
        .setColor("#f54242")
        .setThumbnail(user.displayAvatarURL)
        .setTimestamp();
    return message.channel.send(embed);
}

exports.help = {
    name: "addmoney",
    aliases: ["addbal"],
    usage: `addmoney @user <amount>`
}

排查与解决方向

  • 核对client.config.admins配置:确保你的Discord用户ID准确添加到该数组中,ID是纯数字字符串,可通过Discord开发者模式右键自己头像复制获取。注意不要带空格或额外字符。
  • 验证配置加载状态:在权限判断代码前添加console.log(client.config.admins),触发命令后查看控制台输出,确认数组中存在你的ID。若输出undefined或空数组,说明配置文件未正确导入到client对象。
  • 统一ID数据类型:如果client.config.admins中的ID是数字类型,而message.author.id是字符串类型,includes会匹配失败。可以统一转成字符串,比如修改判断为!client.config.admins.map(id => String(id)).includes(message.author.id)。
  • 检查前置权限拦截:确认机器人其他中间件或命令处理代码中,没有在该命令执行前进行额外的权限拦截,导致提前返回提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 19:15:28