Skip to content

Components

Florian Stober edited this page Sep 12, 2016 · 15 revisions

The following components are available:

  1. Basic Component

    {text: "...", icon: "image.png", ping: 0}

    The basic component represents the content of one slot in the tab list. The icon option can be set to either a player name, a player uuid or the name of an image file located in the BungeeTabListPlus/heads folder.

    The basic component also has an option for text alignment:

    {text: "Centered text", icon: "image.png", ping: 0, alignment: CENTER}

    Or to do right bound text:

    {text: "At the right", icon: "image.png", ping: 0, alignment: RIGHT}
  2. Animated Component

    !animated
    components: <List of Compopnents>
    interval: <Number>

    Example:

    !animated
    components:
      - {text: "&7Hello &a${player name}", icon: "${player skin}", ping: 0}
      - {text: "&7Hello &b${player name}", icon: "${player skin}", ping: 0}
      - {text: "&7Hello &c${player name}", icon: "${player skin}", ping: 0}
      - {text: "&7Hello &d${player name}", icon: "${player skin}", ping: 0}
    interval: 0.4

    This component makes it possible to create animated slots.

    Option Description
    components These components will be cycled through.
    interval Interval in seconds at which to switch the active Component.
  3. Conditional Component

    !conditional
    condition: <Expression>
    true: <Replacement if the condition evaluates to true>
    false: <Replacement if the condition evaluates to false>

    Example:

    !conditional
    condition: |-
      ${server:survival online} == true
    true: {text: "&bSurvival: &aONLINE", icon: "colors/green.png", ping: 0}
    false: {text: "&bSurvival: &cOFFLINE", icon: "colors/red.png", ping: 0}

    This component can dynamically change the content of the tab list. The example shows how this could replace the {onlineState} variable.

    Option Description
    condition The expression to be evaluated.
    true Replacement if the condition evaluates to true.
    false Replacement if the condition evaluates to false.

    Additional info: Expression Syntax

  4. Players Component

    !players
    playerSet: <String>
    playerOrder: <String>
    playerComponent: <Component or list of components>
    morePlayersComponent: <Component or list of components>
    minSize: <Number>
    maxSize: <Number>

    Example:

    !players
    playerSet: global
    playerOrder: "vaultGroupInfo,alphabetically"
    playerComponent: {text: "${player name}", icon: "${player skin}", ping: "${player ping}"}
    morePlayersComponent: {text: "... and ${other_count} others", icon: "default/players.png", ping: 0}
    minSize: 0
    maxSize: 6

    This component provides a simple way of adding players to the tab list.

    Option Description
    playerSet Selects which players will be added to the tab list.
    playerOrder Determines the order of the players in the tab list. More info
    playerComponent Determines how a player will be presented in the tab list. Usually you will want to set this to {text: "${player name}", icon: "${player skin}", ping: "${player ping}"}, eventually adding a prefix. This can be set to a list of basic components to use more than one slot per player.
    morePlayersComponent This will be shown if there are more players than there is space in the tab list (or more players than max-size)
    minSize Optional: Minimum slots this component should use
    maxSize Optional: Maximum slots this component should use
  5. Players by Server Component

    !players_by_server
    playerSet: <String>
    playerOrder: <String>
    serverHeader: <List of Components>
    includeEmptyServers: <Boolean>
    playerComponent: <Component or list of components>
    morePlayersComponent: <Component or list of components>
    minSizePerServer: <Number>
    maxSizePerServer: <Number>
    minSize: <Number>
    maxSize: <Number>

    Example:

    !players_by_server
    playerSet: global
    playerOrder: "vaultGroupInfo,alphabetically"
    serverHeader:
    - {text: "&e&n${server}&f&o (${server_player_count}):", icon: "colors/yellow.png", ping: 0}
    includeEmptyServers: false
    playerComponent: {text: "${player name}", icon: "${player skin}", ping: "${player ping}"}
    morePlayersComponent: {text: "&7... and &e${other_count} &7others", icon: "colors/gray.png", ping: 0}
    minSizePerServer: 3
    maxSizePerServer: 18
    minSize: 6
    maxSize: 48

    This component adds players to the tab list grouping them by server as seen in the default config.

    Option Description
    playerSet Selects which players will be added to the tab list.
    playerOrder Determines the order of the players in the tab list. More info
    serverHeader This component groups players by the server they are connected to. The server header will appear once for each server above the players playing on that server.
    includeEmptyServers Whether empty servers will show up too.
    playerComponent Determines how a player will be presented in the tab list. Usually you will want to set this to {text: "${player name}", icon: "${player skin}", ping: "${player ping}"}, eventually adding a prefix. This can be set to a list of basic components to use more than one slot per player.
    morePlayersComponent This will be shown if there are more players than there is space in the tab list (or more players than max-size)
    minSizePerServer Optional: Minimum slots to use for a single server
    maxSizePerServer Optional: Maximum slots to use for a single server
    minSize Optional: Minimum slots this component should use
    maxSize Optional: Maximum slots this component should use
  6. Table

    !table
    columns:
    <Column number(s)>: <List of Components>

    Example:

    !table
    columns:
      0-1:
        - {text: "Survival"}
        - {text: ""}
        - !players
          playerSet: survival
          playerComponent: {text: "${player name}", icon: "${player skin}", ping: "${player ping}"}
          morePlayersComponent: {text: "... and ${other_count} others", skin: "default/players.png", ping: 0}
      2:
        - {text: "Stats:"}
        - {text: "Playtime:"}
        - {text: "  Total: ${viewer bungeeonlinetime}"} # just an example, these placeholders don't exist (yet)
        - {text: "  Session: ${viewer onlinetime}"}
        - {text: ""}
        - {text: "Balance: ${viewer vault_balance}"}
        - {text: ""}
        - {text: "Faction: ${viewer faction}"}

    Allows setting the content for the columns independently. This makes layouts possible where one column is used per server.

  7. Spacer

    !spacer {}

    Example:

    size: 20
    components:
    - {text: "Top-most slot", icon: "colors/gold.png", ping: 0}
    - !spacer {}
    - {text: "Slot at the very bottom", icon: "colors/gold.png", ping: 0}