如何解决discord.js问题i';我越来越

如何解决discord.js问题i';我越来越,discord,discord.js,Discord,Discord.js,我正在为discord服务器创建一个票证bot,并返回错误“UnhandledPromisejectionWarning:ReferenceError:类别未定义” 对不起,如果这有点短。im使用节点版本12.18.4。不知道我还应该补充什么 这是我的代码,我做错了什么 case "ticket": const reason = message.content.split(" ").splice(1).jo

我正在为discord服务器创建一个票证bot,并返回错误“UnhandledPromisejectionWarning:ReferenceError:类别未定义” 对不起,如果这有点短。im使用节点版本12.18.4。不知道我还应该补充什么 这是我的代码,我做错了什么

        case "ticket":

                const reason = message.content.split(" ").splice(1).join("");
                
                let SupportCategory = message.guild.channels.cache.get(category => category.name === "Tickets")
    
                if (message.guild.me.hasPermission(`MANAGE_CHANNELS`) && !SupportCategory) {
                    SupportCategory = await message.guild.channels.create('Tickets', {
                        type: category,
                    })
                }
    
    
                if (!message.guild.me.hasPermission(`MANAGE_CHANNELS`) && !SupportCategory) {
                    message.channel.send("I do not have permission to create the category needed for tickets.")
                
                }
    
                if (!message.guild.roles.cache.get(role => role.name === "Support Team")) {
                    await (message.guild.roles.create({
                        name: 'Support Team',
                        color: 'BLUE',
                    }));
                };
    
                let supportrole = message.guild.roles.cache.get(role => role.name === "Support Team")
    
                if (!supportrole) {
                    return message.channel.send("Sorry, but there is no Support Team role in this server.")
                }
    
                if (!reason) {
                    return message.channel.send("Please specify a ticket reason.")
                }
    
                const channelName = `ticket-${message.author.username}-${message.author.discriminator}`
                if (message.guild.channels.cache.get(channel => channel.name === `ticket-${message.author.username.toLowerCase}-${message.author.discriminator}`)) {
                    return message.channel.send("Sorry, but you already have a ticket open.")
        }
        
        message.guild.channels.create(channelName, { parent: SupportCategory.id, topic: `Ticket Owner: ${message.author.id}` }).then(c => {
            const sr = message.guild.roles.cache.get(supportrole)
            const everyone = message.guild.roles.cache.get(role => role.name === "@everyone")
            c.UpdateOverwrite(sr, {
                SEND_MESSAGES: true,
                VIEW_CHANNEL: true,
            });
            c.UpdateOverwrite(everyone, {
                SEND_MESSAGES: false,
                VIEW_CHANNEL: false,
            });
          c.UpdateOverwrite(message,author, {
                SEND_MESSAGES: true,
                VIEW_CHANNEL: true,
            });
            let CreatedTicketEmbed = new MessageEmbed()
            .setColor("BLUE")
            .setTitle("New Support Ticket!")
            .setDescription(`<@${message.author.id}> Your support ticket channel is <#${c.id}>`)
            .setFooter("RagePvP.")
            message.channel.send(CreatedTicketEmbed)
            let GreetEmbed = new MessageEmbed()
            .setColor("BLUE")
            .addField("New Ticket Ticket", `<@${message.author.id}> Thanks for opening a ticket. Help will be with you shortly.`)
            .setTimestamp()
            .setFooter("RagePvP.")
            c.send(GreetEmbed)
        }).catch(console.error);
    break;
案例“票证”:
const reason=message.content.split(“”)。splice(1)。join(“”);

让SupportCategory=message.guild.channels.cache.get(category=>category.name==“Tickets”) if(message.guild.me.hasPermission(`MANAGE_CHANNELS`)和&!SupportCategory){ SupportCategory=wait message.guild.channels.create('Tickets'{ 类型:类别, }) } 如果(!message.guild.me.hasPermission(`MANAGE_CHANNELS`)&&&!SupportCategory){ message.channel.send(“我没有创建票证所需类别的权限。”) } 如果(!message.guild.roles.cache.get(role=>role.name==“支持团队”)){ 等待(message.guild.roles.create)({ 名称:“支持团队”, 颜色:“蓝色”, })); }; 让supportrole=message.guild.roles.cache.get(role=>role.name==“支持团队”) 如果(!supportrole){ return message.channel.send(“抱歉,此服务器中没有支持团队角色。”) } 如果(!原因){ 返回message.channel.send(“请指定票证原因”) } const channelName=`ticket-${message.author.username}-${message.author.discriminator}`
if(message.guild.channels.cache.get(channel=>channel.name==`ticket-${message.author.username.toLowerCase}-${message.author.discriminator}`){ returnmessage.channel.send(“对不起,您已经有一张票子打开了。”) } message.guild.channels.create(channelName,{parent:SupportCategory.id,主题:`Ticket Owner:${message.author.id}}),然后(c=>{ const sr=message.guild.roles.cache.get(supportrole) constEveryone=message.guild.roles.cache.get(role=>role.name===“@everyone”) c、 更新重写(sr{ 发送消息:正确, 查看频道:正确, }); c、 更新覆盖(每个人{ 发送消息:false, 查看频道:错误, }); c、 UpdateOverwrite(消息、作者、{ 发送消息:正确, 查看频道:正确, }); 让CreatedTicketEmbed=newmessageembed() .setColor(“蓝色”) .setTitle(“新支持票证!”) .setDescription(`Your support ticket channel is`) .setFooter(“rageppp.”) message.channel.send(CreatedTicketEmbed) 让GreetEmbed=newmessageembed() .setColor(“蓝色”) .addField(“新票”,谢谢你打开一张票。很快就会有帮助的。) .setTimestamp()文件 .setFooter(“rageppp.”) c、 发送(GreetEmbed) }).catch(控制台错误); 打破
将节点更新为当前节点。至于你的错误,它似乎在你的

  let SupportCategory = message.guild.channels.cache.get(category => category.name === "Tickets")

消息后的“类别”有值吗?它似乎没有定义。

在你有类别的地方,你需要把倾斜的“圆形”类别放进去,它会工作的。我在我自己的机器人上为你测试了它,效果很好

  if (message.guild.me.hasPermission(`MANAGE_CHANNELS`) && !SupportCategory) {
                    SupportCategory = await message.guild.channels.create('Tickets', {
                        type: `category`,
                    })
                }

您使用的是
Collection.get()
而不是
Collection.find()
。只需更改函数名。使用
Collection.get()
通过元素的键(ID)获取元素,当您需要通过元素的某个属性(例如,名称)查找某个元素时,使用
.find()
,抱歉是什么意思?我把它改为让SupportCategory=message.guild.channels.cache.find(category=>category.name===“Tickets”),但仍然没有。对不起,你是什么意思?这是我对commandmessage.guild.channels.cache.get(category=>category有值吗?它在任何地方定义过吗?