// Other methods public static void displayTextBar(String text, final Player player) { PacketPlayOutSpawnEntityLiving mobPacket = getMobPacket(text, player.getLocation()); ReflectionUtil.sendPacket(player, mobPacket); hasHealthBar.put(player.getName(), true); new BukkitRunnable() { @Override public void run() { PacketPlayOutEntityDestroy destroyEntityPacket = getDestroyEntityPacket(); ReflectionUtil.sendPacket(player, destroyEntityPacket); hasHealthBar.put(player.getName(), false); } }.runTaskLater(DSHPlugin.getPluginInstance(), 120L); }
public static void displayLoadingBar( final String text, final String completeText, final Player player, final int healthAdd, final long delay, final boolean loadUp) { PacketPlayOutSpawnEntityLiving mobPacket = getMobPacket(text, player.getLocation()); ReflectionUtil.sendPacket(player, mobPacket); hasHealthBar.put(player.getName(), true); new BukkitRunnable() { int health = (loadUp ? 0 : 300); @Override public void run() { if ((loadUp ? health < 300 : health > 0)) { DataWatcher watcher = getWatcher(text, health); PacketPlayOutEntityMetadata metaPacket = getMetadataPacket(watcher); ReflectionUtil.sendPacket(player, metaPacket); if (loadUp) { health += healthAdd; } else { health -= healthAdd; } } else { DataWatcher watcher = getWatcher(text, (loadUp ? 300 : 0)); PacketPlayOutEntityMetadata metaPacket = getMetadataPacket(watcher); PacketPlayOutEntityDestroy destroyEntityPacket = getDestroyEntityPacket(); ReflectionUtil.sendPacket(player, metaPacket); ReflectionUtil.sendPacket(player, destroyEntityPacket); hasHealthBar.put(player.getName(), false); // Complete text PacketPlayOutSpawnEntityLiving mobPacket = getMobPacket(completeText, player.getLocation()); ReflectionUtil.sendPacket(player, mobPacket); hasHealthBar.put(player.getName(), true); DataWatcher watcher2 = getWatcher(completeText, 300); PacketPlayOutEntityMetadata metaPacket2 = getMetadataPacket(watcher2); ReflectionUtil.sendPacket(player, metaPacket2); new BukkitRunnable() { @Override public void run() { PacketPlayOutEntityDestroy destroyEntityPacket = getDestroyEntityPacket(); ReflectionUtil.sendPacket(player, destroyEntityPacket); hasHealthBar.put(player.getName(), false); } }.runTaskLater(DSHPlugin.getPluginInstance(), 40L); this.cancel(); } } }.runTaskTimer(DSHPlugin.getPluginInstance(), delay, delay); }