我怎样才能让我的机器人列出它所在的服务器?
How can I make my bot list servers it's in?
我是 C# Discord 机器人编码的新手,在遇到问题后我想问(我在网上寻找答案,但没有成功)
我想让机器人保存有关其所在服务器的数据。
基本上我的想法是:
- 每个服务器都有自己的文件,以服务器的 id 命名
Storage\Guild\[guild id]
- 有人在服务器中更改了 bot 的选项后(例如服务器中的前缀,服务器中的工作人员),服务器的文件被编辑并保存。
- 服务器文件包含:选择什么前缀,谁可以访问审核命令等等。
我尝试做类似的事情:
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();
}
我是 C# Discord 机器人编码的新手,在遇到问题后我想问(我在网上寻找答案,但没有成功)
我想让机器人保存有关其所在服务器的数据。
基本上我的想法是:
- 每个服务器都有自己的文件,以服务器的 id 命名
Storage\Guild\[guild id]
- 有人在服务器中更改了 bot 的选项后(例如服务器中的前缀,服务器中的工作人员),服务器的文件被编辑并保存。
- 服务器文件包含:选择什么前缀,谁可以访问审核命令等等。
我尝试做类似的事情:
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();
}