Как отправить картинку на канал Discord - PullRequest
0 голосов
/ 10 декабря 2018

Мне нужно отправить картинку (скриншот) в канал Discord.Я успешно разработал отправку текста в канал, но не знаю, как отправить экран.

Вот часть моего кода:

// connection to the Channel
TextChannel channel = api.getTextChannelById(this.channelId);
        if (channel != null) {
            channel.sendMessage(pMessage).queue();
        }

// capture the whole screen
BufferedImage screencapture = new Robot().createScreenCapture( new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()) );

// Save as JPEG - not necessary
File file = new File("screencapture.jpg");
ImageIO.write(screencapture, "jpg", file);

// CODE for sendPicture (screencapture to the Channel) HERE!!!
// code here
// code here

Есть идеи, как это сделать?

1 Ответ

0 голосов
/ 10 декабря 2018

В соответствии с JDA docs , чтобы отправить файл на канал, вы должны использовать соответствующую функцию пересылки sendFile.

Существует ряд различных методов отправки, которые вы можете использовать, некоторые изкоторые позволяют вам отправить сообщение вместе с вашим файлом.

Например, чтобы отправить файл с помощью объекта File:

channel.sendFile(new File("path/to/file")).queue();

Или непосредственно с InputStream (в вашемcase - чтобы избежать записи на диск).

ByteArrayOutputStream stream = new ByteArrayOutputStream();
ImageIO.write(screencapture, "jpg", stream);
channel.sendFile(stream.toByteArray(), "fileName.jpg").queue();
...