- final var reaction = dataMessage.getReaction().isPresent() ? JsonReaction.from(dataMessage.getReaction().get(),
- m) : null;
- final var quote = dataMessage.getQuote().isPresent() ? JsonQuote.from(dataMessage.getQuote().get(), m) : null;
- final List<JsonMention> mentions;
- if (dataMessage.getMentions().isPresent()) {
- mentions = dataMessage.getMentions()
- .get()
- .stream()
- .map(mention -> JsonMention.from(mention, m))
- .collect(Collectors.toList());
- } else {
- mentions = List.of();
- }
- final var remoteDelete = dataMessage.getRemoteDelete().isPresent()
- ? JsonRemoteDelete.from(dataMessage.getRemoteDelete().get())
- : null;
- final List<JsonAttachment> attachments;
- if (dataMessage.getAttachments().isPresent()) {
- attachments = dataMessage.getAttachments()
- .get()
- .stream()
- .map(JsonAttachment::from)
- .collect(Collectors.toList());
- } else {
- attachments = List.of();
- }
- final var sticker = dataMessage.getSticker().isPresent()
- ? JsonSticker.from(dataMessage.getSticker().get())
+ final var reaction = dataMessage.reaction().map(JsonReaction::from).orElse(null);
+ final var quote = dataMessage.quote().isPresent() ? JsonQuote.from(dataMessage.quote().get()) : null;
+ final var payment = dataMessage.payment().isPresent() ? JsonPayment.from(dataMessage.payment().get()) : null;
+ final var mentions = dataMessage.mentions().size() > 0 ? dataMessage.mentions()
+ .stream()
+ .map(JsonMention::from)
+ .collect(Collectors.toList()) : null;
+ final var remoteDelete = dataMessage.remoteDeleteId().isPresent()
+ ? new JsonRemoteDelete(dataMessage.remoteDeleteId().get())