如果特定玩家加入VoiceServer

时间:2018-02-04 17:13:31

标签: javascript bots discord.js

我创建了一个DiscordBot,当特定用户加入VoiceChannel时,我想播放声音。就像我加入,我的Bot播放“Hello.mp3”,当Bob加入我的Bot时播放“John.mp3”。 我知道我需要if条款,但下一步是什么? 如何检查来自VoiceConnect的用户ID是否等于“19923Example”?

您 SchinkTasia

1 个答案:

答案 0 :(得分:1)

您可以订阅 voiceStateUpdate ,这会通知机器人有人加入/离开语音频道的时间。您将获得oldMembernewMember

oldMember Guild会员之前加入语音频道 newMember Guild会员 后加入语音频道。

因此,您需要检查的是newMember加入的语音频道(newMember.voiceChannelID),并检查这是否是您想要的语音频道。

然后你需要检查那个成员是什么。如果您要检查ID,请newMember.user.id;如果您要检查代码newMember.user.tag,请Test#1234

如果您没有数据库,或只有几个成员,您可以使用一个对象来保存每个成员ID和要播放的音乐。

var musics = { "123": "music1.mp3", "321": "music2.mp3"};

然后,如果一切都匹配,您可以加入newMember语音频道并播放歌曲:

newMember.voiceChannel.join().then(connection => {
  const dispatcher = connection.playFile('path/to/'+musics[newMember.user.id]);
}