Как отправить картинку на канал 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();