#javascript #node.js #discord #discord.js
Вопрос:
Код создал категорию и канал и выдал мне эту ошибку: TypeError: Cannot read property 'hasOwnProperty' of undefined
без перемещения канала в категорию Это код ошибки:
const guild = message.guild;
const channel = await guild.channels.create(`ticket: ${message.author.tag}`);
let category = guild.channels.cache.find(c => c.name == "Tickets" amp;amp; c.type == "category")
if (!category) {
type: 'category',
})
.catch(console.error);
}
channel.setParent(category);
Ответ №1:
channel.setParent
Вызов завершается неудачно на этой линии, так category
как есть undefined
. Похоже, у гильдии нет названного канала категории 'Tickets'
.
Поскольку вы создаете канал, если он не существует, вы должны await
его создать и переназначить category
на вновь созданный канал для использования в channel.setParent
вызове.
if (!category) {
category = await server.channels.create('Tickets', {
type: 'category',
// ...
})
}
channel.setParent(category)
Кстати, похоже updateOverwrite
, что это недопустимый вариант в server.channels.create
вызове. Я думаю, так и должно быть permissionOverwrites
. Проверьте документы.
Это не имеет отношения к вопросу, но я бы рекомендовал переименовать category
categoryChannel
для ясности.
Комментарии:
1. Кроме того, я думаю, что на самом деле причина этой проблемы в том, что
channel
она недоступна для этой области, но трудно сказать, так как @Newbie не опубликовал форматированную текстовую версию своего кода2. @Keimeno
channel
действительно в сфере применения. Проблема в том, чтоcategory
естьundefined
. Пожалуйста, дайте мне знать, если я что-то упущу.3. @Новичок, не волнуйся. В следующий раз, когда вы опубликуете вопрос, пожалуйста, добавьте код и трассировку стека в виде текста, а не в виде изображений.
4. @Новичок, Спасибо. Кстати, похоже
updateOverwrite
, что это недопустимый вариант вcreate
вызове.5. Если вы проверите документы, вы увидите
updateOverwrite
, что это недопустимый вариант. Кстати, код внутриif
блока неправильный —server.channels.create
отсутствует.