Search in sources :

Example 1 with BattleSessionPreStartEvent

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();
            }
        }
    }
}
Also used : BattleSession(com.gmail.goosius.siegewar.objects.BattleSession) BattleSessionPreStartEvent(com.gmail.goosius.siegewar.events.BattleSessionPreStartEvent)

Aggregations

BattleSessionPreStartEvent (com.gmail.goosius.siegewar.events.BattleSessionPreStartEvent)1 BattleSession (com.gmail.goosius.siegewar.objects.BattleSession)1