[英]Joining a voice channel on ready (discord.js)
我試過這個:
client.on('ready', () => {
let channel = client.channels.get('432462518380789771');
channel.join()
});
它不起作用。 我確保 ID 是正確的,一切正常,但仍然無法正常工作。
考慮到我們沒有關於您收到的錯誤的上下文,我將提供一個代碼示例,看看這是否能解決您的問題。
client.on("ready", () => {
const channel = client.channels.get("mychannelid");
if (!channel) return console.error("The channel does not exist!");
channel.join().then(connection => {
// Yay, it worked!
console.log("Successfully connected.");
}).catch(e => {
// Oh no, it errored! Let's log it to console :)
console.error(e);
});
});
在此代碼中,我們使用 ready 事件,然后像您一樣獲取頻道。 此外,我們還檢查頻道是否未定義或為空,這意味着機器人無法找到頻道或沒有對其進行緩存。 然后,我們加入並查看是否有返回連接。 如果我們這樣做,將我們成功連接的事實記錄到控制台。 如果它沒有成功連接,我們將捕獲它並將其錯誤地發送到控制台。
在調試時包含日志記錄以查看代碼運行的程度以及查看可能發生問題的位置總是一個好主意。 在 Node.js 中,捕獲 unhandledRejections 也是一個好主意。 否則,它們會使您的進程崩潰。 您可以通過下面的代碼示例來做到這一點。
process.on("unhandledRejection", console.error);
祝你好運,快樂編碼!
編輯:有了新信息,我現在很容易看到這個問題。 注意它在錯誤中是如何說的:
Error: FFMPEG not found
您可以看到您當前沒有安裝 FFMPEG。 要安裝 FFMPEG,請轉到此 url以下載適用於您平台的源代碼。 查看此答案以了解如何在 Windows 上安裝它。
這將是更新 v12 的工作代碼的更新版本。 截至 02/05/2020。
client.on("ready", () => { const channel = client.channels.cache.get("ChannelIDhere"); if (!channel) return console.error("The channel does not exist!"); channel.join().then(connection => { // Yay, it worked! console.log("Successfully connected."); }).catch(e => { // Oh no, it errored! Let's log it to console :) console.error(e); }); });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.