7
7
import net .dv8tion .jda .api .hooks .ListenerAdapter ;
8
8
import net .dv8tion .jda .api .interactions .components .buttons .Button ;
9
9
import net .dv8tion .jda .api .requests .RestAction ;
10
+ import net .javadiscord .javabot .util .ExceptionLogger ;
10
11
import net .javadiscord .javabot .util .InteractionUtils ;
11
12
import net .javadiscord .javabot .util .Responses ;
13
+ import net .javadiscord .javabot .util .WebhookUtil ;
12
14
import org .jetbrains .annotations .NotNull ;
13
15
14
16
import java .util .Arrays ;
@@ -28,35 +30,23 @@ public void onMessageReceived(@NotNull MessageReceivedEvent event) {
28
30
if (event .getAuthor ().isBot () || event .getAuthor ().isSystem ()) return ;
29
31
Matcher matcher = MESSAGE_URL_PATTERN .matcher (event .getMessage ().getContentRaw ());
30
32
if (matcher .find ()) {
31
- Optional <RestAction <Message >> optional = this . parseMessageUrl (matcher .group (), event .getJDA ());
33
+ Optional <RestAction <Message >> optional = parseMessageUrl (matcher .group (), event .getJDA ());
32
34
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
37
38
));
38
39
}
39
40
}
40
41
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
-
52
42
/**
53
43
* Tries to parse a Discord Message Link to the corresponding Message object.
54
44
*
55
45
* @param url The Message Link.
56
46
* @param jda The {@link JDA} instance.
57
47
* @return An {@link Optional} containing the {@link RestAction} which retrieves the corresponding Message.
58
48
*/
59
- private Optional <RestAction <Message >> parseMessageUrl (String url , JDA jda ) {
49
+ private Optional <RestAction <Message >> parseMessageUrl (@ NotNull String url , @ NotNull JDA jda ) {
60
50
RestAction <Message > optional = null ;
61
51
String [] arr = url .split ("/" );
62
52
String [] segments = Arrays .copyOfRange (arr , 4 , arr .length );
0 commit comments