Discord C# 用户加入消息

Discord C# User Join messages

我在 C# 中使用 Discord.Net,制作一个机器人。到目前为止,我的机器人运行良好,但我希望它在用户加入特定服务器时自动为其分配特定角色。我从来没有真正学过任何 C#,只学过一点 C++,所以我知道基本的语法。我该怎么做? 我假设我会使用 UserJoined,但是这样做会告诉我在 += 或 -+ 之前或之后使用它(我理解,但我不明白它在这个给定场景中是否有用)

您提供的信息很少,但以下是所有版本中的操作方法(到目前为止):

这在依赖映射中,但低于 "handlecommand"、CommandHandleAsync 或 HandleCommandAsync:

client.UserJoined += AnnounceJoinedUser; //Hook into the UserJoined event of the client.

这是在依赖图下:

public async Task AnnounceJoinedUser(SocketGuildUser user) //Welcomes the new user
{
    var channel = client.GetChannel(/*/TextChannelID/*/) as SocketTextChannel; // Gets the channel to send the message in
    await channel.SendMessageAsync($"Welcome {user.mention} to {channel.Guild.Name}"); //Welcomes the new user
} 

如果您想直接向加入的用户发送消息

client.UserJoined += HandleUserJoinedAsync;
private async Task HandleUserJoinedAsync(SocketGuildUser gUser)
{
    if (gUser.IsBot || gUser.IsWebhook) return;
    var dmChannel = await gUser.GetOrCreateDMChannelAsync();
    await dmChannel.SendMessageAsync("Witaj");
}

对于所有需要答案的人,在此期间,我将这段代码留给您,只是为了向用户的加入发送消息,(1行):

Client.UserJoined += join;

private async Task join(SocketGuildUser user)
{
    await (user.Guild.DefaultChannel).SendMessageAsync("Text")
    return;
}