From 03ad7a368022068a43caf5c487d851ddd47e1e5b Mon Sep 17 00:00:00 2001 From: LinoxGH Date: Tue, 11 Jan 2022 20:51:19 +0300 Subject: [PATCH] Implemented #515. --- .../adventure/text/minimessage/MiniMessageParser.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/text-minimessage/src/main/java/net/kyori/adventure/text/minimessage/MiniMessageParser.java b/text-minimessage/src/main/java/net/kyori/adventure/text/minimessage/MiniMessageParser.java index 44897f2d4..23e9b4cbc 100644 --- a/text-minimessage/src/main/java/net/kyori/adventure/text/minimessage/MiniMessageParser.java +++ b/text-minimessage/src/main/java/net/kyori/adventure/text/minimessage/MiniMessageParser.java @@ -61,6 +61,7 @@ final class MiniMessageParser { @NotNull String escapeTokens(final @NotNull String richMessage, final @NotNull ContextImpl context) { final StringBuilder sb = new StringBuilder(richMessage.length()); + this.tryToNag(richMessage, context.strict()); this.escapeTokens(sb, richMessage, context); return sb.toString(); } @@ -84,6 +85,7 @@ void escapeTokens(final StringBuilder sb, final @NotNull String richMessage, fin @NotNull String stripTokens(final @NotNull String richMessage, final @NotNull ContextImpl context) { final StringBuilder sb = new StringBuilder(richMessage.length()); + this.tryToNag(richMessage, context.strict()); this.processTokens(sb, richMessage, context, (token, builder) -> {}); return sb.toString(); } @@ -125,6 +127,7 @@ private void processTokens(final @NotNull StringBuilder sb, final @NotNull Strin debug.accept(richMessage); debug.accept("\n"); } + this.tryToNag(richMessage, context.strict()); final TokenParser.TagProvider transformationFactory; if (debug != null) { @@ -265,4 +268,10 @@ private Component handleModifying(final Modifying modTransformation, final Compo } return newComp; } + + private void tryToNag(final String input, final boolean strict) { + if (input.contains("ยง") && strict) { + throw new IllegalArgumentException("Legacy formatting codes have been detected in a component - this is unsupported behaviour. Please refer to the Adventure documentation (https://docs.adventure.kyori.net) for more information."); + } + } }