Exemplo n.º 1
0
 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>");
     }
 }
Exemplo n.º 2
0
 protected override void EndTextStyles(TextStyles styles)
 {
     if (styles.HasFlag(TextStyles.Teletype))
     {
         RawText("`");
     }
     if (styles.HasFlag(TextStyles.Emphasize))
     {
         RawText("_");
     }
     if (styles.HasFlag(TextStyles.Strong))
     {
         RawText("**");
     }
 }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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();
        }