Guest User

Untitled

a guest
Jul 3rd, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.42 KB | None | 0 0
  1. package pl.kopara.kguild.tablist;
  2.  
  3.  
  4. import pl.kopara.kguild.utils.Reflection;
  5.  
  6. import java.util.Arrays;
  7. import java.util.Collection;
  8.  
  9. public class TabUtil
  10. {
  11. private static Class<?> packetClass;
  12. private static Reflection.ConstructorInvoker con;
  13. private static Reflection.FieldAccessor<String> a;
  14. private static Reflection.FieldAccessor<String> b;
  15. private static Reflection.FieldAccessor<String> c;
  16. private static Reflection.FieldAccessor<String> d;
  17. private static Reflection.FieldAccessor<Collection> e;
  18. private static Reflection.FieldAccessor<Integer> f;
  19. private static Reflection.FieldAccessor<Integer> g;
  20. private static Class<?> packetClassPlayer;
  21. private static Reflection.ConstructorInvoker conPlayer;
  22.  
  23. public static Object createTeamPacket(final String name, final String display, final String prefix, final String suffix, final int flag, final String... members) {
  24. final Object packet = TabUtil.con.invoke(new Object[0]);
  25. TabUtil.a.set(packet, (name.length() > 16) ? name.substring(0, 16) : name);
  26. TabUtil.f.set(packet, flag);
  27. if (flag == 0 || flag == 2) {
  28. if (display == null) {
  29. TabUtil.b.set(packet, "");
  30. }
  31. else if (display.length() > 16) {
  32. TabUtil.b.set(packet, display.substring(0, 16));
  33. }
  34. else {
  35. TabUtil.b.set(packet, display);
  36. }
  37. if (prefix == null) {
  38. TabUtil.c.set(packet, "");
  39. }
  40. else if (prefix.length() > 16) {
  41. TabUtil.c.set(packet, prefix.substring(0, 16));
  42. }
  43. else {
  44. TabUtil.c.set(packet, prefix);
  45. }
  46. if (suffix == null) {
  47. TabUtil.d.set(packet, "");
  48. }
  49. else if (suffix.length() > 16) {
  50. TabUtil.d.set(packet, suffix.substring(0, 16));
  51. }
  52. else {
  53. TabUtil.d.set(packet, suffix);
  54. }
  55. TabUtil.g.set(packet, 0);
  56. if (flag == 0) {
  57. TabUtil.e.set(packet, Arrays.asList(members));
  58. }
  59. }
  60. return packet;
  61. }
  62.  
  63. public static Object createPlayerPacket(final String name, final boolean visible, final int ping) {
  64. return TabUtil.conPlayer.invoke(name, visible, ping);
  65. }
  66.  
  67. static {
  68. TabUtil.packetClass = Reflection.getMinecraftClass("PacketPlayOutScoreboardTeam");
  69. TabUtil.con = Reflection.getConstructor(TabUtil.packetClass, (Class<?>[])new Class[0]);
  70. TabUtil.a = Reflection.getField(TabUtil.packetClass, "a", String.class);
  71. TabUtil.b = Reflection.getField(TabUtil.packetClass, "b", String.class);
  72. TabUtil.c = Reflection.getField(TabUtil.packetClass, "c", String.class);
  73. TabUtil.d = Reflection.getField(TabUtil.packetClass, "d", String.class);
  74. TabUtil.e = (Reflection.FieldAccessor<Collection>)Reflection.getField(TabUtil.packetClass, "e", Collection.class);
  75. TabUtil.f = Reflection.getField(TabUtil.packetClass, "f", Integer.TYPE);
  76. TabUtil.g = Reflection.getField(TabUtil.packetClass, "g", Integer.TYPE);
  77. TabUtil.packetClassPlayer = Reflection.getMinecraftClass("PacketPlayOutPlayerInfo");
  78. TabUtil.conPlayer = Reflection.getConstructor(TabUtil.packetClassPlayer, String.class, Boolean.TYPE, Integer.TYPE);
  79. }
  80. }
Add Comment
Please, Sign In to add comment