首页 > 解决方案 > 是否有另一种创建角色的方法,而不是手动获取公会 ID 来创建角色?

问题描述

我想知道是否有人可以帮助我使用 discord.js v12 中的命令来扮演角色。通过使用以下命令,我已经能够扮演我想要的角色:

module.exports = {
    name: 'croles',
    description: 'creates a role',
    execute(client, message, args, Discord) {
        const guildId = ('guild's ID goes in here');
        const roleName = args.join(" ");
        const guild = client.guilds.cache.get(guildId);
        
        if(message.member.roles.cache.find(r => r.name === "mod")){

            guild.roles.create({
                data: {
                name: roleName ,
                color: '#FFFF00',
              },
                reason: 'create a role',
              })
                .catch(console.error);
                message.channel.send( '`'+ roleName + '`' + ' ' +'role have been created.');
        
        } else {

                message.channel.send('u do not have admin roles.');


        }
    }
}

通过这段代码,我目前正在手动获取服务器的 id 并将其放入“guildId”中,以便我可以创建角色。目前此方法有效,但添加公会 ID 需要时间。我知道我可以使用“或”功能,但我目前正在一台服务器上进行测试。

标签: discord.js

解决方案


您可以通过消息变量获取公会。 message.guild,它将返回消息发送到的公会,然后您可以通过附加.id到它来获取它的ID。

例子:

execute(client, message, args) {
    return message.reply("The Guild ID is: " + message.guild.id);
}

另一件事,从您的执行中删除“Discord”变量,只需在您需要的文件中重新要求它。


推荐阅读