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

Discord.js设置MessageEmbed随机颜色报错求助

解决Discord.js MessageEmbed设置随机颜色报错的问题

问题原因

Discord.js v13及以上版本已移除"RANDOM"作为setColor()参数的支持,同时颜色值必须是有效的十进制数值、带#/不带#的十六进制字符串,或Discord官方支持的颜色常量(如"BLUE")。你遇到的COLOR_CONVERT错误,就是因为传入了当前版本不兼容的颜色参数。

解决方案

方案1:生成随机RGB颜色值

直接生成0~16777215之间的随机整数(对应十六进制0xFFFFFF,覆盖所有RGB颜色范围),替换原有的"RANDOM":

const Command = require("../structures/Command.js");
const config = require("../data/config.json");
const {MessageEmbed} = require('discord.js')

module.exports = new Command({
    name: "artlumen",
    description: "idk",

    async run(message, args, client) {
        const artlumen = new MessageEmbed()
                .setColor(Math.floor(Math.random() * 16777215)) // 生成随机颜色
                .setTitle("Elite 0")
                .setImage('https://raw.githubusercontent.com/Aceship/Arknight-Images/main/characters/char_4042_lumen_1.png')
                .setTimestamp()
        message.channel.send({ embeds: [artlumen] });
    }
});

方案2:使用预设颜色列表(修复自定义函数)

如果想用指定的预设颜色,确保函数在可访问的作用域内,返回格式正确的颜色值:

const Command = require("../structures/Command.js");
const config = require("../data/config.json");
const {MessageEmbed} = require('discord.js')

module.exports = new Command({
    name: "artlumen",
    description: "idk",

    async run(message, args, client) {
        function getRandomColor() {
            const colorList = ["#000000", "#1ABC9C", "#11806A", "#57F287", "#1F8B4C", "#3498DB", "#206694", "#9B59B6", "#71368A", "#E91E63", "#AD1457", "#F1C40F", "#C27C0E", "#E67E22", "#A84300", "#ED4245", "#992D22", "#95A5A6", "#979C9F", "#7F8C8D", "#BCC0C0", "#34495E", "#2C3E50", "#FFFF00"]
            return colorList[Math.floor(Math.random() * colorList.length)];
        }

        const artlumen = new MessageEmbed()
                .setColor(getRandomColor())
                .setTitle("Elite 0")
                .setImage('https://raw.githubusercontent.com/Aceship/Arknight-Images/main/characters/char_4042_lumen_1.png')
                .setTimestamp()
        message.channel.send({ embeds: [artlumen] });
    }
});

补充说明

  • 16777215是十六进制0xFFFFFF的十进制值,覆盖了所有RGB颜色范围。
  • 预设颜色列表中的值,带#或不带#的十六进制字符串,Discord.js v13+都能正确解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:23:17