package in.twizmwaz.cardinal.module.modules.appliedRegion.type;
import in.twizmwaz.cardinal.module.modules.appliedRegion.AppliedRegion;
import in.twizmwaz.cardinal.module.modules.filter.FilterModule;
import in.twizmwaz.cardinal.module.modules.filter.FilterState;
import in.twizmwaz.cardinal.module.modules.regions.RegionModule;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.util.Vector;
public class VelocityRegion extends AppliedRegion {
public final Vector velocity;
public VelocityRegion(RegionModule region, FilterModule filter, String message, Vector velocity) {
super(region, filter, message);
this.velocity = velocity;
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerMove(PlayerMoveEvent event) {
if (region.contains(event.getTo().toVector()) && !region.contains(event.getFrom().toVector())
&& (filter == null || filter.evaluate(event.getPlayer(), event).equals(FilterState.ALLOW))) {
event.getPlayer().setVelocity(velocity);
}
}
}