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

Discord.js创建角色时名称与颜色未生效的问题求助

问题解决方法

你的代码存在两处问题导致角色配置未按预期生效:

  1. 参数结构错误:Discord.js v14及以上版本中,roles.create() 的配置参数无需嵌套在 data 子对象中,直接将 name、color 等属性作为顶层参数传入即可。你当前的嵌套写法会被Discord API忽略,因此角色使用了默认的“new role”名称。

  2. 颜色配置被注释:你将 color: 'BLUE' 注释掉了,自然不会应用颜色;另外直接写字符串'BLUE'可能无法被正确识别,建议使用Discord.js提供的Color枚举,或者十六进制颜色值。

修改后的代码如下:

const { SlashCommandBuilder, EmbedBuilder, Color } = require('discord.js'); // 引入Color枚举
const dotenv = require("dotenv");
dotenv.config()

module.exports = {
    data: new SlashCommandBuilder()
    .setName('test')
    .setDescription('test')
        .addStringOption((data) => data
           .setName("serverid")
           .setDescription("serverID")
           .setRequired(true))
        .setDMPermission(false),

    async execute(interaction) {
        const InputServerID = interaction.options.getString("serverid");
        const { client } = interaction

        const TargetServer = await client.guilds.fetch(InputServerID)
        const LogCheckRole = await TargetServer.roles.create({
            name: 'LogCheck',
            color: Color.Blue, // 也可以直接使用十六进制值 '#0000FF'
            reason: 'test',
        })
    }
}

额外注意:

  • 确保机器人账号在目标服务器拥有管理角色的权限,否则可能出现创建失败或配置不生效的情况。
  • 代码中未使用的user和Server变量可直接删除,减少冗余。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 11:12:40