package tc.oc.pgm.kits;
import com.google.api.client.repackaged.com.google.common.base.Preconditions;
import tc.oc.pgm.match.MatchPlayer;
import javax.annotation.Nullable;
public class FlyKit extends Kit.Impl {
public static final float MIN = 0, MAX = 10;
public static final float BASE_INTERNAL_SPEED = 0.1f;
protected final boolean allowFlight;
protected final @Nullable Boolean flying;
protected final float flySpeedMultiplier;
public FlyKit(boolean allowFlight, @Nullable Boolean flying, float flySpeedMultiplier) {
Preconditions.checkArgument(flying == null || !(flying && !allowFlight), "Flying cannot be true if allow-flight is false");
this.allowFlight = allowFlight;
this.flying = flying;
this.flySpeedMultiplier = flySpeedMultiplier;
}
@Override
public void apply(MatchPlayer player, boolean force, ItemKitApplicator items) {
player.getBukkit().setAllowFlight(this.allowFlight);
if(this.flying != null) {
player.getBukkit().setFlying(this.flying);
}
player.getBukkit().setFlySpeed(BASE_INTERNAL_SPEED * flySpeedMultiplier);
}
@Override
public boolean isRemovable() {
return true;
}
@Override
public void remove(MatchPlayer player) {
if(allowFlight) {
player.getBukkit().setAllowFlight(false);
}
if(flying != null) {
player.getBukkit().setFlying(!flying);
}
if(flySpeedMultiplier != 1) {
player.getBukkit().setFlySpeed(BASE_INTERNAL_SPEED);
}
}
}