Vinetos

CREER UN PLUGIN BUKKIT #20 - Les Titles - PlayerUtils.java

Mar 21st, 2015
1,067
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.88 KB | None | 0 0
  1. package ep20;
  2.  
  3. import java.lang.reflect.Field;
  4.  
  5. import net.minecraft.server.v1_8_R1.ChatSerializer;
  6. import net.minecraft.server.v1_8_R1.EnumTitleAction;
  7. import net.minecraft.server.v1_8_R1.IChatBaseComponent;
  8. import net.minecraft.server.v1_8_R1.PacketPlayOutChat;
  9. import net.minecraft.server.v1_8_R1.PacketPlayOutPlayerListHeaderFooter;
  10. import net.minecraft.server.v1_8_R1.PacketPlayOutTitle;
  11. import net.minecraft.server.v1_8_R1.PlayerConnection;
  12.  
  13. import org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer;
  14. import org.bukkit.entity.Player;
  15.  
  16. public class PlayerUtils
  17. {
  18. public static void sendTitle(Player p, String title, String subtitle)
  19. {
  20. PlayerConnection connection = ((CraftPlayer)p).getHandle().playerConnection;
  21. IChatBaseComponent titleJSON = ChatSerializer.a("{'text':'" + title + "'}");
  22. IChatBaseComponent subtitleJSON = ChatSerializer.a("{'text':'" + subtitle + "'}");
  23. PacketPlayOutTitle titlePacket = new PacketPlayOutTitle(EnumTitleAction.TITLE, titleJSON);
  24. PacketPlayOutTitle subtitlePacket = new PacketPlayOutTitle(EnumTitleAction.SUBTITLE, subtitleJSON);
  25. connection.sendPacket(titlePacket);
  26. connection.sendPacket(subtitlePacket);
  27. }
  28.  
  29. public static void sendActionBar(Player p, String msg)
  30. {
  31. IChatBaseComponent cbc = ChatSerializer.a("{\"text\": \"" + msg + "\"}");
  32. PacketPlayOutChat ppoc = new PacketPlayOutChat(cbc, (byte) 2);
  33. ((CraftPlayer)p).getHandle().playerConnection.sendPacket(ppoc);
  34. }
  35.  
  36. public static void sendHeaderAndFooter(Player p, String head, String foot)
  37. {
  38. PlayerConnection connection = ((CraftPlayer)p).getHandle().playerConnection;
  39. IChatBaseComponent header = ChatSerializer.a("{'color':'" + "', 'text':'" + head + "'}");
  40. IChatBaseComponent footer = ChatSerializer.a("{'color':'" + "', 'text':'" + foot + "'}");
  41. PacketPlayOutPlayerListHeaderFooter packet = new PacketPlayOutPlayerListHeaderFooter();
  42. try
  43. {
  44. Field headerField = packet.getClass().getDeclaredField("a");
  45. headerField.setAccessible(true);
  46. headerField.set(packet, header);
  47. headerField.setAccessible(!headerField.isAccessible());
  48.  
  49.  
  50. Field footerField = packet.getClass().getDeclaredField("b");
  51. footerField.setAccessible(true);
  52. footerField.set(packet, footer);
  53. footerField.setAccessible(!footerField.isAccessible());
  54. }
  55. catch(Exception e){e.printStackTrace();}
  56. connection.sendPacket(packet);
  57. }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment