我正在为一个不和谐服务器创建一个票证机器人,并且我得到了错误“ UnhandledPromiseRejectionWarning:ReferenceError:类别未定义” 抱歉,这有点短。我使用的是节点版本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;
答案 0 :(得分:0)
将节点更新为当前。至于您的错误,似乎在您的
中 let SupportCategory = message.guild.channels.cache.get(category => category.name === "Tickets")
消息公会后的“类别”有值吗?似乎没有定义。
答案 1 :(得分:0)
在有类别的地方,您需要放置倾斜的”圆形类别,这样就可以了,我在自己的机器人上为您进行了测试。
if (message.guild.me.hasPermission(`MANAGE_CHANNELS`) && !SupportCategory) {
SupportCategory = await message.guild.channels.create('Tickets', {
type: `category`,
})
}