如果断开连接,如何让机器人重新连接到 VC?

时间:2021-03-09 17:19:21

标签: javascript node.js discord.js

client.on("ready", () => {
    const channel = client.channels.cache.get("IDhere");
    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);
    });
});

如何循环这个?这样,如果有人断开机器人的连接,它会再次重新连接。

1 个答案:

答案 0 :(得分:0)

正如 Worthy Alpaca 所建议的,您可以使用 voiceStateUpdate 事件,它传递两个参数:新的 voice state 和旧的语音状态。

如果您检查以下条件:

您会知道机器人离开了语音频道。此时,您可以使用 oldState.channel.join() 重新加入。 但是,在执行此操作之前,您总是希望检查 oldState.channel.joinable 是否为真。这将说明机器人无法重新加入的情况。可能是频道被删除了,或者机器人被踢出了公会,或者机器人失去了 CONNECTVIEW_CHANNELS 权限等。