Я создал бота, который по большей части работает так, как задумано, но при попытке подключить его к голосовому каналу, если кто-то еще в голосовом чате, к которому я попросил его присоединиться, немедленно отключается тем не менее, если в голосовом чате больше никого нет, он присоединяется и подключается без проблем, тогда пользователь может присоединиться к каналу, и он останется подключенным. можно ли это исправить?
Это код, который я использую:
public async Task Join(IAudioChannel channel = null) //SocketUser user, SocketVoiceState state1, SocketVoiceState state2)
{
// IAudioClient audioClient = await (Context.User as IVoiceState).VoiceChannel.ConnectAsync();
var UserCheck = Context.Guild.GetUser(Context.User.Id);
channel ? ?=(Context.Message.Author as IGuildUser) ? .VoiceChannel;
var roleCheck = Context.Guild.Roles.FirstOrDefault(x = >x.Name == "DJ");
if (UserCheck.Roles.Contains(roleCheck)) {
if (channel == null) {
await Context.Message.DeleteAsync();
await ReplyAsync("You need to be in a voice channel, or pass one as an argument.");
return;
}
else {
// IAudioClient audioClient = await channel.ConnectAsync();
IAudioClient audioClient = await channel.ConnectAsync();
}
}
else {
await Context.Message.DeleteAsync();
await ReplyAsync("Insufficient Permissions");
}
}
Эта функция работает любым другим способом НО функция присоединения, когда кто-то еще находится в чате. Кто-нибудь может помочь?