Struct valence_text::Text

source ·
pub struct Text(/* private fields */);
Expand description

Represents formatted text in Minecraft’s JSON text format.

Text is used in various places such as chat, window titles, disconnect messages, written books, signs, and more.

For more information, see the relevant Minecraft Wiki article.

§Examples

With IntoText in scope, you can write the following:

use valence_text::{Color, IntoText, Text};

let txt = "The text is ".into_text()
    + "Red".color(Color::RED)
    + ", "
    + "Green".color(Color::GREEN)
    + ", and also "
    + "Blue".color(Color::BLUE)
    + "! And maybe even "
    + "Italic".italic()
    + ".";

assert_eq!(
    txt.to_string(),
    r#"{"text":"The text is ","extra":[{"text":"Red","color":"red"},{"text":", "},{"text":"Green","color":"green"},{"text":", and also "},{"text":"Blue","color":"blue"},{"text":"! And maybe even "},{"text":"Italic","italic":true},{"text":"."}]}"#
);

Implementations§

source§

impl Text

source

pub fn text<P>(plain: P) -> Self
where P: Into<Cow<'static, str>>,

Constructs a new plain text object.

source

pub fn translate<K, W>(key: K, with: W) -> Self
where K: Into<Cow<'static, str>>, W: Into<Vec<Text>>,

Create translated text based on the given translation key, with extra text components to be inserted into the slots of the translation text.

source

