我试过了:
client.on('ready', () => {
let channel = client.channels.get('432462518380789771');
channel.join()
});
它不起作用。我确保ID是正确的,一切都没有用。
答案 0 :(得分:2)
这将是更新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);
});
});
答案 1 :(得分:0)
考虑到我们没有关于您收到的错误的背景信息,我将提供一个代码示例,看看这是否可以解决您的问题。
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中,抓住未处理的拒绝也是一个好主意。否则,它们会使您的进程崩溃。你可以通过下面的代码示例来做到这一点。
process.on("unhandledRejection", console.error);
祝你好运,编码愉快!
编辑:有了这些新信息,我现在很容易看到这个问题。请注意它在错误中的含义:
Error: FFMPEG not found
您可以看到您当前没有安装FFMPEG。要安装FFMPEG,请转到this url下载适用于您平台的源代码。查看this answer以了解如何在Windows上安装它。