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

discord.js创建公会角色时报roles属性未定义错误该如何解决?

问题原因
  • 事件回调参数顺序&类型错误:你自定义的Event类约定run函数的第一个参数为client实例,后续才是对应Discord事件的触发参数;同时guildCreate事件触发时传入的事件参数是新加入的公会Guild实例,不存在message参数,你写的(message, client)参数顺序、类型全错。
  • 变量大小写不匹配:你导入discord.js时用的变量名是小写discord,后续代码调用时用的是大写Discord,属于未定义变量。
  • Guild对象引用逻辑错误:Discord是discord.js库的命名空间导出对象,本身没有guild这个全局属性,你要操作的是guildCreate事件触发时传入的当前公会实例,不能从库对象上直接获取。
  • 额外错误:guild.roles.edit的第一个参数需要传入要修改的角色ID,你之前传的是公会ID,就算前面的问题解决了这一步也会报错。
修正代码
const Discord = require("discord.js")
const Event = require("../Structures/Events")

// 修正参数顺序:第一个是client,第二个是事件返回的guild实例
module.exports = new Event("guildCreate", (client, guild) => {
    // 直接使用事件传入的guild实例创建角色
    guild.roles.create({
        // 替换为你的角色配置
        name: "自定义角色",
        hoist: false,
        mentionable: false,
        permissions: []
    })
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 22:15:04