gpt4 book ai didi

javascript - 如何修复: "TypeError: Cannot read property ' tag' of undefined"error in discord. js

转载 作者:行者123 更新时间:2023-12-01 01:05:32 27 4
gpt4 key购买 nike

我正在制作一个discord.js 机器人,并在其中添加了排行榜命令。

    const Discord = require("discord.js");
// Get a filtered list (for this guild only), and convert to an array while we're at it.
const filtered = client.points.filter( p => p.guild === message.guild.id ).array();

// Sort it to get the top results... well... at the top. Y'know.
const sorted = filtered.sort((a, b) => b.points - a.points);

// Slice it, dice it, get the top 10 of it!
const top10 = sorted.splice(0, 10);

// Now shake it and show it! (as a nice embed, too!)
const embed = new Discord.RichEmbed()
.setTitle("Leaderboard")
.setAuthor(client.user.username, client.user.avatarURL)
.setDescription("Our top 10 points leaders!")
.setColor(0xff0000);
for(const data of top10) {
embed.addField(client.users.get(data.user).tag, `${data.points} points (level ${data.level})`);
}
return message.channel.send({embed});
}

但是当我运行命令时,我在命令行/日志中得到以下内容:


embed.addField(client.users.get(data.user).tag, `${data.points} points (level ${data.level})`);

^


TypeError: Cannot read property 'tag' of undefined

at Object.exports.run (/app/commands/leaderboard.js:19:47)

at module.exports (/app/events/message.js:19:7)

at emitOne (events.js:121:20)

at Client.emit (events.js:211:7)

at MessageCreateHandler.handle (/rbd/pnpm-volume/461f582b-2c68-44a2-912c-88cd1fefb0fa/node_modules/.registry.npmjs.org/discord.js/11.4.2/node_modules/discord.js/src/client/websocket/packets/handlers/MessageCreate.js:9:34)

at WebSocketPacketManager.handle (/rbd/pnpm-volume/461f582b-2c68-44a2-912c-88cd1fefb0fa/node_modules/.registry.npmjs.org/discord.js/11.4.2/node_modules/discord.js/src/client/websocket/packets/WebSocketPacketManager.js:103:65)

at WebSocketConnection.onPacket (/rbd/pnpm-volume/461f582b-2c68-44a2-912c-88cd1fefb0fa/node_modules/.registry.npmjs.org/discord.js/11.4.2/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:333:35)

at WebSocketConnection.onMessage (/rbd/pnpm-volume/461f582b-2c68-44a2-912c-88cd1fefb0fa/node_modules/.registry.npmjs.org/discord.js/11.4.2/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:296:17)

at WebSocket.onMessage (/rbd/pnpm-volume/461f582b-2c68-44a2-912c-88cd1fefb0fa/node_modules/.registry.npmjs.org/ws/4.1.0/node_modules/ws/lib/event-target.js:120:16)

at emitOne (events.js:116:13)

我已将机器人从我的电脑转移到 glitch.com,这似乎修复了一段时间,但现在问题又回来了。

最佳答案

该错误意味着 client.users.get(data.user) 返回未定义,因此其上不能有属性tag。据推测这意味着数据中指定的用户不存在。

在直接尝试访问属性之前,您应该添加一些防御代码,以确保 get() 调用返回某些内容而不是未定义的内容。

例如

const user = client.users.get(data.user);
if (user && user.tag) {
// code here
} else {
// user does not exist..
}

关于javascript - 如何修复: "TypeError: Cannot read property ' tag' of undefined"error in discord. js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55679081/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com