如何使我的机器人列表服务器位于其中?

时间:2018-10-27 20:53:08

标签: c# discord.net

我对C#Discord bot编码很陌生,遇到一个我想问的问题后(​​我在网上寻找答案,但没有成功)

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

基本上,我的想法是:

  • 每个服务器都有自己的文件,该文件以服务器的ID Storage\Guild\[guild id]命名
  • 有人更改了服务器中的bot选项(例如,服务器中的前缀,即服务器的工作人员)后,服务器的文件即被编辑并保存。
  • 服务器文件包含:选择了什么前缀,谁可以访问审核命令等等。

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

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

2 个答案:

答案 0 :(得分:1)

好吧,我建议使用某种数据库,但是文本文件ofc也可以。至少将您的内容保存在JSON中,这将使内容变得更容易。

因此,您可以做的是在DiscordSocketClient#JoinedGuild事件上使用公会名称创建一个新的TextFile,还可以设置默认值,例如defualt前缀和stuff。与您要保存的其他内容相同。

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

答案 1 :(得分:0)

如果您不熟悉数据库,为什么不尝试使用sqlite?然后,我将使用实体框架将您的漫游器连接到数据库。

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

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