Skip to content

Conceptual overview of chat components #663

@kezz

Description

@kezz

It seems like there is a big gap in understanding with a lot of users new to adventure, who have trouble with the concepts of chat components, having only been familiar with the legacy section-symbol system. It would be helpful to explain what components are and some of their key characteristics, ideally with some graphics. Here's a rough outline of what I'm imagining:

  1. What is a component?
    1. structured representation: the text form represents the data structure, rather than being marked-up text
    2. different types of content
    3. tree structure: see style
    4. appending: children in the tree (visual here?)
  2. Where did components come from?/Why do we want to use components?
    1. history: 1.7.2 introduction, 1.13 most of the server converted to use them, 1.16 client text renderer converted
    2. originally: a way to be more explicit about links and other rich styling
    3. references:
    4. examples of quirks/limitations of legacy text, and how chat components resolve those issues
  3. Style in components
    1. tree style
    • [visual] show a component tree with styles, show how they're inherited, and piecewise overridden
    1. attributes can exist together, no 'magical' reseting like legacy strings had
    2. more attributes can be added -- see font or RGB colour
  4. Examples
    1. Some side-by-side tables of json, adventure representation, and in-game visuals?
  5. History of components (can it be merged with 2?)
    1. version-by-version breakdown of what has been added/changed

Migrated from KyoriPowered/adventure-docs#49

Metadata

Metadata

Assignees

No one assigned

    Labels

    dev guideThis issue or PR aims to introduce developer API documentationmeta guideThis issue or PR aims to introduce in-depth ways to work with codeproject: Adventurestatus: acceptedThis issue has been accepted

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions