如何解决discord.js问题i';我越来越
我正在为discord服务器创建一个票证bot,并返回错误“UnhandledPromisejectionWarning:ReferenceError:类别未定义” 对不起,如果这有点短。im使用节点版本12.18.4。不知道我还应该补充什么 这是我的代码,我做错了什么如何解决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
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有值吗?它在任何地方定义过吗?