2015-01-20 00:59:15 +01:00
|
|
|
package com.massivecraft.factions.util;
|
|
|
|
|
|
|
|
import com.massivecraft.factions.FPlayer;
|
|
|
|
import com.massivecraft.factions.P;
|
|
|
|
import com.massivecraft.factions.zcore.util.TL;
|
|
|
|
|
|
|
|
public class WarmUpUtil {
|
|
|
|
|
|
|
|
/**
|
2015-05-13 06:17:22 +02:00
|
|
|
* @param player The player to notify.
|
2015-01-20 00:59:15 +01:00
|
|
|
* @param translationKey The translation key used for notifying.
|
2015-05-13 06:17:22 +02:00
|
|
|
* @param action The action, inserted into the notification message.
|
|
|
|
* @param runnable The task to run after the delay. If the delay is 0, the task is instantly ran.
|
|
|
|
* @param delay The time used, in seconds, for the delay.
|
|
|
|
* <p/>
|
|
|
|
* note: for translations: %s = action, %d = delay
|
2015-01-20 00:59:15 +01:00
|
|
|
*/
|
2015-05-25 06:42:31 +02:00
|
|
|
public static void process(final FPlayer player, Warmup warmup, TL translationKey, String action, final Runnable runnable, long delay) {
|
2015-01-20 00:59:15 +01:00
|
|
|
if (delay > 0) {
|
2015-05-25 06:42:31 +02:00
|
|
|
if (player.isWarmingUp()) {
|
|
|
|
player.msg(TL.WARMUPS_ALREADY);
|
|
|
|
} else {
|
|
|
|
player.msg(translationKey.format(action, delay));
|
|
|
|
int id = P.p.getServer().getScheduler().runTaskLater(P.p, new Runnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
player.stopWarmup();
|
|
|
|
runnable.run();
|
|
|
|
}
|
|
|
|
}, delay * 20).getTaskId();
|
|
|
|
player.addWarmup(warmup, id);
|
|
|
|
}
|
2015-01-20 00:59:15 +01:00
|
|
|
} else {
|
|
|
|
runnable.run();
|
|
|
|
}
|
|
|
|
}
|
2015-05-25 06:42:31 +02:00
|
|
|
|
|
|
|
public enum Warmup {
|
2018-03-27 15:17:55 +02:00
|
|
|
HOME, WARP, FLIGHT, BANNER, CHECKPOINT;
|
2015-05-25 06:42:31 +02:00
|
|
|
}
|
|
|
|
|
2015-01-20 00:59:15 +01:00
|
|
|
}
|