diff --git a/chat/src/main/java/net/md_5/bungee/api/chat/ComponentBuilder.java b/chat/src/main/java/net/md_5/bungee/api/chat/ComponentBuilder.java index dfdc7bf0b..6e8306ffd 100644 --- a/chat/src/main/java/net/md_5/bungee/api/chat/ComponentBuilder.java +++ b/chat/src/main/java/net/md_5/bungee/api/chat/ComponentBuilder.java @@ -146,6 +146,19 @@ public final class ComponentBuilder return append( text, FormatRetention.ALL ); } + /** + * Parse text to BaseComponent[] with colors and format, appends the text to + * the builder and makes it the current target for formatting. The component + * will have all the formatting from previous part. + * + * @param text the text to append + * @return this ComponentBuilder for chaining + */ + public ComponentBuilder appendLegacy(String text) + { + return append( TextComponent.fromLegacyText( text ) ); + } + /** * Appends the text to the builder and makes it the current target for * formatting. You can specify the amount of formatting retained from diff --git a/chat/src/test/java/net/md_5/bungee/api/chat/ComponentsTest.java b/chat/src/test/java/net/md_5/bungee/api/chat/ComponentsTest.java index 27b5bbeaf..bb38f1b1c 100644 --- a/chat/src/test/java/net/md_5/bungee/api/chat/ComponentsTest.java +++ b/chat/src/test/java/net/md_5/bungee/api/chat/ComponentsTest.java @@ -92,6 +92,18 @@ public class ComponentsTest Assert.assertEquals( ChatColor.YELLOW + "Hello " + ChatColor.GREEN + "world!", BaseComponent.toLegacyText( components ) ); } + @Test + public void testBuilderAppendLegacy() + { + ComponentBuilder builder = new ComponentBuilder( "Hello " ).color( ChatColor.YELLOW ); + builder.appendLegacy( "§aworld!" ); + + BaseComponent[] components = builder.create(); + + Assert.assertEquals( "Hello world!", BaseComponent.toPlainText( components ) ); + Assert.assertEquals( ChatColor.YELLOW + "Hello " + ChatColor.GREEN + "world!", BaseComponent.toLegacyText( components ) ); + } + @Test public void testBasicComponent() {