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
有两个属性,分别称为User
和Member
。这两个都是调用您的命令的用户,并且由于参数名为ctx
,您只需要使用ctx.User
或ctx.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 文件处理错误
多对多 EF Core 已被跟踪 - C# Discord Bot