Skip to content

Commit

Permalink
Add AdventureUrlPostProcessor
Browse files Browse the repository at this point in the history
  • Loading branch information
vLuckyyy committed May 8, 2024
1 parent 6237700 commit 82c8862
Showing 1 changed file with 23 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.eternalcode.commons.adventure;

import java.util.function.UnaryOperator;
import java.util.regex.Pattern;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextReplacementConfig;
import net.kyori.adventure.text.event.ClickEvent;
import org.jetbrains.annotations.NotNull;

public class AdventureUrlPostProcessor implements UnaryOperator<Component> {

private static final Pattern URL_PATTERN = Pattern.compile("https?://(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()!@:%_+.~#?&/=]*)");

public static final @NotNull TextReplacementConfig CLICKABLE_URL_CONFIG = TextReplacementConfig.builder()
.match(URL_PATTERN)
.replacement(url -> url.clickEvent(ClickEvent.openUrl(url.content())))
.build();

@Override
public Component apply(Component component) {
return component.replaceText(CLICKABLE_URL_CONFIG);
}
}

0 comments on commit 82c8862

Please sign in to comment.