Sueta

TinyProtocolAPI

v4.5.1

small library.

·Plugin

TinyProtocolAPI

TabAPI

BetterServerListPingEvent

TabAPI, BarAPI, HoloAPI for MC1.7 ? without addons ? Open src ? Check my first fun with packets (PacketAPI-opensrc "TinyProtocolAPI-PROTOTYPE") - HERE !

TabAPI:

  • void refresh(Class<? extends Plugin> plugin, Player player, Preference priority, SettingAPI<TabModify> modify);
  • void refresh(Class<? extends Plugin> plugin, Player player, SettingAPI<TabModify> modify);
  • void setDefaultPreference(Class<? extends Plugin> plugin, Preference priority);
  • void remove(Class<? extends Plugin> plugin, Player player);
  • boolean hasAPI(Player player);

TabModify:

  • void setMessage(int x, int y, String message);
  • void set(int x, int y, String display, String texture);
  • void set(int x, int y, String display, int ping);
  • void set(int x, int y, String display, String texture, int ping);
  • void setSignal(int x, int y, int signal);
  • void setSignal(int ping);
  • void setTexture(int x, int y, String texture);
  • void setTexture(String texture);
  • void setHeader(List<String> header);
  • void setFooter(List<String> footer);
  • void set(List<String> head, List<String> foot);
  • String getMessage(int x, int y);
  • String getTexture(int x, int y);
  • int getSignal(int x, int y);
  • List<String> getHeader();
  • List<String> getFooter();

TitleAPI:

  • void title(Player player, String title, int start, int stay, int end);
  • void subtitle(Player player, String subtitle, int start, int stay, int end);
  • void subtitle(Player player, String subtitle)
  • void broadcast(Player player, String title, String subtitle, int start, int stay, int end);
  • void hotbar(Player player, String msg);
  • void clear(Player player);

CREATING and LISTENING PACKETS - EXAMPLE

¡ Example ! Warning - The code is only for example.

package com.gmail.zahusek.test;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

import javax.imageio.ImageIO;

import org.apache.commons.lang.StringUtils;
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 org.bukkit.scheduler.BukkitRunnable;

import ru.tehkode.permissions.bukkit.PermissionsEx;

import com.gmail.zahusek.test.listener.BetterServerListPingEvent;
import com.gmail.zahusek.tinyprotocolapi.TinyProtocolAPI;
import com.gmail.zahusek.tinyprotocolapi.api.Preference;
import com.gmail.zahusek.tinyprotocolapi.api.tab.TabAPI;
import com.gmail.zahusek.tinyprotocolapi.api.title.TitleAPI;
import com.gmail.zahusek.tinyprotocolapi.listener.PacketHandler;
import com.gmail.zahusek.tinyprotocolapi.listener.PacketListener;
import com.gmail.zahusek.tinyprotocolapi.listener.PacketPriority;
import com.google.gson.JsonObject;

public class TestTPAPI extends JavaPlugin implements Listener, PacketListener
{
    @Override
    public void onEnable()
    {
        TinyProtocolAPI.registerPackets(this, this);
        TabAPI.setDefaultPreference(TestTPAPI.class, Preference.NORMAL);
        getServer().getPluginManager().registerEvents(this, this);
        new BukkitRunnable() {

            @Override
            public void run() {
                for(Player player : getServer().getOnlinePlayers())
                {
                    if(!TabAPI.hasAPI(player)) continue;
                  TabAPI.refresh(TestTPAPI.class, player, modify ->
                  {
                      modify.setMessage(2, 10, "§a" + getServer().getOnlinePlayers().size() + " §6/§c " + getServer().getMaxPlayers());
                      modify.setMessage(2, 12, "§d" + String.format("%tT", System.currentTimeMillis()));
                      modify.setMessage(2, 14, "§7" + String.format("%tF", System.currentTimeMillis()));

                  });
                }
   
            }
        }.runTaskTimerAsynchronously(this, 0, 10);
    }

    @EventHandler(priority = EventPriority.MONITOR)
    void join (PlayerJoinEvent e)
    {
        Player player = e.getPlayer();
        TabAPI.refresh(TestTPAPI.class, player, modify ->
        {
            modify.setSignal(99999);
            modify.setMessage(3, 0, "§6§l§m           §6§lI#I");
            modify.setMessage(0, 0, "§6§lI#I§6§l§m                   ");

            for(int i = 1; i < 3; i++)
            {
                modify.setMessage(i, 0, "§6§l§m                   ");
                modify.setMessage(i, 19, "§6§l§m                   ");
            }

            for(int i = 1; i < 19; i++)
            {
                modify.setMessage(0, i, "§6§lI#I");
                modify.setMessage(3, i, "              §6§lI#I");
            }

            modify.setMessage(0, 19, "§6§lI#I§6§l§m                   ");
            modify.setMessage(3, 19, "§6§l§m           §6§lI#I");

            modify.setMessage(1, 2, "§a§oProfile: ");
            modify.setMessage(2, 2, "§2" + player.getDisplayName());

            modify.setMessage(1, 4, "§c§oIP: ");
            modify.setMessage(2, 4, "§4" + player.getAddress().getAddress().getHostAddress());

            modify.setMessage(1, 6, "§b§oFirst Played: ");
            modify.setMessage(2, 6, "§3" + String.format("%tF", player.getFirstPlayed()));

            modify.setMessage(1, 8, "§e§oOnline mode: ");
            modify.setMessage(2, 8, getServer().getOnlineMode() == true ? "§aYeep" : "§cNope");

            modify.setMessage(1, 10, "§9§oStatus o/m: ");
            //status

            modify.setMessage(1, 12, "§5§oTime: ");
            //time

            modify.setMessage(1, 14, "§8§oDate: ");
            //date

            modify.setMessage(1, 16, "§1§oGroup: ");
            modify.setMessage(2, 16, "§f" + PermissionsEx.getUser(player).getGroupNames()[0]);


        });
        TitleAPI.broadcast(player, "§aTinyProtocilAPI", "§24.0", 0, 20*5, 0);

        new BukkitRunnable()
        {

            @Override
            public void run() {
              TitleAPI.title(player, "§6Descriprtion:", 0, 20*12, 0);
              TitleAPI.subtitle(player, "§bOptimization");
            }
        }.runTaskLaterAsynchronously(this, 20*3);

        new BukkitRunnable()
        {

            @Override
            public void run() {
                TitleAPI.subtitle(player, "§bNew Methods");
            }
        }.runTaskLaterAsynchronously(this, 20*6);
        new BukkitRunnable()
        {

            @Override
            public void run() {
                TitleAPI.subtitle(player, "§bCorrections");
            }
        }.runTaskLaterAsynchronously(this, 20*9);
        new BukkitRunnable()
        {

            @Override
            public void run() {
                TitleAPI.subtitle(player, "§cDelete addon \"§5BarAPI§c\"");
            }
        }.runTaskLaterAsynchronously(this, 20*12);
    }

    @PacketHandler(priority = PacketPriority.LOWEST)
    void status(BetterServerListPingEvent e) throws MalformedURLException, IOException
    {
        JsonObject deFault = e.getDefaultJson();
        deFault.addProperty(e.motd(), "§6▓TinyProtocolAPI▓" + "\n" + "§9§k###§eVersion §5§n4.1§6§9§k###");
        deFault.addProperty(e.icon(), e.faviconSerializer(
                ImageIO.read(new URL("http://megaicons.net/static/img/icons_sizes/257/1552/64/fc-barcelona-icon.png"))));

        JsonObject sample = e.getSampleJson();
        sample.add(e.hoverList(), e.sampleList(IntStream.range(0, 20).mapToObj((i) -> {
            if (i == 10) return "§9TinyProtocolAPI §e- §dBetterServerListPingEvent";
            else return StringUtils.join(IntStream.range(0, 80).mapToObj((o) -> " ").toArray());
            }).collect(Collectors.toList())));

        JsonObject protocol = e.getProtocolJson();
        protocol.addProperty(e.protocolVersion(), -1);
        int online = sample.get(e.online()).getAsInt(), max = sample.get(e.maxOnline()).getAsInt();
        protocol.addProperty(e.protocolName(), "§eLeftMotD" + StringUtils.join(IntStream.range(0, 72).mapToObj((i) -> " ").toArray()) +
                "§7" + online + "§8/§7" + max);

        e.saveJson();
    }

}

¡ ServerListPingEvent !

Similar projects

Plugin →