Discord.js guild.createChannel不起作用,我不知道为什么

Discord.js guild.createChannel不起作用,我不知道为什么,discord.js,Discord.js,我已经试了一段时间了,我就是想不出这个。所以我想做的是使用机器人来创建一个频道,这样一个人就可以打开一张票证,基本上只有用户和某个角色可以在其中查看和写入。我还没有完成第二部分,但这已经够糟糕的了 以下是我可怜的尝试: case 'report': guild.createChannel('ticket-' + makeid, { type: 'text', permissionOverwr

我已经试了一段时间了,我就是想不出这个。所以我想做的是使用机器人来创建一个频道,这样一个人就可以打开一张票证,基本上只有用户和某个角色可以在其中查看和写入。我还没有完成第二部分,但这已经够糟糕的了

以下是我可怜的尝试:

         case 'report':
            guild.createChannel('ticket-' + makeid, {
                type: 'text',
                permissionOverwrites: [{
                    id: guild.id,
                    deny: ['MANAGE_MESSAGES'],
                    allow: ['SEND_MESSAGES']
                }]
            })
                .then(console.log)
                .catch(console.error);
            break;
在本例中,makeid是由函数生成的随机字符串。 错误是:

ReferenceError: guild is not defined

您需要定义变量
guild
。在
Discord.js
中有多种方法可以做到这一点,因此它们是:

使用用户消息:

const Discord = require('discord.js');
const client = new Discord.Client();

client.on('message', (message) => {
  let guild = message.guild;  //Get guild from the message
});
或者使用Guidid:

const Discord = require('discord.js');
const client = new Discord.Client();

client.on("ready", () => {
  let guild = client.guilds.get("GUILD-ID");  //Replace "GUILD-ID" with the id of the guild you want
});

所以如果我用这个,它会自动得到这个结果吗?第一种方法第一种方法将从消息中检索公会,但不会检索公会。要获取ID,您可以调用
guild.ID
(代码中已经有了该ID)