Discord bot c#获取用户信息(不带参数)并发回消息

Posted

技术标签:

【中文标题】Discord bot c#获取用户信息(不带参数)并发回消息【英文标题】:Discord bot c# get userinfo (without parameter)and send back message 【发布时间】:2020-10-17 23:35:03 【问题描述】:

您好,我正在 c# 中做一个 Discord 机器人,我正在尝试获取使用该命令的人的用户信息(最好是用户名) 所以例如: 用户输入命令 - ?响应 (用户名是锤头) 机器人读取用户名并输出:消息中的“HammerHead”以及其他内容

我是否使用参数或者可以避免使用我基本上不希望用户输入他们的姓名我希望机器人自动执行此操作。

    [Command("response")]
  
    public async Task Response(CommandContext ctx, string first, String last, string email, string 
    affiliation)
    

       
       //would something like this work I don't really know
        var username = Context.user;


        await ctx.Channel.SendMessageAsync(first + " " + last + " " + email + " " + affiliation+" 
        "+user ).ConfigureAwait(false);


        

【问题讨论】:

【参考方案1】:

由于您没有指定您使用的是哪个库,所以我只告诉您两者。

DSharpPlus:

您的CommandContext 有两个属性,分别称为UserMember。这两个都是调用您的命令的用户,并且由于参数名为ctx,您只需要使用ctx.Userctx.Member。区别在于用户类型。用户给你 DiscordUser,而会员给你 DiscordMember。

文档:https://dsharpplus.emzi0767.com/api/DSharpPlus.CommandsNext.CommandContext.html

Discord.Net:

DNet CommandContext 也有一个 User 属性。它会给你 IUser 类型。使用ctx.User 调用它。

文档:https://discord.foxbot.me/docs/api/Discord.Commands.CommandContext.html#Discord_Commands_CommandContext_User

Tldr;

无论哪种方式,您都有想法。只需输入ctx 而不是Context 因为ctx 是您的CommandContext 参数的名称

旁注: 您可能想研究使用字符串插值。 微软文档:https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated

【讨论】:

哦,谢谢你帮助了这么多def最佳答案。

以上是关于Discord bot c#获取用户信息(不带参数)并发回消息的主要内容,如果未能解决你的问题,请参考以下文章

使用 Codeforces API 通过 discord bot (discord.py) 获取有关用户在 CF 问题上的所有 AC 的信息 - python 中的 json 文件处理错误

discord bot c# 读取收到的直接消息

多对多 EF Core 已被跟踪 - C# Discord Bot

Discord C# Bot - 删除最新消息

如何在 python discord bot 中获取用户输入?

Discord bot 从用户消息中获取照片