From 7085b78a3a07e2f65dc923307722630c61d24146 Mon Sep 17 00:00:00 2001 From: zml Date: Mon, 30 May 2022 22:09:13 -0700 Subject: [PATCH] text-minimessage: Validate tag names in resolver builder --- .../minimessage/tag/resolver/TagResolverBuilderImpl.java | 4 +++- .../adventure/text/minimessage/tag/TagResolverTest.java | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/text-minimessage/src/main/java/net/kyori/adventure/text/minimessage/tag/resolver/TagResolverBuilderImpl.java b/text-minimessage/src/main/java/net/kyori/adventure/text/minimessage/tag/resolver/TagResolverBuilderImpl.java index 325c9ac45..edaf3356b 100644 --- a/text-minimessage/src/main/java/net/kyori/adventure/text/minimessage/tag/resolver/TagResolverBuilderImpl.java +++ b/text-minimessage/src/main/java/net/kyori/adventure/text/minimessage/tag/resolver/TagResolverBuilderImpl.java @@ -30,6 +30,7 @@ import java.util.List; import java.util.Map; import java.util.stream.Collector; +import net.kyori.adventure.text.minimessage.internal.TagInternals; import net.kyori.adventure.text.minimessage.tag.Tag; import org.jetbrains.annotations.NotNull; @@ -48,8 +49,9 @@ final class TagResolverBuilderImpl implements TagResolver.Builder { @Override public TagResolver.@NotNull Builder tag(final @NotNull String name, final @NotNull Tag tag) { + TagInternals.assertValidTagName(requireNonNull(name, "name")); this.replacements.put( - requireNonNull(name, "name"), + name, requireNonNull(tag, "tag") ); return this; diff --git a/text-minimessage/src/test/java/net/kyori/adventure/text/minimessage/tag/TagResolverTest.java b/text-minimessage/src/test/java/net/kyori/adventure/text/minimessage/tag/TagResolverTest.java index c3238b5a4..10ab0c79a 100644 --- a/text-minimessage/src/test/java/net/kyori/adventure/text/minimessage/tag/TagResolverTest.java +++ b/text-minimessage/src/test/java/net/kyori/adventure/text/minimessage/tag/TagResolverTest.java @@ -128,6 +128,12 @@ void testInvalidTagName() { assertThrows(IllegalArgumentException.class, () -> TagResolver.resolver("#test#", Tag.preProcessParsed("something"))); } + // https://github.com/KyoriPowered/adventure/issues/763 + @Test + void testBuilderValidatesTagName() { + assertThrows(IllegalArgumentException.class, () -> TagResolver.builder().tag("INVALID#NAME", Tag.preProcessParsed("something"))); + } + @Test void testValidTagName() { assertDoesNotThrow(() -> TagResolver.resolver("valid_-name0909", Tag.preProcessParsed("something")));