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.
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);
}
}
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.
# ProtocolTab basic configuration.
# Default ping on board.
default-ping: '0'
- ProtocolLib for 1.8+ versions;
- Java 8+