pub fn score<N, O>( name: N, objective: O, value: Option<Cow<'static, str>>, ) -> Self
where N: Into<Cow<'static, str>>, O: Into<Cow<'static, str>>,

Create a score from the scoreboard with an optional custom value.

source

pub fn selector<S>(selector: S, separator: Option<Text>) -> Self
where S: Into<Cow<'static, str>>,

Creates a text component for selecting entity names with an optional custom separator.

source

pub fn keybind<K>(keybind: K) -> Self
where K: Into<Cow<'static, str>>,

Creates a text component for a keybind. The keybind should be a valid keybind identifier.

source

pub fn block_nbt<B, N>( block: B, nbt: N, interpret: Option<bool>, separator: Option<Text>, ) -> Self
where B: Into<Cow<'static, str>>, N: Into<Cow<'static, str>>,

Creates a text component for a block NBT tag.

source

pub fn entity_nbt<E, N>( entity: E, nbt: N, interpret: Option<bool>, separator: Option<Text>, ) -> Self
where E: Into<Cow<'static, str>>, N: Into<Cow<'static, str>>,

Creates a text component for an entity NBT tag.

source

pub fn storage_nbt<S, N>( storage: S, nbt: N, interpret: Option<bool>, separator: Option<Text>, ) -> Self
where S: Into<Ident<Cow<'static, str>>>, N: Into<Cow<'static, str>>,

Creates a text component for a command storage NBT tag.

source

pub fn is_empty(&self) -> bool

Returns true if the text contains no characters. Returns false otherwise.

source

pub fn to_legacy_lossy(&self) -> String

Converts the Text object to a plain string with the legacy formatting (§ and format codes)

Removes everything that can’t be represented with a § and a modifier. Any colors not on the the legacy color list will be replaced with their closest equivalent.

Trait Implementations§

source§

impl<T: IntoText<'static>> Add<T> for Text

source§

type Output = Text

The resulting type after applying the + operator.
source§

fn add(self, rhs: T) -> Self::Output

Performs the + operation. Read more
source§

impl<T: IntoText<'static>> AddAssign<T> for Text

source§

fn add_assign(&mut self, rhs: T)

Performs the += operation. Read more
source§

impl Clone for Text

source§

fn clone(&self) -> Text

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Text

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Text

source§

fn default() -> Text

Returns the “default value” for a type. Read more
source§

impl Deref for Text

source§

type Target = TextInner

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl DerefMut for Text

source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
source§

impl<'de> Deserialize<'de> for Text

source§

fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Text

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a, 'b> From<&'a Cow<'b, Text>> for Text

source§

fn from(value: &'a Cow<'b, Text>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<&'a Cow<'static, str>> for Text

source§

fn from(value: &'a Cow<'static, str>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<&'a String> for Text

source§

fn from(value: &'a String) -> Self

Converts to this type from the input type.
source§

impl<'a> From<&'a Text> for Cow<'a, Text>

source§

fn from(value: &'a Text) -> Self

Converts to this type from the input type.
source§

impl<'a> From<&'a Text> for Text

source§

fn from(value: &'a Text) -> Self

Converts to this type from the input type.
source§

impl From<&'static str> for Text

source§

fn from(value: &'static str) -> Self

Converts to this type from the input type.
source§

impl<'a> From<Cow<'a, Text>> for Text

source§

fn from(value: Cow<'a, Text>) -> Self

Converts to this type from the input type.
source§

impl From<Cow<'static, str>> for Text

source§

fn from(value: Cow<'static, str>) -> Self

Converts to this type from the input type.
source§

impl From<String> for Text

source§

fn from(value: String) -> Self

Converts to this type from the input type.
source§

impl<'a> From<Text> for Cow<'a, Text>

source§

fn from(value: Text) -> Self

Converts to this type from the input type.
source§

impl From<Text> for String

source§

fn from(value: Text) -> Self

Converts to this type from the input type.
source§

impl From<Text> for Value

source§

fn from(value: Text) -> Self

Converts to this type from the input type.
source§

impl FromStr for Text

source§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl<'a> IntoText<'a> for &'a Text

source§

fn into_cow_text(self) -> Cow<'a, Text>

Converts to a Text object, either owned or borrowed.
source§

fn into_text(self) -> Text

Converts to an owned Text object.
source§

fn color(self, color: impl Into<Color>) -> Text

Sets the color of the text.
source§

fn clear_color(self) -> Text

Clears the color of the text. Color of parent Text object will be used.
source§

fn font(self, font: Font) -> Text

Sets the font of the text.
source§

fn clear_font(self) -> Text

Clears the font of the text. Font of parent Text object will be used.
source§

fn bold(self) -> Text

Makes the text bold.
source§

fn not_bold(self) -> Text

Makes the text not bold.
source§

fn clear_bold(self) -> Text

Clears the bold property of the text. Property of the parent Text object will be used.
source§

fn italic(self) -> Text

Makes the text italic.
source§

fn not_italic(self) -> Text

Makes the text not italic.
source§

fn clear_italic(self) -> Text

Clears the italic property of the text. Property of the parent Text object will be used.
source§

fn underlined(self) -> Text

Makes the text underlined.
source§

fn not_underlined(self) -> Text

Makes the text not underlined.
source§

fn clear_underlined(self) -> Text

Clears the underlined property of the text. Property of the parent Text object will be used.
source§

fn strikethrough(self) -> Text

Adds a strikethrough effect to the text.
source§

fn not_strikethrough(self) -> Text

Removes the strikethrough effect from the text.
source§

fn clear_strikethrough(self) -> Text

Clears the strikethrough property of the text. Property of the parent Text object will be used.
source§

fn obfuscated(self) -> Text

Makes the text obfuscated.
source§

fn not_obfuscated(self) -> Text

Makes the text not obfuscated.
source§

fn clear_obfuscated(self) -> Text

Clears the obfuscated property of the text. Property of the parent Text object will be used.
source§

fn insertion(self, insertion: impl Into<Cow<'static, str>>) -> Text

Adds an insertion property to the text. When shift-clicked, the given text will be inserted into chat box for the client.
source§

fn clear_insertion(self) -> Text

Clears the insertion property of the text. Property of the parent Text object will be used.
source§

fn on_click_open_url(self, url: impl Into<Cow<'static, str>>) -> Text

On click, opens the given URL. Has to be http or https protocol.
source§

fn on_click_run_command(self, command: impl Into<Cow<'static, str>>) -> Text

On click, sends a command. Doesn’t actually have to be a command, can be a simple chat message.
source§

fn on_click_suggest_command(self, command: impl Into<Cow<'static, str>>) -> Text

On click, copies the given text to the chat box.
source§

fn on_click_change_page(self, page: impl Into<i32>) -> Text

On click, turns the page of the opened book to the given number. Indexing starts at 1.
source§

fn on_click_copy_to_clipboard(self, text: impl Into<Cow<'static, str>>) -> Text

On click, copies the given text to clipboard.
source§

fn clear_click_event(self) -> Text

Clears the click_event property of the text. Property of the parent Text object will be used.
source§

fn on_hover_show_text(self, text: impl IntoText<'static>) -> Text

On mouse hover, shows the given text in a tooltip.
source§

fn clear_hover_event(self) -> Text

Clears the hover_event property of the text. Property of the parent Text object will be used.
source§

fn add_child(self, text: impl IntoText<'static>) -> Text

Adds a child Text object.
source§

impl<'a> IntoText<'a> for Text

source§

fn into_cow_text(self) -> Cow<'a, Text>

Converts to a Text object, either owned or borrowed.
source§

fn into_text(self) -> Text

Converts to an owned Text object.
source§

fn color(self, color: impl Into<Color>) -> Text

Sets the color of the text.
source§

fn clear_color(self) -> Text

Clears the color of the text. Color of parent Text object will be used.
source§

fn font(self, font: Font) -> Text

Sets the font of the text.
source§

fn clear_font(self) -> Text

Clears the font of the text. Font of parent Text object will be used.
source§

fn bold(self) -> Text

Makes the text bold.
source§

fn not_bold(self) -> Text

Makes the text not bold.
source§

fn clear_bold(self) -> Text

Clears the bold property of the text. Property of the parent Text object will be used.
source§

fn italic(self) -> Text

Makes the text italic.
source§

fn not_italic(self) -> Text

Makes the text not italic.
source§

fn clear_italic(self) -> Text

Clears the italic property of the text. Property of the parent Text object will be used.
source§

fn underlined(self) -> Text

Makes the text underlined.
source§

fn not_underlined(self) -> Text

Makes the text not underlined.
source§

fn clear_underlined(self) -> Text

Clears the underlined property of the text. Property of the parent Text object will be used.
source§

fn strikethrough(self) -> Text

Adds a strikethrough effect to the text.
source§

fn not_strikethrough(self) -> Text

Removes the strikethrough effect from the text.
source§

fn clear_strikethrough(self) -> Text

Clears the strikethrough property of the text. Property of the parent Text object will be used.
source§

fn obfuscated(self) -> Text

Makes the text obfuscated.
source§

fn not_obfuscated(self) -> Text

Makes the text not obfuscated.
source§

fn clear_obfuscated(self) -> Text

Clears the obfuscated property of the text. Property of the parent Text object will be used.
source§

fn insertion(self, insertion: impl Into<Cow<'static, str>>) -> Text

Adds an insertion property to the text. When shift-clicked, the given text will be inserted into chat box for the client.
source§

fn clear_insertion(self) -> Text

Clears the insertion property of the text. Property of the parent Text object will be used.
source§

fn on_click_open_url(self, url: impl Into<Cow<'static, str>>) -> Text

On click, opens the given URL. Has to be http or https protocol.
source§

fn on_click_run_command(self, command: impl Into<Cow<'static, str>>) -> Text

On click, sends a command. Doesn’t actually have to be a command, can be a simple chat message.
source§

fn on_click_suggest_command(self, command: impl Into<Cow<'static, str>>) -> Text

On click, copies the given text to the chat box.
source§

fn on_click_change_page(self, page: impl Into<i32>) -> Text

On click, turns the page of the opened book to the given number. Indexing starts at 1.
source§

fn on_click_copy_to_clipboard(self, text: impl Into<Cow<'static, str>>) -> Text

On click, copies the given text to clipboard.
source§

fn clear_click_event(self) -> Text

Clears the click_event property of the text. Property of the parent Text object will be used.
source§

fn on_hover_show_text(self, text: impl IntoText<'static>) -> Text

On mouse hover, shows the given text in a tooltip.
source§

fn clear_hover_event(self) -> Text

Clears the hover_event property of the text. Property of the parent Text object will be used.
source§

fn add_child(self, text: impl IntoText<'static>) -> Text

Adds a child Text object.
source§

impl PartialEq for Text

source§

fn eq(&self, other: &Text) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Text

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl StructuralPartialEq for Text

Auto Trait Implementations§

§

impl Freeze for Text

§

impl RefUnwindSafe for Text

§

impl Send for Text

§

impl Sync for Text

§

impl Unpin for Text

§

impl UnwindSafe for Text

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,