77import net .dv8tion .jda .api .hooks .ListenerAdapter ;
88import net .dv8tion .jda .api .interactions .components .buttons .Button ;
99import net .dv8tion .jda .api .requests .RestAction ;
10+ import net .javadiscord .javabot .util .ExceptionLogger ;
1011import net .javadiscord .javabot .util .InteractionUtils ;
1112import net .javadiscord .javabot .util .Responses ;
13+ import net .javadiscord .javabot .util .WebhookUtil ;
1214import org .jetbrains .annotations .NotNull ;
1315
1416import java .util .Arrays ;
@@ -28,35 +30,23 @@ public void onMessageReceived(@NotNull MessageReceivedEvent event) {
2830 if (event .getAuthor ().isBot () || event .getAuthor ().isSystem ()) return ;
2931 Matcher matcher = MESSAGE_URL_PATTERN .matcher (event .getMessage ().getContentRaw ());
3032 if (matcher .find ()) {
31- Optional <RestAction <Message >> optional = this . parseMessageUrl (matcher .group (), event .getJDA ());
33+ Optional <RestAction <Message >> optional = parseMessageUrl (matcher .group (), event .getJDA ());
3234 optional .ifPresent (action -> action .queue (
33- m -> event .getMessage ().replyEmbeds (this .buildUrlEmbed (m ))
34- .setActionRow (Button .secondary (InteractionUtils .DELETE_ORIGINAL_TEMPLATE , "\uD83D \uDDD1 ️" ), Button .link (m .getJumpUrl (), "View Original" ))
35- .queue (),
36- e -> {}
35+ m -> WebhookUtil .ensureWebhookExists (event .getChannel ().asTextChannel (),
36+ wh -> WebhookUtil .mirrorMessageToWebhook (wh , m , m .getContentRaw () + "\n \n " + m .getJumpUrl (), 0 )
37+ ), ExceptionLogger ::capture
3738 ));
3839 }
3940 }
4041
41- private MessageEmbed buildUrlEmbed (Message m ) {
42- User author = m .getAuthor ();
43- return new EmbedBuilder ()
44- .setAuthor (author .getAsTag (), m .getJumpUrl (), author .getEffectiveAvatarUrl ())
45- .setColor (Responses .Type .DEFAULT .getColor ())
46- .setDescription (m .getContentRaw ())
47- .setTimestamp (m .getTimeCreated ())
48- .setFooter ("#" + m .getChannel ().getName ())
49- .build ();
50- }
51-
5242 /**
5343 * Tries to parse a Discord Message Link to the corresponding Message object.
5444 *
5545 * @param url The Message Link.
5646 * @param jda The {@link JDA} instance.
5747 * @return An {@link Optional} containing the {@link RestAction} which retrieves the corresponding Message.
5848 */
59- private Optional <RestAction <Message >> parseMessageUrl (String url , JDA jda ) {
49+ private Optional <RestAction <Message >> parseMessageUrl (@ NotNull String url , @ NotNull JDA jda ) {
6050 RestAction <Message > optional = null ;
6151 String [] arr = url .split ("/" );
6252 String [] segments = Arrays .copyOfRange (arr , 4 , arr .length );
0 commit comments