From 0b942e5180cbd0ef1c2232b8ba188160cdbbf4b2 Mon Sep 17 00:00:00 2001 From: Shaun Bennett Date: Wed, 6 Aug 2014 21:03:48 -0500 Subject: [PATCH] Stop DragonMount from causing the news bar to flicker --- .../src/mineplex/hub/modules/NewsManager.java | 6 ++++-- .../src/mineplex/hub/mount/DragonMount.java | 5 ++++- .../src/mineplex/hub/mount/types/Dragon.java | 13 ++++++++++++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/NewsManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/NewsManager.java index 6d67b4986..459ef68ed 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/NewsManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/NewsManager.java @@ -246,15 +246,17 @@ public class NewsManager extends MiniPlugin String text = col + C.Bold + "MINEPLEX" + ChatColor.RESET + " - " + _news[_newsIndex]; if (text.length() > 64) text = text.substring(0, 64); - + + double healthPercent = (double)_newsIndex/(double)(_news.length-1); for (Player player : UtilServer.getPlayers()) - UtilDisplay.displayTextBar(Manager.GetPlugin(), player, (double)_newsIndex/(double)(_news.length-1), text); + UtilDisplay.displayTextBar(Manager.GetPlugin(), player, healthPercent, text); for (Mount mount : Manager.GetMount().getMounts()) { if (mount instanceof Dragon) { ((Dragon)mount).SetName(text); + ((Dragon)mount).setHealthPercent(healthPercent); } } } diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/mount/DragonMount.java b/Plugins/Mineplex.Hub/src/mineplex/hub/mount/DragonMount.java index 957c987f7..479a68662 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/mount/DragonMount.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/mount/DragonMount.java @@ -30,7 +30,10 @@ public class DragonMount extends Mount UtilPlayer.message(player, F.main("Mount", "You spawned " + F.elem(GetName()) + ".")); //Store - _active.put(player, new DragonData(this, player)); + DragonData dragonData = new DragonData(this, player); + //Set max health to 1 so player doesn't see a bunch of mount hearts flashing when NewsManager changes the health + dragonData.Dragon.setMaxHealth(1.0); + _active.put(player, dragonData); } @Override diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/mount/types/Dragon.java b/Plugins/Mineplex.Hub/src/mineplex/hub/mount/types/Dragon.java index 160e55cb9..cb4ebb61a 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/mount/types/Dragon.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/mount/types/Dragon.java @@ -103,7 +103,18 @@ public class Dragon extends DragonMount for (DragonData dragon : GetActive().values()) dragon.Dragon.setCustomName(news); } - + + public void setHealthPercent(double healthPercent) + { + for (DragonData dragon : GetActive().values()) + { + double health = healthPercent * dragon.Dragon.getMaxHealth(); + if (health <= 0.0) + health = 0.001; + dragon.Dragon.setHealth(health); + } + } + @EventHandler public void HeroOwner(PlayerJoinEvent event) {