У меня проблема, в которой я ищу, чтобы наш бот разногласий искал только полученные изображения и игнорировал любой введенный текст. Из руководств, которые я читал, мне еще не приходилось сталкиваться ни с одним, которое не требовало бы команды.
Я попытался использовать команду без команды в строке, однако она не строится, поскольку не содержит параметра.
У кого-нибудь есть идеи, как я могу просто слушать только изображение?
Ниже приведен пример моего кода.
private async Task _client_MessageReceived(SocketMessage arg)
{
var message = arg as SocketUserMessage;
var context = new SocketCommandContext(_client, message);
if (message.Author.IsBot) return;
int argPos = 0;
if (message.HasStringPrefix("!", ref argPos) || message.Attachments.Count > 0)
{
var result = await _commands.ExecuteAsync(context, argPos, _services);
if (!result.IsSuccess) Console.WriteLine(result.ErrorReason);
}
else
await message.DeleteAsync();
}
[Command("")]
public async Task Photo()
{
var attachments = Context.Message.Attachments;
WebClient myWebClient = new WebClient();
string file = attachments.ElementAt(0).Filename;
string url = attachments.ElementAt(0).Url;
myWebClient.DownloadFile(url, @"mydirect");
_ = Task.Run(async () =>
{
AWS.AWS.Get_kv_map(@"mydirect");
});
}