最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

message.guild.createChannel不是一个函数

IT培训 admin 12浏览 0评论

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 v11discord.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 between v11 and v12.

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 v11discord.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 between v11 and v12.
发布评论

评论列表 (0)

  1. 暂无评论