Я учусь discord.js
и пытаюсь следовать это руководство на discordjs.guide, но возникает эта ошибка:
client.commands.set(command.data.name, command);
^
TypeError: Cannot read properties of undefined (reading 'name')
index.js
код на ошибочной части:
const fs = require('node:fs');
const client = new Discord.Client({ intents: 32767 });
client.commands = new Collection();
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.ts'));
for (const file of commandFiles) {
const command = require(`./commands/${file}`);
client.commands.set(command.data.name, command); // errored part
}
Если вам нужно больше кода, пожалуйста, сообщите его мне.
удалите data
в строке кода
client.commands.set(command.name, command); //this will set your command name
Редактировать: я не узнал .ts
, но я уверен, что у него те же свойства, что и у .js
Пожалуйста, ограничьте выделение жирным шрифтом.
Вероятно, это не дает ответа на вопрос и должно быть только комментарием. Вы действительно понятия не имеете, что такое command
, поэтому вместо этого вам следует обратиться за разъяснениями к OP. В любом случае, если OP следует инструкциям, которые они предоставили, command.data.name
должно быть правильным.
Посмотрев на мой slash command handler
, я увидел, что использую command.data.name
, так что извините за отсутствие информации.
Не беспокойтесь, вы всегда можете отредактировать или удалить неправильные ответы ;)
Я получил правильный ответ? Чего ждать
По крайней мере, один из ваших командных файлов не имеет свойства
data
. Попробуйте добавитьconsole.info("registering command", file, command.data?.name)
в свой цикл.