Я знаю, что есть много других сообщений, в которых задаются те же вопросы, но ни у одного из них не было решения моей проблемы. Я использую NodeJS и Discord JS для создания бота Discord, и мне нужно получить UUID игрока Minecraft только из его имени пользователя, которое будет предоставлено в качестве аргумента в команде.
Это функция, которую я создал для этого, но она, похоже, не работает.
function getId(playername) {
const { data } = fetch(`https://api.mojang.com/users/profiles/minecraft/${args[2]}`)
.then(data => data.json())
.then(({ player }) => {
return player.id;
});
}
args[2]
- третий аргумент команды, который имеет следующий формат: <prefix> id <playername>
. fetch
является частью модуля 'node-fetch' npm, который я установил. Я вызываю функцию, когда команда отправлена, и она получает данные из API Mojang, но не может получить UUID. Это ошибка:
(node:39416) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'id' of undefined
at C:\Users\archi\OneDrive\Documents\Programming\Discord Bots\Hypixel Discord Bot\index.js:161:21
at processTicksAndRejections (internal/process/task_queues.js:94:5)
(node:39416) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:39416) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Он говорит, что не может прочитать свойство id, которое, если вы используете Mojang API, является ключом для UUID игрока. Есть идеи?