我为我的音乐机器人创建了此代码,但是idk机器人如何检查机器人不在语音通道中的时间,机器人将自动连接回特定通道,例如id。但是当漫游器在另一个语音通道中使用时,漫游器不会返回到我创建的特定语音通道。 idk如何编码间隔,循环或以语音方式检查机器人。
client.on("ready", () => {
console.log(`Hello ${client.user.username} is now online!`);
let channel = client.channels.cache.get("720137811587629119");
if (!channel) return console.error("The channel does not exist!");
setInterval(function() {
channel.join()
.then(connection => console.log('Connected'))
.catch(console.error);
}, 30000)
let botStatus = [
`${client.guilds.cache.size} servers!`,
"s,help or s,h",
`Over ${client.users.cache.size} users!`,
`Over ${client.channels.cache.size} channels!`
]
setInterval(function() {
let status = botStatus[Math.floor(Math.random() * botStatus.length)];
client.user.setActivity(status, {type: "PLAYING"});
}, 5000)
});
答案 0 :(得分:0)
您可以在客户端上使用voiceStateUpdate
事件来检测您的漫游器何时从语音通道断开连接。这是一个示例:
client.on("voiceStateUpdate", (oldState, newState) => {
if (newState.id !== client.user.id) return; // do nothing if it's not your bot
if (oldState.channel.id === "720137811587629119" && !newState.channel) { // check if the bot was disconnected from 720137811587629119
newState.setChannel("720137811587629119");
}
}