Discord.js:一次将多个用户设为静音

问题描述

我目前正在开发一种discord bot,该bot可以使语音聊天的一部分静音/认。它有效,但是我遇到了一些问题。当机器人试图使一大群玩家静音时,他们会被一个一个地静音。当其中一个播放器的网络连接速度较慢时,他们下面的所有播放器都必须等待,直到该播放器被静音为止。这意味着对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对象的数组)

我的问题是,有没有办法加快这一过程?我的解决方案是使所有播放器独立静音,但是我不知道如何实现。我正在考虑使用多线程,但是我不确定这是否还能解决问题,而且我不知道Java和discord.js如何处理多线程,因为我对JS还是很陌生。那么,有谁知道如何解决这个问题?谢谢!

解决方法

我认为多个进程是否缓慢取决于您的bot服务器和不和谐的服务器(您的bot处于)。不是您用户的网络。 基本上js是同步的,您的过程几乎同时完成。 (如果需要异步任务,可以使用thenPromiseasync await来完成。)

减轻后顾之忧。

谢谢。