Итак, я использовал VoiceChannel
свойство .CurrentUser
, чтобы проверить, подключен ли бот или нет, и у меня возникли проблемы с присоединением и уходом бота одновременно или вообще без подключения. Поэтому я решил просто добавить переменную bool в мой класс, и она работает для меня.
private bool voiceCheck;
public AudioService() { voiceCheck = false; }
public async Task<IAudioClient> ConnecttoVC(SocketCommandContext ctx)
{
SocketGuildUser user = ctx.User as SocketGuildUser;
IVoiceChannel chnl = user.VoiceChannel;
if(chnl == null)
{
await ctx.Channel.SendMessageAsync("Not connected!");
return null;
}
if(voiceCheck == true)
{
await ctx.Channel.SendMessageAsync("Already connected!");
return null;
}
await ctx.Channel.SendMessageAsync("Joining Voice!");
voiceCheck = true;
return await chnl.ConnectAsync();
}
Между моими ConnecttoVC
и Leave
(опущено) методами voiceCheck будет переключаться между true и false при проверке для каждого соответственно.