我对C#Discord bot编码很陌生,遇到一个我想问的问题后(我在网上寻找答案,但没有成功)
我想让机器人保存有关其所在服务器的数据。
基本上,我的想法是:
Storage\Guild\[guild id]
命名我试图做类似的事情:
Context.Client.Guilds.
,但在那里迷路了。
对此有任何帮助或提示吗?
答案 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();
}