From 3740c3c46138fa29ed812b4ab62053f41eb5568f Mon Sep 17 00:00:00 2001 From: Zeshan Aslam Date: Thu, 23 Mar 2017 13:28:26 -0400 Subject: [PATCH] Display half health icon more accurately again --- .../actionhealth/HealthListeners.class | Bin 4189 -> 4187 bytes .../actionhealth/HealthUtil$1.class | Bin 1247 -> 1248 bytes .../zeshanaslam/actionhealth/HealthUtil.class | Bin 7593 -> 7819 bytes .../actionhealth/HealthListeners.java | 4 +- .../zeshanaslam/actionhealth/HealthUtil.java | 37 ++++++++++-------- 5 files changed, 23 insertions(+), 18 deletions(-) diff --git a/out/production/ActionHealth/com/zeshanaslam/actionhealth/HealthListeners.class b/out/production/ActionHealth/com/zeshanaslam/actionhealth/HealthListeners.class index 35040933bb23e289e7f903816ec6aee2f8f61b8f..edfd2af0a4983590d40f61e96cbb157565948a5b 100644 GIT binary patch delta 256 zcmW-bJxfAi07lP)<}LHRf#pz1SVSh$QcDGumP18d$l=-tl!3Gv4M9W1y<_`Jgj2sj z2n3<2+WHUC(BFuH^llHF1Lyh5edeAIld5!%lCK(S~eW;j2VV zWsc=@q8ev9rLG3&3TUtlR2k%(ENiSYz#|uIP$Evq9c4C&_3X)r#(Rych{pQgSz#62 dXl_wKTqK`t`fTz2`U<={^c zwOTph;-8R%e?v>Q_x7phsps>R{!YJ?zF#rGn delta 79 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 literal 7593 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 diff --git a/src/com/zeshanaslam/actionhealth/HealthListeners.java b/src/com/zeshanaslam/actionhealth/HealthListeners.java index 5d99771..e8603ea 100644 --- a/src/com/zeshanaslam/actionhealth/HealthListeners.java +++ b/src/com/zeshanaslam/actionhealth/HealthListeners.java @@ -64,7 +64,7 @@ public class HealthListeners implements Listener { // Send health if (damaged instanceof LivingEntity) { LivingEntity livingEntity = (LivingEntity) damaged; - plugin.healthUtil.sendHealth(player, (LivingEntity) damaged, (int) (livingEntity.getHealth() - event.getFinalDamage())); + plugin.healthUtil.sendHealth(player, (LivingEntity) damaged, livingEntity.getHealth() - event.getFinalDamage()); } } } @@ -94,7 +94,7 @@ public class HealthListeners implements Listener { // Send health if (damaged instanceof LivingEntity) { LivingEntity livingEntity = (LivingEntity) damaged; - plugin.healthUtil.sendHealth(player, (LivingEntity) damaged, (int) (livingEntity.getHealth() - event.getFinalDamage())); + plugin.healthUtil.sendHealth(player, (LivingEntity) damaged, livingEntity.getHealth() - event.getFinalDamage()); } } } diff --git a/src/com/zeshanaslam/actionhealth/HealthUtil.java b/src/com/zeshanaslam/actionhealth/HealthUtil.java index 4672b6b..3581e49 100644 --- a/src/com/zeshanaslam/actionhealth/HealthUtil.java +++ b/src/com/zeshanaslam/actionhealth/HealthUtil.java @@ -19,7 +19,7 @@ public class HealthUtil { this.plugin = plugin; } - public void sendHealth(Player player, LivingEntity entity, int health) { + public void sendHealth(Player player, LivingEntity entity, double health) { if (plugin.settingsManager.delay) { new BukkitRunnable() { @@ -28,15 +28,15 @@ public class HealthUtil { } }.runTaskLater(plugin, 1L); } else { - sendActionBar(player, getOutput(Math.round(health), entity)); + sendActionBar(player, getOutput(health, entity)); } } - private String getOutput(int health, LivingEntity entity) { + private String getOutput(double health, LivingEntity entity) { String name; - int maxHealth = (int) entity.getMaxHealth(); + double maxHealth = entity.getMaxHealth(); - if (health < 0 || entity.isDead()) health = 0; + if (health < 0.0 || entity.isDead()) health = 0.0; if (entity.getCustomName() == null) { name = entity.getName(); @@ -56,10 +56,11 @@ public class HealthUtil { if (output.contains("{usestyle}")) { String style = ""; int left = 10; - int heart = maxHealth / 10; - int halfHeart = heart / 2; - int tempHealth = health; + double heart = maxHealth / 10; + double halfHeart = heart / 2; + double tempHealth = health; + System.out.println(health + " " + tempHealth + " " + heart + " " + halfHeart); if (maxHealth != health && health >= 0 && !entity.isDead()) { for (int i = 0; i < 10; i++) { if (tempHealth - heart > 0) { @@ -67,6 +68,8 @@ public class HealthUtil { style = style + plugin.settingsManager.filledHeartIcon; left--; + } else { + break; } } @@ -114,14 +117,16 @@ public class HealthUtil { ppoc = c4.getConstructor(new Class[]{c3, byte.class}).newInstance(o, (byte) 2); } - Method m1 = c1.getDeclaredMethod("getHandle"); - Object h = m1.invoke(p); - Field f1 = h.getClass().getDeclaredField("playerConnection"); - Object pc = f1.get(h); - Method m5 = pc.getClass().getDeclaredMethod("sendPacket", c5); - m5.invoke(pc, ppoc); - } catch (Exception ex) { - ex.printStackTrace(); + Method getHandle = c1.getDeclaredMethod("getHandle"); + Object handle = getHandle.invoke(p); + + Field fieldConnection = handle.getClass().getDeclaredField("playerConnection"); + Object playerConnection = fieldConnection.get(handle); + + Method sendPacket = playerConnection.getClass().getDeclaredMethod("sendPacket", c5); + sendPacket.invoke(playerConnection, ppoc); + } catch (Exception e) { + e.printStackTrace(); } }