PlayerListPlus Wiki

May 30, 2018
PlayerListPlus Wiki
  • Player List Plus
    plugin by BlueObsidian

    Introduction
    PlayerListPlus is a plugin inspired by BungeeTablistPlus. This plugin only works for Spigot servers.
    PlayerListPlus offers features from BungeeTablistPlus (some). Please go to the plugin overview page for
    more information, Click here.

    1.0 How does it works
    When its enabled PlayerListPlus will send 80 fake players to override and hide online players.
    In same time, it also update the fake player list name. When refreshing tablist, the fake player
    get the text from the config based by index.

    1.1 Commands And Functions
    To run the command, simply type "/plist" on your chat box, and then press enter
    You can also use some similar/alias commands: /plp, /plistp, /playerlistplus, /playerl, etc...
    Note:
    [arg] - Optional
    <arg> - Required
    <arg...> - Multi arguments, separated by space
    <arg;arg...> Multi arguments, separated by semicolon
    Here are the command arguments:

    a.) Set
    set argument used to replace manually slot inside tablist with a custom colorable text.
    Required arguments: <slot> <text...>
    Example usage: /plp set 10 This is 10th slot index

    b.) Unset
    Unset argument used to unset the setted slot inside tablist (from set argument) and turn it back to
    the configured tablist slot.
    Required arguments: <slot>
    Example usage: /plp unset 10

    c.) Ping
    Ping argument used to change the slot ping latency manually.
    Required arguments: <slot> <ping>
    Example usage: /plp ping 12 1000
    d.) Unping
    Like Unset argument, this argument used to unset the setted ping (from ping argument)
    Required arguments: <slot>
    Example usage: /plp unping

    e.) Header
    This argument used to change the header manually (static and not animateable)
    Required arguments: <line1;line2...>
    Example usage:
    - /plp header This is header
    - /plp header This is first line;this is second line;this is third line

    f.) Unheader
    This argument used to change the header to the default.
    Example usage: /plp unheader

    g.) Footer
    This argument used to change the footer manually (static and not animateable)
    Required arguments: <line1;line2...>
    Example usage:
    - /plp footer This is header
    - /plp footer This is first line;this is second line;this is third line

    h.) Unfooter
    This argument used to change the footer to the default.
    Example usage: /plp unfooter

    i.) Enable
    This argument used to enable the tablist design and show it to all players
    Example usage: /plp enable

    j.) Disable
    This argument used to disable the tablist design and hide it from all players
    Example usage: /plp disable

    k.) Reload
    This argument used to reload the plugin configuration
    Example usage: /plp reload

    1.2 File Configuration
    This plugin uses YamlConfiguration (.yml) to get customized data.

    a.) How to make put custom text on your tablist
    Code (Text):
    #This is how to put custom text on your tablist
    global-tablist:
    - "This is first slot"
    - "This is second slot"
    - "Hi $player"
    b.) How to set slot ping on your tablist using Slot Option
    Code (Text):
    global-tablist:
    - "@PING=<YOUR PING HERE>;This is the text!"
    #Replace "<YOUR PING HERE> with the ping latency.
    # must be a number! or it wont work properly
    c.) How to use other Slot Option
    - Viewing Permission
    only players that has requested permission able to see this slot
    Code (Text):
    global-tablist:
    - "@PERMISSION=server.player.awesome;You are awesome"
    - Alternative Text
    shows alternative text instead of empty slot when the condition is not possible.
    like player doesnt have requested permission (from Viewing Permission option)
    Code (Text):
    global-tablist:
    - "@ALT=I hate you;I love you"
    To use it with Viewing permission, check "How to combine Slot Option"
    - Skin Option
    Shows skin tab head on your tablist
    Code (Text):
    global-tablist:
    - "@SKIN=$name;&ePlayer: &7$name"
    d.) How to combine Slot Option
    You can also combine slot option, by putting semicolon (";") every you put a slot option.
    Note: The text must be after the slot option!
    Code (Text):
    global-tablist:
    - "@PING=500;@SKIN=BlueObsidian;BlueObsidian is awesome"
    another example with Viewing permission and Alternative option
    Code (Text):
    global-tablist:

    - "@PING=1000;@PERM=server.admin;@ALT=You are not admin;You are admin!"
    e.) How to use Per World Tablist

    Per World Tablist used to separate tablist design for each world you have configured.
    Code (Text):
    per-world-tablist:
        Bedwars:
    # This means, the tablist design on Bedwars will refreshed from this settings
            tablist:
            - "You are on Bedwars world!"
        BedwarsLobby:
    # This means, the header design on BedwarsLobby will refreshed from this settings
            header:
            - "Welcome $player to bedwars lobby"
        BedwarsAFK:
    # This means, the footer design on BedwarsAFK will refreshed from this settings
            footer:
            - "You are currently AFK"
        HUB:
    # Or you can also use this, to change tablist, header, and footer design!
            tablist:
            - "You are awesome"
            header:
            - "Welcome to HUB dude!"
            footer:
            - "Dont forget to vote the server /vote"
    f.) How to use Slot Items
    Slot Items allows you to put multiple lines with abstract size to the tablist.
    slot-items:
    <any name>:
    format: "the format"
    type: THE_TYPE

    How to use it?
    Add this item to your global tablist/per world tablist
    - "<THE SLOT ITEM NAME NOT THE SLOT ITEM TYPE>"
    - "@PING=1000;<THE SLOT ITEM NAME WITH CUSTOM PING>"


    Types:
    1. PLAYER_LIST
    Useable placeholders:
    - $player - get the player name
    - $ping - get the player ping
    - $displayname - get the player displayname (a.k.a nick or realname)
    - $listname - get the player default playerlistname
    - $group - get the player group permission (requires Vault)
    - $prefix - get the player chat prefix (requires Vault)
    - $suffix - get the player chat suffix (requires Vault)
    Additional Fields:
    "hidevanished", Hide all hidden players on tablist. Input: true | false
    "permission", Must-have permission to be on the list. Input: Text
    "perworld", Shows only player in same world. Input: true | false
    "world", Shows all players in this world (requires "perworld" to be true), optional! Default: Player's World. Input: true | false
    "groups", Group the world and shows all player inside the world group (requires "perworld" to be true), optional! Default: empty. Input: Group of worlds
    "ping", Set the slot ping latency to the player's ping. Optional. Default: true, Input: boolean <true|false>


    2. WORLD_LIST
    Useable placeholders:
    - $name - get the world name
    - $wonline - size of player online in this world
    Additional Fields:
    "world", Specify what world to be visible on the tablist, optional! Default: All worlds. Input: List of Worlds


    3. WORLD_GROUP_LIST
    Useable placeholders:
    - $name - get the world name
    - $wonline - size of player online in this world
    Additional Fields:
    "groups", Specify and group what worlds to be visible on the tablist, optional! Default: empty. Input: List of Worlds


    Global Placeholders:
    - $player - get the player name
    - $ping - get the player ping
    - $displayname - get the player displayname (a.k.a nick or realname)
    - $listname - get the player default playerlistname
    - $group - get the player group permission (requires Vault)
    - $prefix - get the player chat prefix (requires Vault)
    - $suffix - get the player chat suffix (requires Vault)
    - $ver - get the server version
    - $tps - get the server tps
    - $online - total online players
    - $max - max online players
    - $world - get the player world name
    - And all placeholders from PlaceholderAPI (requires PlaceholderAPI)

    Example of config:
    Code (Text):
    slot-items:
    #   This slot items will shows all players
        PLAYERS:
            format: "$displayname &7$ping"
            type: PLAYER_LIST
            hidevanished: true
            ping: true
    #   This slot items will shows only player that has the permission
        STAFFS:
            format: "&a$group &f$player"
            type: PLAYER_LIST
            hidevanished: true
            permission: playerlistplus.staff
            ping: true
    #   This slot items will shows all "loaded" world listed below, remove world field to put all world
        WORLDS:
            format: "$name &7- &b$wonline"
            type: WORLD_LIST
            worlds:
            - world
            - world_nether
            - world_the_end
            - Bedwars
    #   This slot items will shows group name of worlds, the player size is added from each world
        WORLD_GROUPS:
            format: "$name &7- &b$wonline"
            type: WORLD_GROUP_LIST
            groups:
                Lobby:
                - world
                - world_nether
                - world_the_end
                Bedwars:
                - BedwarsLobby
                - Bedwars
                - Bedwars1
    #   This slot items will shows player that online in a world
        WORLD_PLAYERS:
            format: "$displayname &7$ping"
            type: PLAYER_LIST
            hidevanished: true
            perworld: true
            #Add another player from another world based on this group category
            #optional! You can remove this
            groups:
              worldgroup1:
              - world
              - world_nether
              - world_the_end
              worldgroup2:
              - BedwarsLobby
              - Bedwars
              - Bedwars1
            #world: Bedwars . Add this to specify the world , if not the world will setted to the Player's world
            ping: true
    g.) How to animate Header And Footer
    You can animate the Header and footer!
    Example config:
    Code (Text):
    header-anim:
    - |-
      Unknown Server Network
      &ePlay Now
    - |-
      &bUnknown Server Network
      &6P&elay Now
    - |-
      Unknown Server Network
      &eP&6l&eay Now
    - |-
      &bUnknown Server Network
      &ePl&6a&ey Now
    - |-
      Unknown Server Network
      &ePla&6y&e Now
    - |-
      &bUnknown Server Network
      &6Play Now
    footer-anim:
    - "&dDonate to the server! www.unknownserver.com/shop"
    h.) How to change the tablist refresh ticks
    Change refresh ticks to change how often the tablist will refreshing.
    This allows you to change the header and footer refresh ticks
    Code (Text):
    anim-refresh-ticks: 10
    This allows you to change the tablist items refresh ticks
    Code (Text):
    slot-refresh-ticks: 20
    Note:
    20 ticks = 1 seconds
    10 ticks = 0.5 seconds
    200 ticks = 10 seconds

    1.3 Plugin API
    This plugin serve a simple-awesome API for plugin developers

    Basic API
    Code (Text):
            PlayerListPlugin plp = PlayerListPlugin.getInstance();
            PlayerList tablist = plp.getTablist();
            tablist.footerLines.clear();
            tablist.footerLines.addAll(Arrays.asList("this is awesome dude","and this is multiline!","&aAlso with colors!"));
            tablist.updateSlot(0, new PlayerListData("First Slot, has 100 ping, and support 40 chars long",100));
            tablist.updateSlot(1, new PlayerListData("2nd Slot, has 32 ping by default, also support 40 chars long"));
            PlayerListItem item = tablist.getSlot(2);
            item.updateDisplayName("Update DisplayName only for BlueObsidian", Bukkit.getPlayerExact("BlueObsidian"));
            item.updatePing(1000, Bukkit.getPlayerExact("BlueObsidian")); // update ping only for BlueObsidian
            item.remove(Bukkit.getPlayerExact("BlueObsidian")); // remove this slot from BlueObsidian
            item.add(Bukkit.getPlayerExact("BlueObsidian")); // add this slot only for BlueObsidian
     
            item.updateDisplayName("its deprecated, but its still okay!"); // update displayname to all players, no longer used in official plugin
            item.updatePing(0); //update ping to all players, no longer used in official plugin
            item.remove(); // remove from all players
            item.add(); // add to all players
            item.updateSkin("BlueObsidian"); //update skin and send it to all players
            item.updateSkin("BlueObsidian",Bukkit.getPlayerExact("BlueObsidian"); //update skin and send it to BlueObsidian
    1.4 Fake Players
    This feature only for v1.17 or later.
    Use command "/fp" to show list of fake players command.




    Theres a lot things you can do with this plugin's API.
    coming soon, for more examples.
  • Loading...
  • Loading...