Package net.md_5.bungee.api.chat
Class ComponentBuilder
- java.lang.Object
-
- net.md_5.bungee.api.chat.ComponentBuilder
-
public final class ComponentBuilder extends Object
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)andcreate()work on the last part appended to the builder, so in the example above "Hello " would beChatColor.REDand "World" would beChatColor.BLUEbut "!" would be bold andChatColor.BLUEbecause append copies the previous part's formatting
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classComponentBuilder.FormatRetentionstatic interfaceComponentBuilder.JoinerFunctional interface to join additional components to a ComponentBuilder.
-
Constructor Summary
Constructors Constructor Description ComponentBuilder()ComponentBuilder(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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ComponentBuilderappend(String text)Appends the text to the builder and makes it the current target for formatting.ComponentBuilderappend(String text, ComponentBuilder.FormatRetention retention)Appends the text to the builder and makes it the current target for formatting.ComponentBuilderappend(BaseComponent component)Appends a component to the builder and makes it the current target for formatting.ComponentBuilderappend(BaseComponent[] components)Appends the components to the builder and makes the last element the current target for formatting.ComponentBuilderappend(BaseComponent[] components, ComponentBuilder.FormatRetention retention)Appends the components to the builder and makes the last element the current target for formatting.ComponentBuilderappend(BaseComponent component, ComponentBuilder.FormatRetention retention)Appends a component to the builder and makes it the current target for formatting.ComponentBuilderappend(ComponentBuilder.Joiner joiner)Allows joining additional components to this builder using the givenComponentBuilder.JoinerandComponentBuilder.FormatRetention.ALL.ComponentBuilderappend(ComponentBuilder.Joiner joiner, ComponentBuilder.FormatRetention retention)Allows joining additional components to this builder using the givenComponentBuilder.Joiner.ComponentBuilderappendLegacy(String text)Parse text to BaseComponent[] with colors and format, appends the text to the builder and makes it the current target for formatting.ComponentBuilderbold(boolean bold)Sets whether the current part is bold.ComponentBuildercolor(ChatColor color)Sets the color of the current part.BaseComponent[]create()Returns the components needed to display the message created by this builder.gitComponentBuilderevent(ClickEvent clickEvent)Sets the click event for the current part.ComponentBuilderevent(HoverEvent hoverEvent)Sets the hover event for the current part.ComponentBuilderfont(String font)Sets the font of the current part.BaseComponentgetComponent(int pos)Gets the component part at the position of given index.BaseComponentgetCurrentComponent()Gets the component at the position of the cursor.intgetCursor()The position for the current part to modify.List<BaseComponent>getParts()ComponentBuilderinsertion(String insertion)Sets the insertion text for the current part.ComponentBuilderitalic(boolean italic)Sets whether the current part is italic.ComponentBuilderobfuscated(boolean obfuscated)Sets whether the current part is obfuscated.voidremoveComponent(int pos)Remove the component part at the position of given index.ComponentBuilderreset()Sets the current part back to normal settings.ComponentBuilderresetCursor()Resets the cursor to index of the last element.ComponentBuilderretain(ComponentBuilder.FormatRetention retention)Retains only the specified formatting.ComponentBuildersetCursor(int pos)Sets the position of the current component to be modifiedComponentBuilderstrikethrough(boolean strikethrough)Sets whether the current part is strikethrough.ComponentBuilderunderlined(boolean underlined)Sets whether the current part is underlined.
-
-
-
Constructor Detail
-
ComponentBuilder
public ComponentBuilder(ComponentBuilder original)
Creates a ComponentBuilder from the other given ComponentBuilder to clone it.- Parameters:
original- the original for the new ComponentBuilder.
-
ComponentBuilder
public ComponentBuilder(String text)
Creates a ComponentBuilder with the given text as the first part.- Parameters:
text- the first text element
-
ComponentBuilder
public ComponentBuilder(BaseComponent component)
Creates a ComponentBuilder with the given component as the first part.- Parameters:
component- the first component element
-
ComponentBuilder
public ComponentBuilder()
-
-
Method Detail
-
resetCursor
public ComponentBuilder resetCursor()
Resets the cursor to index of the last element.- Returns:
- this ComponentBuilder for chaining
-
setCursor
public ComponentBuilder setCursor(int pos) throws IndexOutOfBoundsException
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
public ComponentBuilder append(BaseComponent component)
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
public ComponentBuilder append(BaseComponent component, ComponentBuilder.FormatRetention retention)
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
public ComponentBuilder append(BaseComponent[] components)
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
public ComponentBuilder append(String text)
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
public ComponentBuilder 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. The component will have all the formatting from previous part.- Parameters:
text- the text to append- Returns:
- this ComponentBuilder for chaining
-
append
public ComponentBuilder append(String text, ComponentBuilder.FormatRetention retention)
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
public ComponentBuilder append(ComponentBuilder.Joiner joiner)
Allows joining additional components to this builder using the givenComponentBuilder.JoinerandComponentBuilder.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
public void removeComponent(int pos) throws IndexOutOfBoundsExceptionRemove 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
public BaseComponent getComponent(int pos) throws IndexOutOfBoundsException
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
public BaseComponent getCurrentComponent()
Gets the component at the position of the cursor.- Returns:
- the active component or null if builder is empty
-
color
public ComponentBuilder color(ChatColor color)
Sets the color of the current part.- Parameters:
color- the new color- Returns:
- this ComponentBuilder for chaining
-
font
public ComponentBuilder font(String font)
Sets the font of the current part.- Parameters:
font- the new font- Returns:
- this ComponentBuilder for chaining
-
bold
public ComponentBuilder bold(boolean bold)
Sets whether the current part is bold.- Parameters:
bold- whether this part is bold- Returns:
- this ComponentBuilder for chaining
-
italic
public ComponentBuilder italic(boolean italic)
Sets whether the current part is italic.- Parameters:
italic- whether this part is italic- Returns:
- this ComponentBuilder for chaining
-
underlined
public ComponentBuilder underlined(boolean underlined)
Sets whether the current part is underlined.- Parameters:
underlined- whether this part is underlined- Returns:
- this ComponentBuilder for chaining
-
strikethrough
public ComponentBuilder strikethrough(boolean strikethrough)
Sets whether the current part is strikethrough.- Parameters:
strikethrough- whether this part is strikethrough- Returns:
- this ComponentBuilder for chaining
-
obfuscated
public ComponentBuilder obfuscated(boolean obfuscated)
Sets whether the current part is obfuscated.- Parameters:
obfuscated- whether this part is obfuscated- Returns:
- this ComponentBuilder for chaining
-
insertion
public ComponentBuilder insertion(String insertion)
Sets the insertion text for the current part.- Parameters:
insertion- the insertion text- Returns:
- this ComponentBuilder for chaining
-
event
public ComponentBuilder event(ClickEvent clickEvent)
Sets the click event for the current part.- Parameters:
clickEvent- the click event- Returns:
- this ComponentBuilder for chaining
-
event
public ComponentBuilder event(HoverEvent hoverEvent)
Sets the hover event for the current part.- Parameters:
hoverEvent- the hover event- Returns:
- this ComponentBuilder for chaining
-
reset
public ComponentBuilder reset()
Sets the current part back to normal settings. Only text is kept.- Returns:
- this ComponentBuilder for chaining
-
retain
public ComponentBuilder retain(ComponentBuilder.FormatRetention retention)
Retains only the specified formatting. Text is not modified.- Parameters:
retention- the formatting to retain- Returns:
- this ComponentBuilder for chaining
-
create
public BaseComponent[] create()
Returns the components needed to display the message created by this builder.git- Returns:
- the created components
-
getCursor
public int getCursor()
The position for the current part to modify. Modified cursors will automatically reset to the last part after appending new components. Default value at -1 to assert that the builder has no parts.
-
getParts
public List<BaseComponent> getParts()
-
-