Managing your own Tablist

Introduction

You will manage your own Tablist, overriding the original PlayerListDeluxe's tablist.

Disabling PlayerListDeluxe's Tablist

public class ExampleListener implements Listener {

    @EventHandler
    public void event(TablistShowEvent e) {
        if (e.getTablist().getPlugin() == PlayerListPlugin.getPlugin()) {
            e.setCancelled(true);
            // this will cancel tablist show event for PlayerListDeluxe plugin
        }
    }
    
}

Showing Tablist to Player

public class Example extends JavaPlugin {

    public void showToPlayer(Player p) {
        if (getTablist(p) != null) return;
        Tablist tablist = new Tablist(p, this);
        // start the tablist task
        tablist.start();
        // store them into Player's metadata
        Metadata.setMetadata(p, "MyTablist", tablist);
    }
    
    public Tablist getTablist(Player p) {
        // get from stored data
        return Metadata.getMetadata(p, "MyTablist");
    }
    
}

Set the Tablist Layout


    public void prepareLayout(Tablist tablist) {
        TablistLayout layout = new TablistLayout(/* size */ 40);
        // create new line
        LineData line = new LineData.Builder().text("Line 1");
        layout.setLine(0, line);
        tablist.setLayout(layout);
    }
    
    
    public void prepareHeaderFooter(Tablist tablist) {
        DisplayData header = new DisplayData("This is header");
        DisplayData footer = new DisplayData("This is footer");
        TablistDisplay display = new TablistDisplay(
            new DisplayData[] { header },
            new DisplayData[] { footer }
        );
        tablist.setDisplay(display);
    }
    
    public void manuallySetHeaderFooter(Tablist tablist) {
        tablist.setHeader("This is header");
        tablist.setFooter("This is footer");
        // OR
        tablist.setHeaderFooter("This is header", "This is footer");
    }
    

Updating the Tablist Line


    public void updateTablist(Tablist tablist) {
        TablistLine line = tablist.getLine(0);
        // this will update your tablist automatically
        line.setText("This is the first line");
    }
    

Last updated