Advertisement
Guest User

Untitled

a guest
Mar 30th, 2015
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.47 KB | None | 0 0
  1. package fr.jonhshepard.castle.GameUtils;
  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.  
  12. import org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer;
  13. import org.bukkit.entity.Player;
  14.  
  15. public class TitleSender {
  16.  
  17. public static void sendTitle(Player player, String msg, int fadeIn, int stayT, int fadeOut) {
  18. IChatBaseComponent chatTitle = ChatSerializer.a("{\"text\": \"" + msg + "\"}");
  19. PacketPlayOutTitle title = new PacketPlayOutTitle(EnumTitleAction.TITLE, chatTitle, fadeIn, stayT, fadeOut);
  20. ((CraftPlayer) player).getHandle().playerConnection.sendPacket(title);
  21. }
  22.  
  23. public static void sendSubTitle(Player player, String msg, int fadeIn, int stayT, int fadeOut) {
  24. IChatBaseComponent chatTitle = ChatSerializer.a("{\"text\": \"" + msg + "\"}");
  25. PacketPlayOutTitle title = new PacketPlayOutTitle(EnumTitleAction.SUBTITLE, chatTitle, fadeIn, stayT, fadeOut);
  26. ((CraftPlayer) player).getHandle().playerConnection.sendPacket(title);
  27. }
  28.  
  29. public static void setPlayerList(Player player, String header, String footer){
  30. IChatBaseComponent hj = ChatSerializer.a("{\"text\": \"" + header + "\"}");
  31. IChatBaseComponent fj = ChatSerializer.a("{\"text\": \"" + footer + "\"}");
  32. PacketPlayOutPlayerListHeaderFooter packet = (PacketPlayOutPlayerListHeaderFooter) constructHeaderAndFooterPacket(hj, fj);
  33. ((CraftPlayer)player).getHandle().playerConnection.sendPacket(packet);
  34. }
  35.  
  36. public static void setPlayerList1(Player player, String header, String footer){
  37. IChatBaseComponent hj = ChatSerializer.a("{\"text\": \"" + header + "\"}");
  38. IChatBaseComponent fj = ChatSerializer.a("{\"text\": \"" + footer + "\"}");
  39. PacketPlayOutPlayerListHeaderFooter packet = (PacketPlayOutPlayerListHeaderFooter) constructHeaderAndFooterPacket(hj, fj);
  40. ((CraftPlayer)player).getHandle().playerConnection.sendPacket(packet);
  41. }
  42.  
  43. public static void clear(Player player) {
  44. IChatBaseComponent chatTitle = ChatSerializer.a("{\"text\": \"" + "" + "\"}");
  45. PacketPlayOutTitle title = new PacketPlayOutTitle(EnumTitleAction.RESET, chatTitle);
  46. ((CraftPlayer) player).getHandle().playerConnection.sendPacket(title);
  47. }
  48.  
  49. public static void sendActionBar(Player player, String message){
  50. IChatBaseComponent cbc = ChatSerializer.a("{\"text\": \"" + message + "\"}");
  51. PacketPlayOutChat ppoc = new PacketPlayOutChat(cbc, (byte) 2);
  52. ((CraftPlayer)player).getHandle().playerConnection.sendPacket(ppoc);
  53. }
  54.  
  55. private static Object constructHeaderAndFooterPacket(Object header, Object footer){
  56. try{
  57. Object packet = PacketPlayOutPlayerListHeaderFooter.class.newInstance();
  58. if(header != null){
  59. Field field = PacketPlayOutPlayerListHeaderFooter.class.getDeclaredField("a");
  60. field.setAccessible(true);
  61. field.set(packet, header);
  62. field.setAccessible(false);
  63. }
  64. if(footer != null){
  65. Field field = PacketPlayOutPlayerListHeaderFooter.class.getDeclaredField("b");
  66. field.setAccessible(true);
  67. field.set(packet, footer);
  68. field.setAccessible(false);
  69. }
  70. return packet;
  71. }catch (InstantiationException | IllegalAccessException | NoSuchFieldException e){
  72. e.printStackTrace();
  73. }
  74. return null;
  75. }
  76.  
  77.  
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement