[英]Discord.js: Mute multiple users at once
我目前正在开发一个不和谐的机器人,它可以使语音聊天的一部分静音/耳聋。 它有效,但我遇到了一些问题。 当机器人试图让一大群玩家静音时,他们会被一个一个地静音。 当其中一名玩家的互联网连接速度较慢时,他们下方的所有玩家都必须等到该玩家被静音。 这意味着 5 个玩家的静音/取消静音最多可能需要 10 秒,这对于我使用它的目的来说太长了。
静音/震耳欲聋过程的简化代码:
this.players.forEach(player => {
// If player belongs to group that has to be muted
if ([condition]) {
// Mute and undeafen player
player.voice.setMute(true)
player.voice.setDeaf(false)
}
})
(其中“玩家”是一个包含 GuildMember 对象的数组)
我的问题是,有没有办法加快这个过程? 我的解决方案是将所有玩家独立静音,但我不知道如何实现这一点。 我正在考虑使用多线程,但我不确定这是否能解决问题,而且我不知道 Javascript 和 Discord.js 如何处理多线程,因为我对 JS 还很陌生。 那么,有没有人知道如何解决这个问题? 谢谢!
我认为多个进程是否缓慢取决于您的机器人服务器和您的不和谐服务器(您的机器人在)。 不是您用户的网络。 基本上 js 是同步的,您的过程将几乎同时完成。 (如果你想要异步任务,你可以用then
、 Promise
和async await
。)
减轻一点后顾之忧。
谢谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.