错误:'UserBanned'没有重载匹配委托'Func'
我知道我禁止的用户消息缺少一个参数,我知道我必须在这个参数的括号中添加一些东西,但是我完全不知道我应该放什么。我找了好一两个小时,也许答案被扔在了我的脸上,但我不知道,但我仍然不知道该怎么办。我想我应该在括号中添加一个变量,但我不确定是什么。
public async Task RunBotAsync()
{
_client = new DiscordSocketClient(new DiscordSocketConfig
{
LogLevel = LogSeverity.Verbose
});
_commands = new CommandService();
_services = new ServiceCollection()
.AddSingleton(_client)
.AddSingleton(_commands)
.BuildServiceProvider();
string botToken = "Token";
//event subscriptions
_client.Log += Log;
_client.UserJoined += UserJoined;
_client.UserLeft += UserLeft;
_client.UserBanned += UserBanned; //<- Error Line
await RegisterCommandsAsync();
await _client.LoginAsync(TokenType.Bot, botToken);
await _client.StartAsync();
await Task.Delay(-1);
}
private async Task UserBanned(SocketGuildUser user, IGuild bloop)
{
var guild = user.Guild;
var announcements = _client.GetChannel(390418472783577088) as SocketTextChannel;
await announcements.SendMessageAsync($"{user.Mention} was banned from the server.");
}
答案 0 :(得分:0)
从这一行:
_client.UserBanned += UserBanned;
引用的函数应该类似于以下内容。
async Task UserBanned(SocketUser user, SocketGuild bloop)
{
var guild = user.Guild;
var announcements = _client.GetChannel(390418472783577088) as SocketTextChannel;
await announcements.SendMessageAsync($"{user.Mention} was banned from the server.");
}
Discord.WebSocket.BaseSocketClient.UserBanned
看起来你需要一个SocketGuild arg而不是IGuild接口。