From 6beb398e10e6e9583daebe7f1713118fcceb5717 Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Sun, 9 Oct 2022 00:36:07 +0200 Subject: [PATCH] Added a way to replace text with components and patterns with strings/components --- .../alttd/chat/objects/ModifiableString.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/api/src/main/java/com/alttd/chat/objects/ModifiableString.java b/api/src/main/java/com/alttd/chat/objects/ModifiableString.java index 70789a2..bfbef62 100644 --- a/api/src/main/java/com/alttd/chat/objects/ModifiableString.java +++ b/api/src/main/java/com/alttd/chat/objects/ModifiableString.java @@ -3,6 +3,10 @@ package com.alttd.chat.objects; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextReplacementConfig; import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; +import org.intellij.lang.annotations.RegExp; + +import javax.annotation.RegEx; +import java.util.regex.Pattern; public class ModifiableString { private Component text; @@ -24,6 +28,33 @@ public class ModifiableString { .build()); } + public void replace(Pattern match, String replace) { + text = text + .replaceText( + TextReplacementConfig.builder() + .match(match) + .replacement(replace) + .build()); + } + + public void replace(@RegExp String match, Component replace) { + text = text + .replaceText( + TextReplacementConfig.builder() + .matchLiteral(match) + .replacement(replace) + .build()); + } + + public void replace(Pattern match, Component replace) { + text = text + .replaceText( + TextReplacementConfig.builder() + .match(match) + .replacement(replace) + .build()); + } + public String string() { return PlainTextComponentSerializer.plainText().serialize(text); }