我怎样才能让我的机器人列出它所在的服务器?

How can I make my bot list servers it's in?

我是 C# Discord 机器人编码的新手,在遇到问题后我想问(我在网上寻找答案,但没有成功)

我想让机器人保存有关其所在服务器的数据。

基本上我的想法是:

我尝试做类似的事情: Context.Client.Guilds.,但在那里迷路了。

对此有任何帮助或提示吗?

好吧,我建议使用某种数据库,但也可以使用文本文件 ofc。至少将你的东西保存在 JSON 中,这会让事情变得更容易。

所以你可以做的是在 DiscordSocketClient#JoinedGuild 事件上创建一个带有公会名称的新文本文件,你还可以设置默认值,例如默认前缀和东西。对于您要保存的其他内容也是如此。

因此,由于用户需要通过命令更改前缀,您可以在那里实现它。此外,当您使用文本文件时,您需要在访问它们之前确保它们存在,如果它们被删除了一些如何创建一个新文件。这也适用于您要保存的所有其他内容。

如果您不熟悉使用数据库,为什么不试试 sqlite?然后我会使用 Entity Framework 将您的机器人连接到您的数据库。

无论如何,Context.Client.Guilds 是一个 IReadOnlyCollection,因此您必须将其视为列表或数组。希望对您有所帮助!

foreach (var guild in Context.Client.Guilds)
{
      var guildName = guild.Name; 
      var owner = guild.Owner.Username;
      var totalUsers = guild.Users.Count();
}