Advertisement
Guest User

Untitled

a guest
Apr 12th, 2014
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.lang.reflect.Field;
  2.  
  3. import me.squidboss.main.UUIDLibrary;
  4. import net.minecraft.server.v1_7_R2.DataWatcher;
  5. import net.minecraft.server.v1_7_R2.EntityPlayer;
  6. import net.minecraft.server.v1_7_R2.Packet;
  7. import net.minecraft.server.v1_7_R2.PacketPlayOutSpawnEntityLiving;
  8. import net.minecraft.server.v1_7_R2.PacketPlayOutEntityDestroy;
  9.  
  10.  
  11.  
  12.  
  13.  
  14. import org.bukkit.Bukkit;
  15. import org.bukkit.Location;
  16. import org.bukkit.craftbukkit.v1_7_R2.entity.CraftPlayer;
  17. import org.bukkit.entity.EntityType;
  18. import org.bukkit.entity.Player;
  19.  
  20. public class DragonBar {
  21. public static final int ENTITY_ID = 1234;
  22.  
  23. public static void sendPacket(Player player, Packet packet) {
  24. EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle();
  25. entityPlayer.playerConnection.sendPacket(packet);
  26. }
  27.  
  28. public static Field getField(Class<?> cl, String field_name) {
  29. try {
  30. Field field = cl.getDeclaredField(field_name);
  31. return field;
  32. } catch (SecurityException e) {
  33. e.printStackTrace();
  34. } catch (NoSuchFieldException e) {
  35. e.printStackTrace();
  36. }
  37. return null;
  38. }
  39.  
  40. @SuppressWarnings("deprecation")
  41. public static PacketPlayOutSpawnEntityLiving getMobPacket(String text, Location loc, Integer health) {
  42. PacketPlayOutSpawnEntityLiving mobPacket = new PacketPlayOutSpawnEntityLiving();
  43. try {
  44. Field a = getField(mobPacket.getClass(), "a");
  45. a.setAccessible(true);
  46. a.set(mobPacket, (int) ENTITY_ID);
  47.  
  48. Field b = getField(mobPacket.getClass(), "b");
  49. b.setAccessible(true);
  50. b.set(mobPacket, (byte) EntityType.ENDER_DRAGON.getTypeId());
  51.  
  52. Field c = getField(mobPacket.getClass(), "c");
  53. c.setAccessible(true);
  54. c.set(mobPacket, (int) Math.floor(loc.getBlockX() * 32.0D));
  55.  
  56. Field d = getField(mobPacket.getClass(), "d");
  57. d.setAccessible(true);
  58. d.set(mobPacket, (int) Math.floor(loc.getBlockY() * 32.0D));
  59.  
  60. Field e = getField(mobPacket.getClass(), "e");
  61. e.setAccessible(true);
  62. e.set(mobPacket, (int) Math.floor(loc.getBlockZ() * 32.0D));
  63.  
  64. Field f = getField(mobPacket.getClass(), "f");
  65. f.setAccessible(true);
  66. f.set(mobPacket, (byte) 0);
  67.  
  68. Field g = getField(mobPacket.getClass(), "g");
  69. g.setAccessible(true);
  70. g.set(mobPacket, (byte) 0);
  71.  
  72. Field h = getField(mobPacket.getClass(), "h");
  73. h.setAccessible(true);
  74. h.set(mobPacket, (byte) 0);
  75.  
  76. Field i = getField(mobPacket.getClass(), "i");
  77. i.setAccessible(true);
  78. i.set(mobPacket, (byte) 0);
  79.  
  80. Field j = getField(mobPacket.getClass(), "j");
  81. j.setAccessible(true);
  82. j.set(mobPacket, (byte) 0);
  83.  
  84. Field k = getField(mobPacket.getClass(), "k");
  85. k.setAccessible(true);
  86. k.set(mobPacket, (byte) 0);
  87.  
  88. } catch (IllegalArgumentException e1) {
  89. e1.printStackTrace();
  90. } catch (IllegalAccessException e1) {
  91. e1.printStackTrace();
  92. }
  93.  
  94. DataWatcher watcher = getWatcher(text, health);
  95.  
  96. try{
  97. Field t = PacketPlayOutSpawnEntityLiving.class.getDeclaredField("l");
  98. t.setAccessible(true);
  99. t.set(mobPacket, watcher);
  100. } catch(Exception ex){
  101. ex.printStackTrace();
  102. }
  103.  
  104. return mobPacket;
  105. }
  106.  
  107. public static PacketPlayOutEntityDestroy getDestroyEntityPacket() {
  108. PacketPlayOutEntityDestroy packet = new PacketPlayOutEntityDestroy();
  109.  
  110. Field a = getField(packet.getClass(), "a");
  111. a.setAccessible(true);
  112. try {
  113. a.set(packet, new int[]{ENTITY_ID});
  114. } catch (IllegalArgumentException e) {
  115. e.printStackTrace();
  116. } catch (IllegalAccessException e) {
  117. e.printStackTrace();
  118. }
  119.  
  120. return packet;
  121. }
  122.  
  123. public static DataWatcher getWatcher(String text, int health) {
  124. DataWatcher watcher = new DataWatcher(null);
  125.  
  126. watcher.a(0, (Byte) (byte) 0x20);
  127. watcher.a(6, (Float) (float) health);
  128. watcher.a(10, (String) text);
  129. watcher.a(11, (Byte) (byte) 1);
  130.  
  131. return watcher;
  132. }
  133.  
  134. @SuppressWarnings("deprecation")
  135. public static void displayDragonBar(String text, Player player, Locaiton loc, Integer health) {
  136. PacketPlayOutSpawnEntityLiving mobPacket = getMobPacket(text, loc, health);
  137. sendPacket(player, mobPacket);
  138. }
  139.  
  140. @SuppressWarnings("deprecation")
  141. public static void deleteDragonBar(Player player) {
  142. PacketPlayOutEntityDestroy destroyEntityPacket = getDestroyEntityPacket();
  143. sendPacket(player, destroyEntityPacket);
  144. }
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement