Discord C# User Join messages

2020-04-12 03:01发布

I'm using Discord.Net in C#, making a bot. My bot works fantastic so far, but I want it to automatically assign users a specific role when they join a specific server. I've never actually learned any C#, only a bit of C++ so I know the basic Grammar. How would I go about this? I'm assuming I would use UserJoined, but doing this heeds results telling me to use it before or after a += or -+ (Which I understand, but I don't understand it's usefullness in this given scenario)

2条回答
甜甜的少女心
2楼-- · 2020-04-12 03:27

You gave little information to work with but here is how to do it in all releases (so far):

This is IN the dependency map but below the "handlecommand", CommandHandleAsync or HandleCommandAsync:

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

This is under the dependency map:

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
} 
查看更多
▲ chillily
3楼-- · 2020-04-12 03:27

In case any of you wanted to send a message directly to the joining 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");
}

查看更多
登录 后发表回答