我创建了一个DiscordBot,当特定用户加入VoiceChannel时,我想播放声音。就像我加入,我的Bot播放“Hello.mp3”,当Bob加入我的Bot时播放“John.mp3”。 我知道我需要if条款,但下一步是什么? 如何检查来自VoiceConnect的用户ID是否等于“19923Example”?
您 SchinkTasia
答案 0 :(得分:1)
您可以订阅 voiceStateUpdate ,这会通知机器人有人加入/离开语音频道的时间。您将获得oldMember
和newMember
。
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]);
}