首页 > 解决方案 > 如何在 discord.js 中为公会创建角色?

问题描述

我试着这样做

const discord = require("discord.js")
const Event = require("../Structures/Events")

module.exports = new Event("guildCreate", (message, client) =>{

    Discord.guild.roles.edit(guild.id, {
        hoist: false,
        mentionable: false,
        permissions: []
    })

    Discord.guild.roles.create({ ALL THE ROLE DATA })
})

但是得到了这个错误:

Discord.guild.roles.create({ ^

TypeError:无法读取未定义的属性“角色”

我在这里做错了什么?

这是我的事件处理程序

    const Discord = require("discord.js")

const Client = require ("./Client.js")

/**
 * 
 * @param {Client} client 
 * @param  {Discord.ClientEvents[K]} eventArgs 
 */
function runFunction(client, ...eventArgs){}
/**
 * @template {key of Discord.ClientEvents} K
 */
class Event {
    /**
     * 
     * @param {K} event 
     * @param {runFunction<K>} runFunction 
     */
    constructor(event, runFunction){
        this.event = event
        this.run = runFunction
    }
}

module.exports = Event

标签: javascriptnode.jsdiscord.js

解决方案


以下是基于Discord.JS 文档的代码外观

使用客户的事件监听器作为标准。guildCreate不会发出消息或客户端,而是新公会本身(如预期的那样)

client.on("guildCreate", guild => {
   guild.roles.edit(guild.id, {
      hoist: false,
      mentionable: false,
      permissions: []
   });

   guild.roles.create(...);
});

推荐阅读