如何检索频道中的不和谐用户列表

时间:2018-06-13 15:07:14

标签: c# discord

我正在尝试用C#编写一些东西,这是一个简单的控制台应用程序,它将连接到Discord,检索频道中所有用户的列表(目前所有用户都已足够,但拥有频道访问权限的每个人都会更好。 )应用程序不需要维护连接,只需跳入,抓取用户名列表并跳出。

我已经尝试过DiscordSharp,但它似乎并没有完全成功。我想我正在获得客户端连接,但我似乎无法通过GetChannelByName或GetChannelByID找到任何渠道。我没有开始使用DiscordSharp作为唯一的解决方案,尽管到目前为止我确实喜欢这个库。

2 个答案:

答案 0 :(得分:1)

A"服务器"在不和谐中被称为Guild。根据文档,Guild可以包含Channel个对象的列表。在Channel对象中有一个名为recipients的属性,该属性应该为您提供该频道的所有用户。

我不推荐使用DiscordSharp,因为according to their GitHub它是一个死的项目。他们建议您使用DSharpPlusDiscord.NET

我刚检查了the documentation的Discord.NET,发现了一些可以使用的方法:

GetGuildAsync(UInt64, RequestOptions):这将根据服务器ID为您提供RestGuild(服务器)。

GetChannelAsync(UInt64, RequestOptions):这会根据频道ID为您提供RestChannel

使用其中任何一个最终都会获得一个RestChannel对象,其中包含GetUsersAsync(CacheMode, RequestOptions)方法,可让您获取IUSer

的集合

答案 1 :(得分:0)

在命令模块中,您可以执行以下操作:

         public class AllUsers : ModuleBase<SocketCommandContext>
          {
            public async Task Traitement()
            {
             var users = Context.Guild.Users; 
             //you can loop here on users and do the traitement
            }
          }