Added Cooldown & MaxDuration to Flight (#683)

* Added Cooldown & MaxDuration to Flight

* Added Cooldown & MaxDuration to Flight
This commit is contained in:
Sobki 2017-01-07 10:20:30 +10:00 committed by Christopher Martin
parent 2bac32236a
commit fb70ed6f59
2 changed files with 11 additions and 1 deletions

View file

@ -19,11 +19,13 @@ public class AirFlight extends FlightAbility {
private static final Map<String, Integer> HITS = new ConcurrentHashMap<>(); private static final Map<String, Integer> HITS = new ConcurrentHashMap<>();
private static final Map<String, PlayerFlyData> HOVERING = new ConcurrentHashMap<>(); private static final Map<String, PlayerFlyData> HOVERING = new ConcurrentHashMap<>();
private long cooldown;
private boolean firstProgressIteration; private boolean firstProgressIteration;
private int maxHitsBeforeRemoval; private int maxHitsBeforeRemoval;
private double speed; private double speed;
private Flight flight; private Flight flight;
private double hoverY; private double hoverY;
private double maxDuration;
public AirFlight(Player player) { public AirFlight(Player player) {
super(player); super(player);
@ -31,8 +33,10 @@ public class AirFlight extends FlightAbility {
if (CoreAbility.getAbility(player, AirFlight.class) != null) if (CoreAbility.getAbility(player, AirFlight.class) != null)
return; return;
this.cooldown = getConfig().getInt("Abilities.Air.Flight.Cooldown");
this.maxHitsBeforeRemoval = getConfig().getInt("Abilities.Air.Flight.MaxHits"); this.maxHitsBeforeRemoval = getConfig().getInt("Abilities.Air.Flight.MaxHits");
this.speed = getConfig().getDouble("Abilities.Air.Flight.Speed"); this.speed = getConfig().getDouble("Abilities.Air.Flight.Speed");
this.maxDuration = getConfig().getDouble("Abilities.Air.Flight.MaxDuration");
this.firstProgressIteration = true; this.firstProgressIteration = true;
hoverY = player.getLocation().getBlockY(); hoverY = player.getLocation().getBlockY();
start(); start();
@ -106,6 +110,10 @@ public class AirFlight extends FlightAbility {
} else if (player.getLocation().subtract(0, 0.5, 0).getBlock().getType() != Material.AIR) { } else if (player.getLocation().subtract(0, 0.5, 0).getBlock().getType() != Material.AIR) {
remove(); remove();
return; return;
} else if (System.currentTimeMillis() - getStartTime() > maxDuration && maxDuration > 0) {
bPlayer.addCooldown(this);
remove();
return;
} }
player.setAllowFlight(true); player.setAllowFlight(true);
@ -158,7 +166,7 @@ public class AirFlight extends FlightAbility {
@Override @Override
public long getCooldown() { public long getCooldown() {
return 0; return cooldown;
} }
@Override @Override

View file

@ -612,8 +612,10 @@ public class ConfigManager {
config.addDefault("Abilities.Air.Flight.Enabled", true); config.addDefault("Abilities.Air.Flight.Enabled", true);
config.addDefault("Abilities.Air.Flight.HoverEnabled", true); config.addDefault("Abilities.Air.Flight.HoverEnabled", true);
config.addDefault("Abilities.Air.Flight.Cooldown", 5000);
config.addDefault("Abilities.Air.Flight.Speed", 1); config.addDefault("Abilities.Air.Flight.Speed", 1);
config.addDefault("Abilities.Air.Flight.MaxHits", 4); config.addDefault("Abilities.Air.Flight.MaxHits", 4);
config.addDefault("Abilities.Air.Flight.MaxDuration", 0);
config.addDefault("Abilities.Air.Suffocate.Enabled", true); config.addDefault("Abilities.Air.Suffocate.Enabled", true);
config.addDefault("Abilities.Air.Suffocate.ChargeTime", 500); config.addDefault("Abilities.Air.Suffocate.ChargeTime", 500);