【问题标题】:If specific player joins VoiceServer如果特定玩家加入 VoiceServer
【发布时间】:2018-07-14 14:47:51
【问题描述】:

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

你的 SchinkTasia

【问题讨论】:

标签: javascript bots discord.js


【解决方案1】:

您可以订阅 voiceStateUpdate,这将在有人加入/离开语音频道时通知机器人。你会得到一个oldMember 和一个newMember

oldMember是GuildMember之前加入语音频道。
newMember是GuildMember之后加入语音频道。

所以你需要做的是检查newMember加入的语音频道(newMember.voiceChannelID),并检查那是否是你想要的语音频道。

然后你需要检查那是什么成员。 newMember.user.id 如果您检查 ID 或 newMember.user.tag 如果您正在检查标签 Test#1234

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

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

如果一切匹配,您可以加入新会员语音频道并播放歌曲:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-08
    • 1970-01-01
    • 2019-09-13
    • 1970-01-01
    • 2014-01-16
    相关资源
    最近更新 更多