Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class FreezeEff
- extends Effect{
- private Expression<EntityData<?>> players;
- @SuppressWarnings("unchecked")
- @Override
- public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed, ParseResult parseResult) {
- this.players = (Expression<EntityData<?>>) exprs[0];
- return false;
- }
- @Override
- public String toString(@Nullable Event e, boolean debug){
- return "freeze " + this.players.toString();
- }
- @Override
- protected void execute(Event e) {
- if(this.players instanceof Player){
- freeze(e);
- }
- }
- private void freeze(Event e) {
- if(!(e instanceof PlayerMoveEvent)){
- return;
- }
- for (Player p : (Player[])this.players.getArray(e)) {
- if (((e instanceof PlayerMoveEvent)) && (p.equals(((PlayerMoveEvent)e).getPlayer()))){
- PlayerMoveEvent evt = (PlayerMoveEvent)e;
- Location from = evt.getFrom();
- Location to = evt.getTo();
- double x=Math.floor(from.getX());
- double z=Math.floor(from.getZ());
- if(Math.floor(to.getX())!=x||Math.floor(to.getZ())!=z){
- x+=.5;
- z+=.5;
- p.teleport(new Location(from.getWorld(),x,from.getY(),z,from.getYaw(),from.getPitch()));
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment