From 069394c9f5dd0ee441f02e801755a6404cb92e00 Mon Sep 17 00:00:00 2001 From: garbagemule Date: Sat, 22 Jun 2013 13:06:44 +0200 Subject: [PATCH] Add per-arena setting: display-timer-as-level --- resources/res/settings.yml | 1 + src/com/garbagemule/MobArena/ArenaImpl.java | 2 +- .../MobArena/autostart/AutoStartTimer.java | 16 +++++++++++++--- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/resources/res/settings.yml b/resources/res/settings.yml index 58e51fe..e690f09 100644 --- a/resources/res/settings.yml +++ b/resources/res/settings.yml @@ -36,3 +36,4 @@ auto-start-timer: 0 auto-ready: false use-class-chests: false display-waves-as-level: false +display-timer-as-level: false diff --git a/src/com/garbagemule/MobArena/ArenaImpl.java b/src/com/garbagemule/MobArena/ArenaImpl.java index 4dcf225..1e8e598 100644 --- a/src/com/garbagemule/MobArena/ArenaImpl.java +++ b/src/com/garbagemule/MobArena/ArenaImpl.java @@ -871,7 +871,7 @@ public class ArenaImpl implements Arena } rewardManager.grantRewards(p); - if (!settings.getBoolean("keep-exp", false)) { + if (lobbyPlayers.contains(p) || !settings.getBoolean("keep-exp", false)) { playerData.get(p).restoreData(); } else { diff --git a/src/com/garbagemule/MobArena/autostart/AutoStartTimer.java b/src/com/garbagemule/MobArena/autostart/AutoStartTimer.java index 4c49fe0..ece5976 100644 --- a/src/com/garbagemule/MobArena/autostart/AutoStartTimer.java +++ b/src/com/garbagemule/MobArena/autostart/AutoStartTimer.java @@ -1,5 +1,7 @@ package com.garbagemule.MobArena.autostart; +import org.bukkit.entity.Player; + import com.garbagemule.MobArena.Messenger; import com.garbagemule.MobArena.Msg; import com.garbagemule.MobArena.framework.Arena; @@ -9,11 +11,13 @@ public class AutoStartTimer { private int seconds; private Timer timer; private boolean started; + private boolean useLevels; public AutoStartTimer(Arena arena, int seconds) { this.arena = arena; this.seconds = seconds; this.started = false; + this.useLevels = arena.getSettings().getBoolean("display-timer-as-level", false); } /** @@ -93,9 +97,15 @@ public class AutoStartTimer { if (remaining <= 0) { arena.forceStart(); started = false; - } else { - // Warn at x seconds left - if (remaining == intervals[countdownIndex]) { + } else { + // If using levels, update 'em + if (useLevels) { + for (Player p : arena.getPlayersInLobby()) { + p.setLevel(remaining); + } + } + // Otherwise, warn at x seconds left + else if (remaining == intervals[countdownIndex]) { Messenger.tellAll(arena, Msg.ARENA_AUTO_START, "" + remaining); countdownIndex--; }