Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pl.kopara.kguild.tablist;
- import pl.kopara.kguild.utils.Reflection;
- import java.util.Arrays;
- import java.util.Collection;
- public class TabUtil
- {
- private static Class<?> packetClass;
- private static Reflection.ConstructorInvoker con;
- private static Reflection.FieldAccessor<String> a;
- private static Reflection.FieldAccessor<String> b;
- private static Reflection.FieldAccessor<String> c;
- private static Reflection.FieldAccessor<String> d;
- private static Reflection.FieldAccessor<Collection> e;
- private static Reflection.FieldAccessor<Integer> f;
- private static Reflection.FieldAccessor<Integer> g;
- private static Class<?> packetClassPlayer;
- private static Reflection.ConstructorInvoker conPlayer;
- public static Object createTeamPacket(final String name, final String display, final String prefix, final String suffix, final int flag, final String... members) {
- final Object packet = TabUtil.con.invoke(new Object[0]);
- TabUtil.a.set(packet, (name.length() > 16) ? name.substring(0, 16) : name);
- TabUtil.f.set(packet, flag);
- if (flag == 0 || flag == 2) {
- if (display == null) {
- TabUtil.b.set(packet, "");
- }
- else if (display.length() > 16) {
- TabUtil.b.set(packet, display.substring(0, 16));
- }
- else {
- TabUtil.b.set(packet, display);
- }
- if (prefix == null) {
- TabUtil.c.set(packet, "");
- }
- else if (prefix.length() > 16) {
- TabUtil.c.set(packet, prefix.substring(0, 16));
- }
- else {
- TabUtil.c.set(packet, prefix);
- }
- if (suffix == null) {
- TabUtil.d.set(packet, "");
- }
- else if (suffix.length() > 16) {
- TabUtil.d.set(packet, suffix.substring(0, 16));
- }
- else {
- TabUtil.d.set(packet, suffix);
- }
- TabUtil.g.set(packet, 0);
- if (flag == 0) {
- TabUtil.e.set(packet, Arrays.asList(members));
- }
- }
- return packet;
- }
- public static Object createPlayerPacket(final String name, final boolean visible, final int ping) {
- return TabUtil.conPlayer.invoke(name, visible, ping);
- }
- static {
- TabUtil.packetClass = Reflection.getMinecraftClass("PacketPlayOutScoreboardTeam");
- TabUtil.con = Reflection.getConstructor(TabUtil.packetClass, (Class<?>[])new Class[0]);
- TabUtil.a = Reflection.getField(TabUtil.packetClass, "a", String.class);
- TabUtil.b = Reflection.getField(TabUtil.packetClass, "b", String.class);
- TabUtil.c = Reflection.getField(TabUtil.packetClass, "c", String.class);
- TabUtil.d = Reflection.getField(TabUtil.packetClass, "d", String.class);
- TabUtil.e = (Reflection.FieldAccessor<Collection>)Reflection.getField(TabUtil.packetClass, "e", Collection.class);
- TabUtil.f = Reflection.getField(TabUtil.packetClass, "f", Integer.TYPE);
- TabUtil.g = Reflection.getField(TabUtil.packetClass, "g", Integer.TYPE);
- TabUtil.packetClassPlayer = Reflection.getMinecraftClass("PacketPlayOutPlayerInfo");
- TabUtil.conPlayer = Reflection.getConstructor(TabUtil.packetClassPlayer, String.class, Boolean.TYPE, Integer.TYPE);
- }
- }
Add Comment
Please, Sign In to add comment