簡體   English   中英

為什么我在 discord.js 中收到客戶端錯誤

[英]Why am I getting a client error in discord.js

我正在使用此Discord.js 指南在我的 discord.js 機器人中創建一個 !stats 命令。 當我使用基本命令處理程序時,這是我的 stats.js 代碼:

module.exports = {
    name: 'stats',
    description: 'React to a message',
    execute(message, client) {
        message.channel.send(`Server count: ${client.guilds.cache.size}`);
    },
};

然后我收到此錯誤:

TypeError: Cannot read property 'cache' of undefined
    at Object.execute (E:\The Owner\Naffy Dharni\Discord\Bots\Toxado Manager\commands\Utility\stats.js:5:55)
    at Object.execute (E:\The Owner\Naffy Dharni\Discord\Bots\Toxado Manager\events\message.js:69:12)
    at Client.<anonymous> (E:\The Owner\Naffy Dharni\Discord\Bots\Toxado Manager\bot.js:30:61)
    at Client.emit (events.js:315:20)
    at MessageCreateAction.handle (E:\The Owner\Naffy Dharni\Discord\Bots\Toxado Manager\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)   
    at Object.module.exports [as MESSAGE_CREATE] (E:\The Owner\Naffy Dharni\Discord\Bots\Toxado Manager\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (E:\The Owner\Naffy Dharni\Discord\Bots\Toxado Manager\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
    at WebSocketShard.onPacket (E:\The Owner\Naffy Dharni\Discord\Bots\Toxado Manager\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)  
    at WebSocketShard.onMessage (E:\The Owner\Naffy Dharni\Discord\Bots\Toxado Manager\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10) 
    at WebSocket.onMessage (E:\The Owner\Naffy Dharni\Discord\Bots\Toxado Manager\node_modules\ws\lib\event-target.js:132:16)

我能做些什么來解決這個問題?

cache屬性之前的任何內容都是undefined

因此,在您的情況下,這就是 client.guilds。 鑒於對於正確的 djs 客戶端 object 不能取消定義,您在調用該文件時可能沒有以正確的順序傳遞值。 也就是說, client可能不是實際的 djs 客戶端類/對象。

你用什么discord.js版本?
在 12 版本上添加了緩存。 使用npm i discord.js@12或僅刪除字段cache上的調用。

module.exports = {
    name: 'stats',
    description: 'React to a message',
    execute(message, client) {
        message.channel.send(`Server count: ${client.guilds.size}`);
    },
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM