protected override void EndTextStyles(TextStyles styles) { if (styles.HasFlag(TextStyles.Teletype)) { RawText("</code>"); } if (styles.HasFlag(TextStyles.Strong)) { RawText("</strong>"); } if (styles.HasFlag(TextStyles.Emphasize)) { RawText("</em>"); } }
protected override void EndTextStyles(TextStyles styles) { if (styles.HasFlag(TextStyles.Teletype)) { RawText("`"); } if (styles.HasFlag(TextStyles.Emphasize)) { RawText("_"); } if (styles.HasFlag(TextStyles.Strong)) { RawText("**"); } }
public XElement GetElement() { var ns = new NamespaceDirectory(); var w = ns.NamespaceMain; var font = new XElement(w.GetName("font")); if (_textStyle.HasFlag(TextStyles.Bold)) { font.Add(new XElement(w.GetName("b"))); } if (_textStyle.HasFlag(TextStyles.Italic)) { font.Add(new XElement(w.GetName("i"))); } return(font); }
private static void WriteComponent( Utf8JsonWriter writer, TextComponent component, TextColor currentColor = TextColor.White, TextStyles currentStyle = TextStyles.None ) { writer.WriteStartObject(); switch (component) { case TextComponentString _: writer.WriteString("text", component.Value); break; case TextComponentTranslate componentTranslate: { writer.WriteString("translate", component.Value); var parameters = componentTranslate.Parameters; if (parameters.Length > 0) { writer.WritePropertyName("with"); writer.WriteStartArray(); foreach (var parameter in parameters) { writer.WriteStringValue(parameter); } writer.WriteEndArray(); } break; } case TextComponentKeybind _: writer.WriteString("keybind", component.Value); break; } if (component.HasColor) { var color = component.Color; if (color != currentColor) { var colorName = color.GetColorName(); writer.WriteString("color", colorName); } } if (component.HasStyle) { var styles = TextComponentHelper.Styles; foreach (var style in styles) { var hasStyle = component.Style.HasFlag(style); var parentHasStyle = currentStyle.HasFlag(style); if (hasStyle == parentHasStyle) { continue; } var styleName = style.GetStyleName(); writer.WriteBoolean(styleName, hasStyle); } } var children = component.Children; if (children.Count > 0) { writer.WritePropertyName("extra"); writer.WriteStartArray(); foreach (var child in children) { WriteComponent(writer, child, component.Color, component.Style); } writer.WriteEndArray(); } writer.WriteEndObject(); }
public static void WriteComponent( JsonWriter writer, TextComponent component, TextColor currentColor = TextColor.White, TextStyles currentStyle = TextStyles.None ) { writer.WriteStartObject(); switch (component) { case TextComponentString _: writer.WritePropertyName("text"); writer.WriteValue(component.Value); break; case TextComponentTranslate componentTranslate: { writer.WritePropertyName("translate"); writer.WriteValue(component.Value); var parameters = componentTranslate.Parameters; if (parameters.Length > 0) { writer.WritePropertyName("with"); writer.WriteStartArray(); foreach (var parameter in parameters) { writer.WriteValue(parameter); } writer.WriteEndArray(); } break; } case TextComponentKeybind _: writer.WritePropertyName("keybind"); writer.WriteValue(component.Value); break; } if (component.HasColor) { var color = component.Color; if (color != currentColor) { writer.WritePropertyName("color"); writer.WriteValue(color.GetName()); } } if (component.HasStyle) { for (var i = 0; i < Styles.Length; i++) { var style = Styles[i]; var hasStyle = component.Style.HasFlag(style); var parentHasStyle = currentStyle.HasFlag(style); if (hasStyle == parentHasStyle) { continue; } writer.WritePropertyName(StyleNames[i]); writer.WriteValue(hasStyle); } } var children = component.Children; if (children.Count > 0) { writer.WritePropertyName("extra"); writer.WriteStartArray(); foreach (var child in children) { WriteComponent(writer, child, component.Color, component.Style); } writer.WriteEndArray(); } writer.WriteEndObject(); }