use of com.gmail.goosius.siegewar.events.BattleSessionPreStartEvent in project SiegeWar by TownyAdvanced.
the class SiegeWarBattleSessionUtil method evaluateBattleSessions.
public static void evaluateBattleSessions() {
BattleSession battleSession = BattleSession.getBattleSession();
if (battleSession.isActive()) {
if (System.currentTimeMillis() > battleSession.getScheduledEndTime()) {
// Finish battle session
endBattleSession();
} else {
// Update battle session boss bars.
BossBarUtil.updateBattleSessionBossBar();
}
} else {
// If there is no battle session scheduled, attempt to schedule session now.
if (battleSession.getScheduledStartTime() == null) {
scheduleNextBattleSession();
}
// If a battle session is scheduled, start it if we hit the scheduled time
if (battleSession.getScheduledStartTime() != null) {
if (System.currentTimeMillis() > battleSession.getScheduledStartTime()) {
// Send up the Bukkit event for other plugins to listen for and potentially cancel.
BattleSessionPreStartEvent event = new BattleSessionPreStartEvent();
Bukkit.getPluginManager().callEvent(event);
if (event.isCancelled()) {
// Null the next scheduled time, so it can be reset on the next ShortTime.
battleSession.setScheduledStartTime(null);
// Broadcast a cancelled BatterlSession message.
Messaging.sendGlobalMessage(event.getCancellationMsg());
return;
}
// Activate the session
startBattleSession();
}
}
}
}
Aggregations