Пустое свойство Content

Рейтинг: 0Ответов: 2Опубликовано: 18.03.2023

Изучаю разработку дискорд-ботов с использованием библиотеки Discord.Net

Почему-то когда я отсылаю сообщение, бот его обрабатывает, но получить его содержимое не может:

введите сюда описание изображения

При этом все пункты в Indents у меня включены:

введите сюда описание изображения

private Task Client_MessageReceived(SocketMessage msg)
{
  if (msg.Author.IsBot) return Task.CompletedTask;

  msg.Channel.SendMessageAsync(msg.Content);

  return Task.CompletedTask;
}

Ответы

▲ 1Принят

В точке входа программы, или где у вас создаётся новый экземпляр DiscordSocketClient для дальнейшего использования, добавьте в конструктор DiscordSocketConfig с разрешёнными GatewayIntents.

Выглядеть должно так:

Было:

var Client = new DiscordSocketClient();
await Client.LoginAsync(TokenType.Bot, Params.Token);
await Client.StartAsync();

Стало:

var Client = new DiscordSocketClient(new DiscordSocketConfig
{
     GatewayIntents = GatewayIntents.All
});
await Client.LoginAsync(TokenType.Bot, Params.Token);
await Client.StartAsync();
▲ 1

Скорее всего Вы не включили Intents на портале разработчиков Discord.

Пример здесь.