Advertisement
Guest User

Untitled

a guest
Jan 2nd, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.84 KB | None | 0 0
  1. @EventHandler
  2. public void onJoin(PlayerJoinEvent e) {
  3.  
  4. final Player p = e.getPlayer();
  5.  
  6. //TITLE:
  7. if(e.getPlayer().hasPlayedBefore()) {
  8.  
  9. PacketPlayOutTitle title = new PacketPlayOutTitle(EnumTitleAction.TITLE, ChatSerializer.a("{\"text\":\"" + utils.toColor(plugin.getConfig().getString("onjoin.title.has-joined")) + "\"}"));
  10. PacketPlayOutTitle length = new PacketPlayOutTitle(0, plugin.getConfig().getList("onjoin.subtitles").size() * plugin.getConfig().getInt("onjoin.subtitle.stay-per-subtitle-ticks") - 10, 10);
  11.  
  12. ((CraftPlayer) p).getHandle().playerConnection.sendPacket(title);
  13. ((CraftPlayer) p).getHandle().playerConnection.sendPacket(length);
  14.  
  15. }else {
  16.  
  17. PacketPlayOutTitle title = new PacketPlayOutTitle(EnumTitleAction.TITLE, ChatSerializer.a("{\"text\":\"" + utils.toColor(plugin.getConfig().getString("onjoin.title.never-joined")) + "\"}"));
  18. PacketPlayOutTitle length = new PacketPlayOutTitle(0, plugin.getConfig().getList("onjoin.subtitles").size() * plugin.getConfig().getInt("onjoin.subtitle.stay-per-subtitle-ticks") - 10, 10);
  19.  
  20. ((CraftPlayer) p).getHandle().playerConnection.sendPacket(title);
  21. ((CraftPlayer) p).getHandle().playerConnection.sendPacket(length);
  22. //THE 2 PACKETS^
  23.  
  24. }
  25.  
  26. //TODO: HERE ARE THE SUBTITLES
  27.  
  28. new BukkitRunnable() {
  29. int next = 0;
  30. boolean didTwice = false;
  31.  
  32. public void run() {
  33. if(plugin.getConfig().getStringList("onjoin.subtitles").size() >= next + 1) {
  34.  
  35. String s = plugin.getConfig().getStringList("onjoin.subtitles").get(next);
  36. Bukkit.broadcastMessage("Next: " + next);
  37.  
  38. if(next + 1 == plugin.getConfig().getStringList("onjoin.subtitles").size()){
  39.  
  40. PacketPlayOutTitle subtitle = new PacketPlayOutTitle(EnumTitleAction.SUBTITLE, ChatSerializer.a("{\"text\":\"" + utils.toColor(s) + "\"}"));
  41. PacketPlayOutTitle length = new PacketPlayOutTitle(0, plugin.getConfig().getInt("onjoin.subtitle.stay-per-subtitle-ticks") - 10, 10);
  42.  
  43. ((CraftPlayer) p).getHandle().playerConnection.sendPacket(subtitle);
  44. ((CraftPlayer) p).getHandle().playerConnection.sendPacket(length);
  45.  
  46. }else {
  47.  
  48. PacketPlayOutTitle subtitle = new PacketPlayOutTitle(EnumTitleAction.SUBTITLE, ChatSerializer.a("{\"text\":\"" + utils.toColor(s) + "\"}"));
  49. PacketPlayOutTitle length = new PacketPlayOutTitle(0, plugin.getConfig().getInt("onjoin.subtitle.stay-per-subtitle-ticks"), 0);
  50.  
  51. ((CraftPlayer) p).getHandle().playerConnection.sendPacket(subtitle);
  52. ((CraftPlayer) p).getHandle().playerConnection.sendPacket(length);
  53.  
  54. }
  55.  
  56. next++;
  57.  
  58. }else {
  59. this.cancel();
  60. }
  61. }
  62. }.runTaskTimer(plugin, 0, plugin.getConfig().getInt("onjoin.subtitle.stay-per-subtitle-ticks"));
  63.  
  64. //TABLIST:
  65. IChatBaseComponent headerText = ChatSerializer.a("{\"text\":\"" + utils.toColor(plugin.getConfig().getString("tablist.header")) + "\"}");
  66. IChatBaseComponent footerText = ChatSerializer.a("{\"text\": \"" + utils.toColor(plugin.getConfig().getString("tablist.footer")) + "\"}");
  67.  
  68.  
  69. PacketPlayOutPlayerListHeaderFooter packet = new PacketPlayOutPlayerListHeaderFooter();
  70.  
  71. try {
  72.  
  73. Field headerField = packet.getClass().getDeclaredField("a");
  74. headerField.setAccessible(true);
  75. headerField.set(packet, headerText);
  76. headerField.setAccessible(!headerField.isAccessible());
  77.  
  78. Field footerField = packet.getClass().getDeclaredField("b");
  79. footerField.setAccessible(true);
  80. footerField.set(packet, footerText);
  81. footerField.setAccessible(!footerField.isAccessible());
  82.  
  83. } catch (Exception er) {
  84. er.printStackTrace();
  85. }
  86.  
  87. ((CraftPlayer) e.getPlayer()).getHandle().playerConnection.sendPacket(packet);
  88.  
  89.  
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement