首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[汇总(“”)在discord.net中的用途是什么?

[汇总(“”)在discord.net中的用途是什么?
EN

Stack Overflow用户
提问于 2018-10-17 07:59:05
回答 2查看 3.9K关注 0票数 3

我想在discord.net中创建一个帮助命令,我想知道[Summary("")]做了什么。有可能得到命令的摘要吗?discord.net中的摘要与discord.js-commando中的description:相似吗?我在谷歌上搜索过,却找不到任何关于它做什么的结果。

如果我想做一个帮助命令,我如何得到摘要,它是做什么的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-17 13:37:56

Summary属性用于提供有关类、方法或方法参数的一些信息。这实际上是一种用于记录代码的“元数据”形式,并允许您创建例如“帮助”命令,该命令自动收集来自命令组、命令本身和命令方法的输入参数的所有Summary属性。这将自动更新“帮助”命令,因此不需要手工操作。

展示用法的一些基本代码:

代码语言:javascript
复制
[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());
}
票数 8
EN

Stack Overflow用户

发布于 2019-10-21 10:55:47

Summary是discord.net提供的一个属性。从技术上讲,它没有提供特定的函数,但是,如果您对创建帮助命令或为命令和/或参数提供附加元数据感兴趣,那么您可以通过CommandService访问它们。

它们可以通过CommandInfo、ModuleInfo或ParameterInfo访问。这意味着您可以对bot的模块、命令或参数使用该属性,如下所示:

代码语言:javascript
复制
[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#CommandsCommandService#Modules属性并检索摘要。这也适用于Remarks属性(类似于Summary )和Alias,后者接受多个字符串,用于让多个名称调用一个命令。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52849959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档