Bar-Health not showing

Discussion in 'Plugin Development' started by KingPsychopath, Mar 1, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    KingPsychopath

    Now, before you say anything, I know how to use the boss-bar api, and yes I have read the the tutorial by chasechocolate.
    I have the bar working for another plugin, it's just this one where I am trying to display the health, there are no errors in my other .java's, just syntax errors on line : 244 and undefined errors for : 240 and 239
    So mind helping?
    Code:java
    1. package com.kingpsychopath.AeonBarHealth;
    2.  
    3. import java.lang.reflect.Field;
    4. import java.util.HashMap;
    5.  
    6. import net.minecraft.server.v1_7_R1.DataWatcher;
    7. import net.minecraft.server.v1_7_R1.EntityPlayer;
    8. import net.minecraft.server.v1_7_R1.Packet;
    9. import net.minecraft.server.v1_7_R1.PacketPlayInClientCommand;
    10. import net.minecraft.server.v1_7_R1.PacketPlayOutEntityDestroy;
    11. import net.minecraft.server.v1_7_R1.PacketPlayOutEntityMetadata;
    12. import net.minecraft.server.v1_7_R1.PacketPlayOutSpawnEntityLiving;
    13.  
    14. import org.bukkit.Location;
    15. import org.bukkit.craftbukkit.v1_7_R1.entity.CraftPlayer;
    16. import org.bukkit.entity.EntityType;
    17. import org.bukkit.entity.Player;
    18. import org.bukkit.scheduler.BukkitRunnable;
    19.  
    20. public class HeadsUpDisplay
    21. {
    22. public static AeonBarHealth aeonBarHealth;
    23. public static final int ENTITY_ID = 1234;
    24.  
    25. public HeadsUpDisplay(AeonBarHealth instance)
    26. {
    27. aeonBarHealth = instance;
    28. }
    29.  
    30. @SuppressWarnings({ "unchecked", "rawtypes" })
    31. private static HashMap<String, Boolean> hasHealthBar = new HashMap();
    32.  
    33. public static void sendPacket(Player player, Packet packet)
    34. {
    35. EntityPlayer entityPlayer = ((CraftPlayer)player).getHandle();
    36.  
    37. entityPlayer.playerConnection.sendPacket(packet);
    38. }
    39.  
    40. public static Field getField(Class<?> cl, String field_name)
    41. {
    42. try
    43. {
    44. return cl.getDeclaredField(field_name);
    45. }
    46. {
    47. e.printStackTrace();
    48. }
    49. {
    50. e.printStackTrace();
    51. }
    52. return null;
    53. }
    54.  
    55. @SuppressWarnings("deprecation")
    56. public static PacketPlayOutSpawnEntityLiving getMobPacket(String text, Location loc)
    57. {
    58. PacketPlayOutSpawnEntityLiving mobPacket = new PacketPlayOutSpawnEntityLiving();
    59. try
    60. {
    61. Field a = getField(mobPacket.getClass(), "a");
    62. a.setAccessible(true);
    63. a.set(mobPacket, Integer.valueOf(1234));
    64.  
    65. Field b = getField(mobPacket.getClass(), "b");
    66. b.setAccessible(true);
    67. b.set(mobPacket, Byte.valueOf((byte)EntityType.ENDER_DRAGON.getTypeId()));
    68.  
    69. Field c = getField(mobPacket.getClass(), "c");
    70. c.setAccessible(true);
    71. c.set(mobPacket, Integer.valueOf((int)Math.floor(loc.getBlockX() * 32.0D)));
    72.  
    73. Field d = getField(mobPacket.getClass(), "d");
    74. d.setAccessible(true);
    75. d.set(mobPacket, Integer.valueOf((int)Math.floor(loc.getBlockY() * 32.0D)));
    76.  
    77. Field e = getField(mobPacket.getClass(), "e");
    78. e.setAccessible(true);
    79. e.set(mobPacket, Integer.valueOf((int)Math.floor(loc.getBlockZ() * 32.0D)));
    80.  
    81. Field f = getField(mobPacket.getClass(), "f");
    82. f.setAccessible(true);
    83. f.set(mobPacket, Byte.valueOf((byte)0));
    84.  
    85. Field g = getField(mobPacket.getClass(), "g");
    86. g.setAccessible(true);
    87. g.set(mobPacket, Byte.valueOf((byte)0));
    88.  
    89. Field h = getField(mobPacket.getClass(), "h");
    90. h.setAccessible(true);
    91. h.set(mobPacket, Byte.valueOf((byte)0));
    92.  
    93. Field i = getField(mobPacket.getClass(), "i");
    94. i.setAccessible(true);
    95. i.set(mobPacket, Byte.valueOf((byte)0));
    96.  
    97. Field j = getField(mobPacket.getClass(), "j");
    98. j.setAccessible(true);
    99. j.set(mobPacket, Byte.valueOf((byte)0));
    100.  
    101. Field k = getField(mobPacket.getClass(), "k");
    102. k.setAccessible(true);
    103. k.set(mobPacket, Byte.valueOf((byte)0));
    104. }
    105. {
    106. e1.printStackTrace();
    107. }
    108. {
    109. e1.printStackTrace();
    110. }
    111. DataWatcher watcher = getWatcher(text, 200);
    112. try
    113. {
    114. Field t = PacketPlayOutSpawnEntityLiving.class.getDeclaredField("l");
    115. t.setAccessible(true);
    116. t.set(mobPacket, watcher);
    117. }
    118. catch (Exception ex)
    119. {
    120. ex.printStackTrace();
    121. }
    122. return mobPacket;
    123. }
    124.  
    125. public static PacketPlayOutEntityDestroy getDestroyEntityPacket()
    126. {
    127. PacketPlayOutEntityDestroy packet = new PacketPlayOutEntityDestroy();
    128.  
    129. Field a = getField(packet.getClass(), "a");
    130. a.setAccessible(true);
    131. try
    132. {
    133. a.set(packet, new int[] { 1234 });
    134. }
    135. {
    136. e.printStackTrace();
    137. }
    138. {
    139. e.printStackTrace();
    140. }
    141. return packet;
    142. }
    143.  
    144. public static PacketPlayOutEntityMetadata getMetadataPacket(DataWatcher watcher)
    145. {
    146. PacketPlayOutEntityMetadata metaPacket = new PacketPlayOutEntityMetadata();
    147.  
    148. Field a = getField(metaPacket.getClass(), "a");
    149. a.setAccessible(true);
    150. try
    151. {
    152. a.set(metaPacket, Integer.valueOf(1234));
    153. }
    154. {
    155. e1.printStackTrace();
    156. }
    157. {
    158. e1.printStackTrace();
    159. }
    160. try
    161. {
    162. Field b = PacketPlayOutEntityMetadata.class.getDeclaredField("b");
    163. b.setAccessible(true);
    164. b.set(metaPacket, watcher.c());
    165. }
    166. catch (Exception e)
    167. {
    168. e.printStackTrace();
    169. }
    170. return metaPacket;
    171. }
    172.  
    173. public static PacketPlayInClientCommand getRespawnPacket()
    174. {
    175. PacketPlayInClientCommand packet = new PacketPlayInClientCommand();
    176.  
    177. Field a = getField(packet.getClass(), "a");
    178. a.setAccessible(true);
    179. try
    180. {
    181. a.set(packet, Integer.valueOf(1));
    182. }
    183. {
    184. e.printStackTrace();
    185. }
    186. {
    187. e.printStackTrace();
    188. }
    189. return packet;
    190. }
    191.  
    192. public static DataWatcher getWatcher(String text, int health)
    193. {
    194. DataWatcher watcher = new DataWatcher(null);
    195.  
    196. watcher.a(0, Byte.valueOf((byte)32));
    197. watcher.a(6, Float.valueOf(health));
    198. watcher.a(10, text);
    199. watcher.a(11, Byte.valueOf((byte)1));
    200.  
    201.  
    202. return watcher;
    203. }
    204.  
    205. public static void displayTextBar(String text, Player player)
    206. {
    207. Location loc1 = new Location(player.getWorld(), player.getLocation().getX(), player.getLocation().getY() - 200.0D, player.getLocation().getZ());
    208. PacketPlayOutSpawnEntityLiving mobPacket = getMobPacket(text, loc1);
    209.  
    210. sendPacket(player, mobPacket);
    211. hasHealthBar.put(player.getName(), Boolean.valueOf(true));
    212.  
    213. new BukkitRunnable()
    214. {
    215. public void run()
    216. {
    217. PacketPlayOutEntityDestroy destroyEntityPacket = HeadsUpDisplay.getDestroyEntityPacket();
    218.  
    219. HeadsUpDisplay.sendPacket(HeadsUpDisplay.this, destroyEntityPacket);
    220. HeadsUpDisplay.hasHealthBar.put(HeadsUpDisplay.this.getName(), Boolean.valueOf(false));
    221. }
    222. }.runTaskLater(aeonBarHealth, 120L);
    223. }
    224.  
    225. public static void displayLoadingBar(final String text, final String completeText, final Player player, final int healthAdd, long delay, boolean loadUp)
    226. {
    227. PacketPlayOutSpawnEntityLiving mobPacket = getMobPacket(text, player.getLocation());
    228.  
    229. sendPacket(player, mobPacket);
    230. hasHealthBar.put(player.getName(), Boolean.valueOf(true));
    231.  
    232. new BukkitRunnable()
    233. {
    234. int health = ??? ? 0 : 200;
    235.  
    236. public void run()
    237. {
    238. if (this.val$loadUp ? this.health < 200 : this.health > 0)
    239. {
    240. DataWatcher watcher = HeadsUpDisplay.getWatcher(text, this.health);
    241. PacketPlayOutEntityMetadata metaPacket = HeadsUpDisplay.getMetadataPacket(watcher);
    242.  
    243. HeadsUpDisplay.sendPacket(player, metaPacket);
    244. if (this.val$loadUp) {
    245. this.health += healthAdd;
    246. } else {
    247. this.health -= healthAdd;
    248. }
    249. }
    250. else
    251. {
    252. DataWatcher watcher = HeadsUpDisplay.getWatcher(text, this.val$loadUp ? 200 : 0);
    253. PacketPlayOutEntityMetadata metaPacket = HeadsUpDisplay.getMetadataPacket(watcher);
    254. PacketPlayOutEntityDestroy destroyEntityPacket = HeadsUpDisplay.getDestroyEntityPacket();
    255.  
    256. HeadsUpDisplay.sendPacket(player, metaPacket);
    257. HeadsUpDisplay.sendPacket(player, destroyEntityPacket);
    258. HeadsUpDisplay.hasHealthBar.put(player.getName(), Boolean.valueOf(false));
    259.  
    260.  
    261. PacketPlayOutSpawnEntityLiving mobPacket = HeadsUpDisplay.getMobPacket(completeText, player.getLocation());
    262.  
    263. HeadsUpDisplay.sendPacket(player, mobPacket);
    264. HeadsUpDisplay.hasHealthBar.put(player.getName(), Boolean.valueOf(true));
    265.  
    266. DataWatcher watcher2 = HeadsUpDisplay.getWatcher(completeText, 200);
    267. PacketPlayOutEntityMetadata metaPacket2 = HeadsUpDisplay.getMetadataPacket(watcher2);
    268.  
    269. HeadsUpDisplay.sendPacket(player, metaPacket2);
    270.  
    271. new BukkitRunnable()
    272. {
    273. public void run()
    274. {
    275. PacketPlayOutEntityDestroy destroyEntityPacket = HeadsUpDisplay.getDestroyEntityPacket();
    276.  
    277. HeadsUpDisplay.sendPacket(this.val$player, destroyEntityPacket);
    278. HeadsUpDisplay.hasHealthBar.put(this.val$player.getName(), Boolean.valueOf(false));
    279. }
    280. }.runTaskLater(aeonBarHealth, 40L);
    281.  
    282. cancel();
    283. }
    284. }
    285. }.runTaskTimer(aeonBarHealth, delay, delay);
    286. }
    287.  
    288. public static void displayLoadingBar(String text, String completeText, Player player, int secondsDelay, boolean loadUp)
    289. {
    290. int healthChangePerSecond = 300 / secondsDelay;
    291.  
    292. displayLoadingBar(text, completeText, player, healthChangePerSecond, 20L, loadUp);
    293. }
    294. }
    295.  

    iSexyChocobo SoThatsIt chasechocolate
     
  2. Offline

    KingPsychopath

  3. Post the stacktrace maybe? and the original code, without ????
    (no bumping within 24 hours)
     
  4. Offline

    KingPsychopath

    1. There is no error on the console.
    2. The original code is on chasechocolate's thread.
    3. Check the times I bumped it.
     
Thread Status:
Not open for further replies.

Share This Page