我正在使用C#中的Discord.Net,制作一个机器人。到目前为止,我的机器人表现非常好,但是我希望它在特定服务器加入用户时自动分配给他们一个特定的角色。我从未真正学习过任何C#,只了解了一些基本语法。我该如何处理?
我假设我会使用UserJoined,但这样做会导致结果告诉我在+=或-+之前或之后使用它(我理解,但我不理解它在这种情况下的有用性)。
我假设我会使用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;
}