The code created category and channel and gave me this error: TypeError: Cannot read property 'hasOwnProperty' of undefined without moving the channel in the category
This is the code to the error:
const guild = message.guild;
const channel = await guild.channels.create(`ticket: ${message.author.tag}`);
let category = guild.channels.cache.find(c => c.name == "Tickets" && c.type == "category")
if (!category) {
type: 'category',
})
.catch(console.error);
}
channel.setParent(category);
Advertisement
Answer
The channel.setParent call fails on this line since category is undefined. Looks like the guild does not have a category channel named 'Tickets'.
Since you’re creating the channel if it doesn’t exist, you should await it and reassign category to the newly created channel to use in the channel.setParent call.
if (!category) {
category = await server.channels.create('Tickets', {
type: 'category',
// ...
})
}
channel.setParent(category)
Btw, it looks like updateOverwrite is not a valid option in the server.channels.create call. I think it should be permissionOverwrites. Check the docs.
This is unrelated to the question but I would recommend renaming category to categoryChannel for clarity.