Я делаю программу, которая большую часть времени работает без человека, сидящего перед компьютером. Я подумал, что было бы неплохо, если бы эта программа могла отправлять вам личное сообщение на Discord, если что-то случится, что нужно будет сделать вручную. Таким образом, Пользователь устанавливает свое имя и # номер в конфигурации, и программа отправляет сообщение этому человеку, если что-то происходит. Итак, я все настроил, и Discordbot работает, пока использует событие MessageRecced-Event. Я пробовал использовать Ready-Event, но это не сработало.
Мой стартовый код:
public async Task startDiscordBot(string DiscordName, string DiscordID, string DiscordMessage)
{
_client = new DiscordSocketClient();
setDiscordID(DiscordID); // Sets the #Number of the User
setDiscordMessage(DiscordMessage); // Sets the Message to be send
setDiscordName(DiscordName); // Sets the Name of the User
await _client.LoginAsync(TokenType.Bot, Token);
await _client.StartAsync();
await Task.Delay(-1);
}
Изменить: Моя текущая функция выглядит примерно так:
public Task Notification() // not working
{
DiscordSocketClient _client = new DiscordSocketClient();
IUser user = _client.GetUser(Name, ID); // Get the User <--- Returns null
MessageBox.Show($"{user}"); // For debug
IDMChannel channel = (IDMChannel)user.GetOrCreateDMChannelAsync(); // Get a DM Channel
channel.SendMessageAsync(Message); // Send a DM
return Task.CompletedTask;
}
Ready
. Также попробуйте users_" rel="nofol - person Xenohon   schedule 12.04.2021GetOrCreateDMChannelAsync()
, ноGetUser
каждый раз возвращает null. Я попытался подождать 60 секунд после запуска Ready-Event, я попытался подождать 5 минут после запуска бота. Каждый раз, когда_client.GetUser(Name,Number)
возвращает ноль - person CeadeusX   schedule 12.04.2021