【问题标题】:Get User GUILD from a specific Channel with Discord.Net使用 Discord.Net 从特定频道获取用户 GUILD
【发布时间】:2019-05-31 08:31:46
【问题描述】:

我想我是在 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);
}

结论:我一无所知...

我只想获取位于特定服务器/频道内的所有用户的数组。

【问题讨论】:

    标签: c# discord discord.net


    【解决方案1】:

    您可以使用IGuild#GetUsersAsync/SocketGuild#Users 方法/属性获取公会/频道内的所有用户。

    official Discord.Net documentation上查看有关这些成员的更多信息。

    此外,客户端在连接后还没有准备好。考虑按照Managing Connections 文章中所述挂钩Ready 事件。

    【讨论】:

      猜你喜欢
      • 2021-05-05
      • 1970-01-01
      • 2020-11-20
      • 2021-01-26
      • 2020-06-29
      • 2012-12-07
      • 2014-06-28
      • 2019-06-25
      • 1970-01-01
      相关资源
      最近更新 更多