Clan energy warnings implemented. (not tested yet)

This commit is contained in:
NewGarbo 2015-11-18 07:39:00 +00:00
parent c23b2f54f5
commit f79c282225
3 changed files with 148 additions and 0 deletions

View File

@ -5,9 +5,13 @@ import mineplex.core.common.util.UtilTime;
public enum UpdateType
{
MIN_64(3840000),
HOUR_01(3600000),
MIN_32(1920000),
MIN_30(1800000),
MIN_16(960000),
MIN_10(600000),
MIN_08(480000),
MIN_05(300000),
MIN_04(240000),
MIN_02(120000),
MIN_01(60000),

View File

@ -0,0 +1,142 @@
package mineplex.game.clans.clans;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.plugin.java.JavaPlugin;
import mineplex.core.MiniPlugin;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilPlayer;
import mineplex.core.common.util.UtilTextMiddle;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
public class ClanEnergyTracker extends MiniPlugin
{
private ClansManager _clans;
public ClanEnergyTracker(JavaPlugin plugin, ClansManager clans)
{
super("Clan Energy Tracker", plugin);
_clans = clans;
}
@EventHandler
public void onUpdate(UpdateEvent event)
{
if (event.getType() == UpdateType.MIN_05)
{
for (String clanName : _clans.getClanNameSet())
{
ClanInfo clan = _clans.getClan(clanName);
if (clan.isOnlineNow())
{
if (displayFor(clan, event.getType()))
{
for (Player player : clan.getOnlinePlayers())
{
UtilTextMiddle.display(C.cRed + "Urgent", "Clan Energy is almost depleted");
UtilPlayer.message(player, F.main("Energy", "To top up your Clan's Energy, head to the shop and go to the Energy Shop!"));
}
}
}
}
}
else if (event.getType() == UpdateType.MIN_10)
{
for (String clanName : _clans.getClanNameSet())
{
ClanInfo clan = _clans.getClan(clanName);
if (clan.isOnlineNow())
{
if (displayFor(clan, event.getType()))
{
for (Player player : clan.getOnlinePlayers())
{
UtilTextMiddle.display(C.cGold + "Warning", "Clan Energy is almost depleted");
UtilPlayer.message(player, F.main("Energy", "To top up your Clan's Energy, head to the shop and go to the Energy Shop!"));
}
}
}
}
}
else if (event.getType() == UpdateType.MIN_30)
{
for (String clanName : _clans.getClanNameSet())
{
ClanInfo clan = _clans.getClan(clanName);
if (clan.isOnlineNow())
{
if (displayFor(clan, event.getType()))
{
for (Player player : clan.getOnlinePlayers())
{
UtilTextMiddle.display(C.cYellow + "Energy", "Clan Energy is running low");
UtilPlayer.message(player, F.main("Energy", "To top up your Clan's Energy, head to the shop and go to the Energy Shop!"));
}
}
}
}
}
else if (event.getType() == UpdateType.HOUR_01)
{
for (String clanName : _clans.getClanNameSet())
{
ClanInfo clan = _clans.getClan(clanName);
if (clan.isOnlineNow())
{
if (displayFor(clan, event.getType()))
{
for (Player player : clan.getOnlinePlayers())
{
UtilTextMiddle.display(C.cYellow + "Energy", "Clan Energy is running low");
UtilPlayer.message(player, F.main("Energy", "To top up your Clan's Energy, head to the shop and go to the Energy Shop!"));
}
}
}
}
}
}
private boolean displayFor(ClanInfo clan, UpdateType type)
{
double energyRemainingSeconds = ((60000L * clan.getEnergy()) / (clan.getEnergyCostPerMinute())) / 1000.0D;
switch (type)
{
case MIN_05:
if (energyRemainingSeconds <= (1000 * 60 * 60))
{
return clan.isOnlineNow();
}
break;
case MIN_10:
if (energyRemainingSeconds <= (1000 * 60 * 60 * 4))
{
return clan.isOnlineNow();
}
break;
case MIN_30:
if (energyRemainingSeconds <= (1000 * 60 * 60 * 24))
{
return clan.isOnlineNow();
}
break;
case HOUR_01:
if (energyRemainingSeconds <= (1000 * 60 * 60 * 48))
{
return clan.isOnlineNow();
}
break;
}
return false;
}
}

View File

@ -235,6 +235,8 @@ public class ClansManager extends MiniClientPlugin<ClientClan> implements IRelat
new SafeLog(plugin, this);
new ObserverManager(plugin, _condition, this);
new ClanEnergyTracker(plugin, this);
new ClansAlphaManager(this, taskManager);
new Weapon(plugin, energy);