一个函数"/>
message.guild.createChannel不是一个函数
您好,我正在为服务器制作售票机器人。但是我遇到了类似message.guild.createChannel is not a function
代码
if (message.content.toLowerCase().startsWith(prefix + `openticket`)) {
const reason = message.content.split(" ").slice(1).join(" ");
if (message.guild.channels.cache.find(c => c === `ticket-${message.author.id}`)) return message.channel.send(`You already opened a ticket.`);
message.guild.createChannel(`ticket-${message.author.id}`, "text").then(c => {
let role2 = message.guild.roles.find("name", "@everyone");
c.overwritePermissions(role, {
SEND_MESSAGES: true,
READ_MESSAGES: true
});
c.overwritePermissions(role2, {
SEND_MESSAGES: false,
READ_MESSAGES: false
});
c.overwritePermissions(message.author, {
SEND_MESSAGES: true,
READ_MESSAGES: true
});
message.channel.send(`:white_check_mark: Your ticket is opened, #${c.name}.`);
const embed = new Discord.RichEmbed()
.setColor(0xCF40FA)
.addField(`Hey ${message.author.username}!`, `Your Ticket is opened.`)
.setTimestamp();
c.send({ embed: embed });
message.delete();
}).catch(console.error);
}
İ认为代码太旧。我从朋友那里得到了这段代码。
回答如下:您的代码似乎是discord.js v11
和discord.js v12
版本之间的混合。[v12
引入了Managers。
要在公会上创建频道,您必须使用GuildChannelManager,这是v12
的处理方式(see GuildChannelManager.create method documentation):
message.guild.channels.create(`ticket-${message.author.id}`, { type: 'text' }).then(c => {
...
});
Useful guide that shows changes betweenv11
andv12
.
更多推荐
message.guild.createChannel不是一个函数
发布评论