Mineplex2018-withcommit/Plugins/Mineplex.Hub/src/mineplex/hub/modules/NewsManager.java

81 lines
2.2 KiB
Java
Raw Normal View History

package mineplex.hub.modules;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import mineplex.core.MiniPlugin;
import mineplex.core.common.util.C;
import mineplex.core.common.util.UtilDisplay;
import mineplex.core.common.util.UtilServer;
import mineplex.core.common.util.UtilTime;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
import mineplex.hub.HubManager;
import mineplex.hub.mount.Mount;
import mineplex.hub.mount.types.Dragon;
public class NewsManager extends MiniPlugin
{
public HubManager Manager;
private String[] _news;
private int _newsIndex = 0;
private long _newsTime = System.currentTimeMillis();
private int _mineplexIndex = 0;
public NewsManager(HubManager manager)
{
super("News Manager", manager.GetPlugin());
2013-12-18 11:22:40 +01:00
Manager = manager;
_news = new String[]
{
2013-12-21 12:21:16 +01:00
"Europe Servers: " + C.cGreen + C.Bold + "BACK ONLINE" + ChatColor.RESET + "!",
"Christmas Sale: " + C.cGreen + C.Bold + "50% Off!" + ChatColor.RESET + "!",
"New Game: " + C.cGold + C.Bold + "Christmas Chaos" + ChatColor.RESET + "!",
};
}
@EventHandler
public void FlightUpdate(UpdateEvent event)
{
if (event.getType() != UpdateType.FASTEST)
return;
//Mineplex Color
ChatColor col = ChatColor.RED;
if (_mineplexIndex == 1) col = ChatColor.GOLD;
else if (_mineplexIndex == 2) col = ChatColor.YELLOW;
else if (_mineplexIndex == 3) col = ChatColor.GREEN;
else if (_mineplexIndex == 4) col = ChatColor.AQUA;
else if (_mineplexIndex == 5) col = ChatColor.LIGHT_PURPLE;
_mineplexIndex = (_mineplexIndex + 1)%6;
//News Change
if (UtilTime.elapsed(_newsTime, 4500))
{
_newsIndex = (_newsIndex + 1)%_news.length;
_newsTime = System.currentTimeMillis();
}
//Text
String text = col + C.Bold + "MINEPLEX" + ChatColor.RESET + " - " + _news[_newsIndex];
if (text.length() > 64)
text = text.substring(0, 64);
for (Player player : UtilServer.getPlayers())
UtilDisplay.displayTextBar(Manager.GetPlugin(), player, (double)_newsIndex/(double)(_news.length-1), text);
for (Mount mount : Manager.GetMount().getMounts())
{
if (mount instanceof Dragon)
{
((Dragon)mount).SetName(text);
}
}
}
}