Discord: Изменить регион с помощью библиотеки .NET? - PullRequest
1 голос
/ 30 апреля 2019

В настоящее время я пытаюсь предотвратить задержки на сервере Discord, используя бота, который проверяет задержку и переключается в другой регион, если это происходит. Я видел пару ботов в js, делающих это, я хотел бы знать, есть ли что-то в Discord.NET, способное это сделать. Конечно, я часами разбирал Google, чтобы найти способ. Спасибо

1 Ответ

1 голос
/ 30 апреля 2019

Вы можете вызвать ModifyAsync для экземпляра вашего SocketGuild и установить для свойства RegionId желаемый новый регион.

//I'm doing this as a command, but the logic can be implemented wherever you decide.
[Command("region")]
[Remarks("Let's pretend my module has access to a singleton instance of random")]
public async Task ChangeRegion()
{
    //Get a collection of all available voice regions 
    //Exclude the region we are currently in
    var voiceRegions = Context.Client.VoiceRegions.Where(r => !r.Id.Equals(Context.Guild.VoiceRegionId));

    //Select a random new region
    var newRegion = voiceRegions(random.Next(voiceRegions.Count));

    //Update the RegionId property for the guild.
    await Context.Guild.ModifyAsync(prop => prop.RegionId = newRegion.Id)
    await ReplyAsync($"Region updated to {newRegion.Name}: {newRegion.Id}");
}
...