簡體   English   中英

如何在具有 id 的特定頻道中發送消息

[英]How to send a message in a specific channel with id

我使用 replit 數據庫來保存頻道 ID
這是我的代碼:
client.channels.cache.get(db.get(args[1])).send(args[2]);
我得到這個錯誤:

client.channels.cache.get(db.get(args[1])).send(args[2]);
                                                ^

TypeError: Cannot read properties of undefined (reading 'send')
    at Client.<anonymous> (/home/runner/anonymesssendbot/index.js:44:49)
    at Client.emit (node:events:390:28)
    at Client.emit (node:domain:475:12)
    at MessageCreateAction.handle (/home/runner/anonymesssendbot/node_modules/discord.js/src/client/actions/MessageCreate.js:34:18)
    at Object.module.exports [as MESSAGE_CREATE] (/home/runner/anonymesssendbot/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (/home/runner/anonymesssendbot/node_modules/discord.js/src/client/websocket/WebSocketManager.js:346:31)
    at WebSocketShard.onPacket (/home/runner/anonymesssendbot/node_modules/discord.js/src/client/websocket/WebSocketShard.js:478:22)
    at WebSocketShard.onMessage (/home/runner/anonymesssendbot/node_modules/discord.js/src/client/websocket/WebSocketShard.js:317:10)
    at WebSocket.onMessage (/home/runner/anonymesssendbot/node_modules/ws/lib/event-target.js:199:18)
repl process died unexpectedly: exit status 1

我猜db.get()返回一個不能作為值傳遞的承諾。 嘗試先檢索值,然后獲取通道。 就像是

const id = await db.get(args[1]);
const channel = client.channels.cache.get(id);
channel.send(args[2]);

也有可能 id 被錯誤地存儲在您的服務器中。 所以看看那個。 您可以記錄 id 以檢查是否是這種情況。

暫無
暫無

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

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