Package net.md_5.bungee.api.chat
Class ComponentBuilder
java.lang.Object
net.md_5.bungee.api.chat.ComponentBuilder
ComponentBuilder simplifies creating basic messages by allowing the use of a chainable builder.
new ComponentBuilder("Hello ").color(ChatColor.RED). append("World").color(ChatColor.BLUE). append("!").bold(true).create();
All methods (excluding append(String)
and create()
work on
the last part appended to the builder, so in the example above "Hello " would
be ChatColor.RED
and "World" would be
ChatColor.BLUE
but "!" would be bold and
ChatColor.BLUE
because append copies the previous
part's formatting
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
static interface
Functional interface to join additional components to a ComponentBuilder. -
Constructor Summary
ConstructorDescriptionComponentBuilder
(String text) Creates a ComponentBuilder with the given text as the first part.ComponentBuilder
(BaseComponent component) Creates a ComponentBuilder with the given component as the first part.ComponentBuilder
(ComponentBuilder original) Creates a ComponentBuilder from the other given ComponentBuilder to clone it. -
Method Summary
Modifier and TypeMethodDescriptionAppends the text to the builder and makes it the current target for formatting.append
(String text, ComponentBuilder.FormatRetention retention) Appends the text to the builder and makes it the current target for formatting.append
(BaseComponent component) Appends a component to the builder and makes it the current target for formatting.append
(BaseComponent[] components) Appends the components to the builder and makes the last element the current target for formatting.append
(BaseComponent[] components, ComponentBuilder.FormatRetention retention) Appends the components to the builder and makes the last element the current target for formatting.append
(BaseComponent component, ComponentBuilder.FormatRetention retention) Appends a component to the builder and makes it the current target for formatting.append
(ComponentBuilder.Joiner joiner) Allows joining additional components to this builder using the givenComponentBuilder.Joiner
andComponentBuilder.FormatRetention.ALL
.append
(ComponentBuilder.Joiner joiner, ComponentBuilder.FormatRetention retention) Allows joining additional components to this builder using the givenComponentBuilder.Joiner
.append
(TranslationProvider translatable) Appends theTranslationProvider
object to the builder and makes the last element the current target for formatting.append
(TranslationProvider translatable, ComponentBuilder.FormatRetention retention) Appends theTranslationProvider
object to the builder and makes the last element the current target for formatting.appendLegacy
(String text) Parse text to BaseComponent[] with colors and format, appends the text to the builder and makes it the current target for formatting.bold
(boolean bold) Sets whether the current part is bold.build()
Returns the component built by this builder.Sets the color of the current part.create()
Returns the components needed to display the message created by this builder.gitevent
(ClickEvent clickEvent) Sets the click event for the current part.event
(HoverEvent hoverEvent) Sets the hover event for the current part.Sets the font of the current part.getComponent
(int pos) Gets the component part at the position of given index.Gets the component at the position of the cursor.Sets the insertion text for the current part.italic
(boolean italic) Sets whether the current part is italic.obfuscated
(boolean obfuscated) Sets whether the current part is obfuscated.void
removeComponent
(int pos) Remove the component part at the position of given index.reset()
Sets the current part back to normal settings.Resets the cursor to index of the last element.retain
(ComponentBuilder.FormatRetention retention) Retains only the specified formatting.setCursor
(int pos) Sets the position of the current component to be modifiedstrikethrough
(boolean strikethrough) Sets whether the current part is strikethrough.style
(ComponentStyle style) Applies the providedComponentStyle
to the current part.underlined
(boolean underlined) Sets whether the current part is underlined.
-
Constructor Details
-
ComponentBuilder
Creates a ComponentBuilder from the other given ComponentBuilder to clone it.- Parameters:
original
- the original for the new ComponentBuilder.
-
ComponentBuilder
Creates a ComponentBuilder with the given text as the first part.- Parameters:
text
- the first text element
-
ComponentBuilder
Creates a ComponentBuilder with the given component as the first part.- Parameters:
component
- the first component element
-
-
Method Details
-
resetCursor
Resets the cursor to index of the last element.- Returns:
- this ComponentBuilder for chaining
-
setCursor
Sets the position of the current component to be modified- Parameters:
pos
- the cursor position synonymous to an element position for a list- Returns:
- this ComponentBuilder for chaining
- Throws:
IndexOutOfBoundsException
- if the index is out of range (index < 0 || index >= size()
)
-
append
Appends a component to the builder and makes it the current target for formatting. The component will have all the formatting from previous part.- Parameters:
component
- the component to append- Returns:
- this ComponentBuilder for chaining
-
append
Appends a component to the builder and makes it the current target for formatting. You can specify the amount of formatting retained from previous part.- Parameters:
component
- the component to appendretention
- the formatting to retain- Returns:
- this ComponentBuilder for chaining
-
append
Appends the components to the builder and makes the last element the current target for formatting. The components will have all the formatting from previous part.- Parameters:
components
- the components to append- Returns:
- this ComponentBuilder for chaining
-
append
public ComponentBuilder append(BaseComponent[] components, ComponentBuilder.FormatRetention retention) Appends the components to the builder and makes the last element the current target for formatting. You can specify the amount of formatting retained from previous part.- Parameters:
components
- the components to appendretention
- the formatting to retain- Returns:
- this ComponentBuilder for chaining
-
append
Appends theTranslationProvider
object to the builder and makes the last element the current target for formatting. The components will have all the formatting from previous part.- Parameters:
translatable
- the translatable object to append- Returns:
- this ComponentBuilder for chaining
-
append
public ComponentBuilder append(TranslationProvider translatable, ComponentBuilder.FormatRetention retention) Appends theTranslationProvider
object to the builder and makes the last element the current target for formatting. You can specify the amount of formatting retained from previous part.- Parameters:
translatable
- the translatable object to appendretention
- the formatting to retain- Returns:
- this ComponentBuilder for chaining
-
append
Appends the text to the builder and makes it the current target for formatting. The text will have all the formatting from previous part.- Parameters:
text
- the text to append- Returns:
- this ComponentBuilder for chaining
-
appendLegacy
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.- Parameters:
text
- the text to append- Returns:
- this ComponentBuilder for chaining
-
append
Appends the text to the builder and makes it the current target for formatting. You can specify the amount of formatting retained from previous part.- Parameters:
text
- the text to appendretention
- the formatting to retain- Returns:
- this ComponentBuilder for chaining
-
append
Allows joining additional components to this builder using the givenComponentBuilder.Joiner
andComponentBuilder.FormatRetention.ALL
. Simply executes the provided joiner on this instance to facilitate a chain pattern.- Parameters:
joiner
- joiner used for operation- Returns:
- this ComponentBuilder for chaining
-
append
public ComponentBuilder append(ComponentBuilder.Joiner joiner, ComponentBuilder.FormatRetention retention) Allows joining additional components to this builder using the givenComponentBuilder.Joiner
. Simply executes the provided joiner on this instance to facilitate a chain pattern.- Parameters:
joiner
- joiner used for operationretention
- the formatting to retain- Returns:
- this ComponentBuilder for chaining
-
removeComponent
Remove the component part at the position of given index.- Parameters:
pos
- the index to remove at- Throws:
IndexOutOfBoundsException
- if the index is out of range (index < 0 || index >= size()
)
-
getComponent
Gets the component part at the position of given index.- Parameters:
pos
- the index to find- Returns:
- the component
- Throws:
IndexOutOfBoundsException
- if the index is out of range (index < 0 || index >= size()
)
-
getCurrentComponent
Gets the component at the position of the cursor.- Returns:
- the active component or null if builder is empty
-
color
Sets the color of the current part.- Parameters:
color
- the new color- Returns:
- this ComponentBuilder for chaining
-
font
Sets the font of the current part.- Parameters:
font
- the new font- Returns:
- this ComponentBuilder for chaining
-
bold
Sets whether the current part is bold.- Parameters:
bold
- whether this part is bold- Returns:
- this ComponentBuilder for chaining
-
italic
Sets whether the current part is italic.- Parameters:
italic
- whether this part is italic- Returns:
- this ComponentBuilder for chaining
-
underlined
Sets whether the current part is underlined.- Parameters:
underlined
- whether this part is underlined- Returns:
- this ComponentBuilder for chaining
-
strikethrough
Sets whether the current part is strikethrough.- Parameters:
strikethrough
- whether this part is strikethrough- Returns:
- this ComponentBuilder for chaining
-
obfuscated
Sets whether the current part is obfuscated.- Parameters:
obfuscated
- whether this part is obfuscated- Returns:
- this ComponentBuilder for chaining
-
style
Applies the providedComponentStyle
to the current part.- Parameters:
style
- the style to apply- Returns:
- this ComponentBuilder for chaining
-
insertion
Sets the insertion text for the current part.- Parameters:
insertion
- the insertion text- Returns:
- this ComponentBuilder for chaining
-
event
Sets the click event for the current part.- Parameters:
clickEvent
- the click event- Returns:
- this ComponentBuilder for chaining
-
event
Sets the hover event for the current part.- Parameters:
hoverEvent
- the hover event- Returns:
- this ComponentBuilder for chaining
-
reset
Sets the current part back to normal settings. Only text is kept.- Returns:
- this ComponentBuilder for chaining
-
retain
Retains only the specified formatting. Text is not modified.- Parameters:
retention
- the formatting to retain- Returns:
- this ComponentBuilder for chaining
-
build
Returns the component built by this builder. If this builder is empty, an empty text component will be returned.- Returns:
- the component
-
create
Returns the components needed to display the message created by this builder.gitNOTE:
build()
is preferred as it will consolidate all components into a single BaseComponent with extra contents as opposed to an array of components which is non-standard and may result in unexpected behavior.- Returns:
- the created components
-