Discord bot c#获取用户信息(无参数)并发送回消息
嗨,我正在用c#做一个Discord机器人,我正在尝试获取使用该命令的人的用户信息(最好是用户名) 例如: 命令-?响应中的用户类型 (用户名为hammerhead) bot读取用户名并输出消息中的“锤头”和其他内容 我是使用参数还是可以避免我基本上不希望用户输入他们的名字我希望机器人自动这样做Discord bot c#获取用户信息(无参数)并发送回消息,c#,bots,discord,userinfo,C#,Bots,Discord,Userinfo,嗨,我正在用c#做一个Discord机器人,我正在尝试获取使用该命令的人的用户信息(最好是用户名) 例如: 命令-?响应中的用户类型 (用户名为hammerhead) bot读取用户名并输出消息中的“锤头”和其他内容 我是使用参数还是可以避免我基本上不希望用户输入他们的名字我希望机器人自动这样做 [Command("response")] public async Task Response(CommandContext ctx, string firs
[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);
}
因为您没有指定使用哪个库,所以我将告诉您这两个库 DSharpPlus: 您的
CommandContext
有两个属性,分别称为User
和Member
。这两个都是调用您的命令的用户,由于参数名为ctx
,您只需使用ctx.user
或ctx.Member
。区别在于用户类型。用户给您DiscordUser,而成员给您DiscordMember
文件:
Discord.Net:
DNet CommandContext也有一个用户属性。它会给你一个更好的类型。使用ctx.User
调用它
文件:
Tldr
不管怎样,你都有这个想法。只需将ctx
而不是Context
,因为ctx
是CommandContext
参数的名称
旁注:
您可能需要研究使用字符串插值。
MS Docs:噢,谢谢你帮了这么多忙,def最佳答案获奖了。