Получить пользовательскую ГИЛЬДЮ с определенного канала с Discord.Net - PullRequest
0 голосов
/ 04 января 2019

Я думал, что спрашиваю здесь на Stackoverflow. Моя проблема в том, что я несколько раз пытался получить пользовательские гильдии определенного сервера / канала.

Моей первой попыткой было создать класс:

using Discord.Commands;
using Discord.WebSocket;
using System.Threading.Tasks;
using System.Collections.Generic;

namespace DiscordBot
{
   class AllUsersGetter : ModuleBase<SocketCommandContext>
   {
      public IReadOnlyCollection<SocketGuildUser> Users;

      public async Task Traitement()
      {
         Users = Context.Guild.Users;
      }
   }
}

Но это была моя более глупая идея. Я сделал это потом:

AllUsersGetter allUsersGetter = new AllUsersGetter();
allUsersGetter.Traitement();
var u = allUsersGetter.Users;

Но потом я получил исключение, что мне нужна ссылка на объект, который не был дан.

private IList<SocketGuildUser> guidData;

public async void MainAsync() {
   string token = "";
   client = new DiscordSocketClient(new DiscordSocketConfig() {
      LogLevel = LogSeverity.Verbose
   });

   DiscordRestClient = new DiscordRestClient(new DiscordRestConfig() {
      LogLevel = LogSeverity.Verbose
   });

   client.Log += Log;

   try {
      await client.LoginAsync(TokenType.Bot, token);
      client.MessageReceived += MessageReceived;
      client.Connected += Client_Connected;
      await client.StartAsync();
   } catch (Exception exc) {
      StatusLabel.Text = exc.Message;
   }
   await Task.Delay(-1);
}

Вывод: Я не в курсе ...

Я просто хочу получить массив всех пользователей, расположенных на определенном сервере / канале.

1 Ответ

0 голосов
/ 07 января 2019

Вы можете получить всех пользователей в гильдии / канале с помощью метода / свойства IGuild#GetUsersAsync / SocketGuild#Users.

Подробнее об этих участниках см. В официальной документации Discord.Net .

Кроме того, клиент не готов сразу после подключения. Попробуйте перехватить событие Ready , как описано в статье Управление соединениями .

...