Skip to content
This repository has been archived by the owner on Dec 26, 2020. It is now read-only.
/ ProtocolTab Public archive

Small, easy and fast in use api for managing tab list on your Minecraft server.

License

Notifications You must be signed in to change notification settings

kacperduras/ProtocolTab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProtocolTab Build Status

ProtocolTab is a small, easy and fast in use api for managing tab list on your Minecraft server. Each player can see different tab list, and everything is limited to your imagination.

Example

Java

import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
import pl.kacperduras.protocoltab.ProtocolTabAPI;
import pl.kacperduras.protocoltab.manager.ProtocolTab;

import java.text.SimpleDateFormat;
import java.util.Date;

public final class ProtocolTabExample extends JavaPlugin {

    private final ThreadLocal<SimpleDateFormat> dateFormat = ThreadLocal.withInitial(
            () -> new SimpleDateFormat("HH:mm:ss"));

    @Override
    public void onEnable() {
        this.getServer().getPluginManager().registerEvents(new Listener() {

            @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
            public void onJoin(PlayerJoinEvent event) {
                Player player = event.getPlayer();

                for (int i = 0; i < 80; i++) {
                    ProtocolTabAPI.getTablist(player).setSlot(i, ProtocolTab.BLANK_TEXT);
                }

                ProtocolTabAPI.getTablist(player).setHeader("&cmd_5 is love!");
                ProtocolTabAPI.getTablist(player).setHeader("&6md_5 is life!");

                ProtocolTabAPI.getTablist(player).setSlot(0, "First slot.");
                ProtocolTabAPI.getTablist(player).setSlot(1, "&eSecond slot.");

                ProtocolTabAPI.getTablist(player).update();
                runTask(player);
            }

        }, this);
    }

    private void runTask(Player player) {
        this.getServer().getScheduler().runTaskTimerAsynchronously(this, () -> {
          if (player == null || player.isOnline()) {
            // do something
            return;
          }
          
          ProtocolTabAPI.getTablist(player).setSlot(3, "&a" + dateFormat.get().format(
              new Date(System.currentTimeMillis())));
          ProtocolTabAPI.getTablist(player).update();
        }, 20L, 20L);
    }

}

Skript

set %player%'s header to %string%
set %player%'s footer to %string%
set %player%'s slot number %integer% to %string%
update %player%'s tablist

The usage is similar to the Java API.

Configuration

# ProtocolTab basic configuration.

# Default ping on board.
default-ping: '0'

Requirements

Download

Stable releases: here
Development releases: here