javascript - 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
介绍经理。
要在公会上创建频道,您必须使用GuildChannelManager,这是v12
这样做的方法(请参阅 GuildChannelManager.create 方法文档):
message.guild.channels.create(`ticket-${message.author.id}`, { type: 'text' }).then(c => {
...
});
推荐阅读
- kubernetes - Helm 可选嵌套变量
- html - 将两个元素相对定位到一个固定的 div
- android - adb 失败 [DELETE_FAILED_INTERNAL_ERROR]
- php - 在 Azure 上启用 PHP 扩展 (php_odbc.dll)
- python-3.x - 在 Holomap 中绘制 Holoviews Curve 和传播叠加时的尺寸容器
- flutter - 如何修复 E/flutter (15862):未处理的异常:错误状态:在颤振中将数据推送到 firebase 时没有元素?
- html - 翻转动画在其他浏览器中的行为非常不同
- c# - How to write PDF to HttpResponseMessage using iText 7
- html - Replaced navbar has a stylesheet conflicting with the old one, despite removing old stylesheet
- yii2 - 新的 FormData 在一个站点上工作,但在另一个站点上不工作