我想在discord.net中创建一个帮助命令,我想知道[Summary("")]做了什么。有可能得到命令的摘要吗?discord.net中的摘要与discord.js-commando中的description:相似吗?我在谷歌上搜索过,却找不到任何关于它做什么的结果。
如果我想做一个帮助命令,我如何得到摘要,它是做什么的?
发布于 2018-10-17 13:37:56
Summary属性用于提供有关类、方法或方法参数的一些信息。这实际上是一种用于记录代码的“元数据”形式,并允许您创建例如“帮助”命令,该命令自动收集来自命令组、命令本身和命令方法的输入参数的所有Summary属性。这将自动更新“帮助”命令,因此不需要手工操作。
展示用法的一些基本代码:
[Command("Help")]
public async Task Help()
{
List<CommandInfo> commands = _commandService.Commands.ToList();
EmbedBuilder embedBuilder = new EmbedBuilder();
foreach (CommandInfo command in commands)
{
// Get the command Summary attribute information
string embedFieldText = command.Summary ?? "No description available\n";
embedBuilder.AddField(command.Name, embedFieldText);
}
await ReplyAsync("Here's a list of commands and their description: ", false, embedBuilder.Build());
}发布于 2019-10-21 10:55:47
Summary是discord.net提供的一个属性。从技术上讲,它没有提供特定的函数,但是,如果您对创建帮助命令或为命令和/或参数提供附加元数据感兴趣,那么您可以通过CommandService访问它们。
它们可以通过CommandInfo、ModuleInfo或ParameterInfo访问。这意味着您可以对bot的模块、命令或参数使用该属性,如下所示:
[Summary("The Game Module")]
public class ManualGameManagement : ModuleBase
{
[Command("Win", RunMode = RunMode.Sync)]
[Summary("Increments a user's win counter")]
public async Task WinAsync([Summary("The user")]params SocketGuildUser[] users)
{
//Do stuff...
}
}如果查看CommandService,可以使用属性或构造函数使用DependencyInjection将其注入模块,然后使用它访问CommandService#Commands或CommandService#Modules属性并检索摘要。这也适用于Remarks属性(类似于Summary )和Alias,后者接受多个字符串,用于让多个名称调用一个命令。
https://stackoverflow.com/questions/52849959
复制相似问题