Как отправить картинку на канал Discord

Мне нужно отправить картинку (скриншот) в канал 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 ответ

Решение

Согласно документам JDA, чтобы отправить файл на канал, вы должны использовать соответствующую функцию SendFile RestAction.

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

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

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

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

ByteArrayOutputStream stream = new ByteArrayOutputStream();
ImageIO.write(screencapture, "jpg", stream);
channel.sendFile(stream.toByteArray(), "fileName.jpg").queue();
Другие вопросы по тегам