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
- ProtocolLib for 1.8+ versions;
- Java 8+