Я использую Discord.Net 1.0.2v, так как большинство руководств и доступной документации относятся к версии 1.0.2. По сути, я пытаюсь получить сообщение, загрузить его, удалить с помощью discord.net. Похоже, я все сделал правильно, я указал _client как DiscordSocketClient, я все настроил так, как должно быть, я попытался сделать его функцией, а не асинхронностью, но так и должно быть. Я могу сделать это по команде. Я также пытался создать его с нуля, но ошибок было больше, чем я мог сосчитать, поэтому вот мой код.
private DiscordSocketClient _client;
[Command("NBDelete")]
[RequireBotPermission(Discord.GuildPermission.ManageMessages)]
[RequireUserPermission(Discord.GuildPermission.ManageMessages)]
public async Task DeleteNonBotMessages()
{
_client = new DiscordSocketClient();
// error starts here
_client.MessageReceived += async (s, e) =>
{
var channel = e.Server.FindChannels("general", ChannelType.Text).FirstOrDefault();
var user = _client.CurrentUser;
spamold = spamnew;
Message[] messagesToObtain;
messagesToObtain = await e.Channel.DownloadMessages(1);
spamnew = string.Format(messagesToObtain);
if (spamnew == spamold)
{
Message[] messagesToDelete;
messagesToDelete = await e.Channel.DownloadMessages(2);
await e.Channel.DeleteMessages(messagesToDelete);
};
};
}
Я ожидаю, что программа сможет получать сообщения, загружать их, а затем разрешать мне их удалять. Полная ошибка: «Delegate'Func<SocketMessage, Task>
» не принимает 2 аргумента.
Func<T, TResult>
, то один является аргументом, а другой — возвратом. - person Brian Rasmussen   schedule 15.01.2019Func<SocketMessage, Task>
принимает только один аргумент, и вы нигде не используете аргументs
. Попробуйте удалить это. - person Sweeper   schedule 15.01.2019