GrimoN

Untitled

Jun 10th, 2015
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. public class FreezeEff
  2. extends Effect{
  3. private Expression<EntityData<?>> players;
  4.  
  5.  
  6.  
  7. @SuppressWarnings("unchecked")
  8. @Override
  9. public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed, ParseResult parseResult) {
  10. this.players = (Expression<EntityData<?>>) exprs[0];
  11. return false;
  12. }
  13.  
  14. @Override
  15. public String toString(@Nullable Event e, boolean debug){
  16. return "freeze " + this.players.toString();
  17. }
  18.  
  19. @Override
  20. protected void execute(Event e) {
  21. if(this.players instanceof Player){
  22. freeze(e);
  23. }
  24. }
  25.  
  26. private void freeze(Event e) {
  27. if(!(e instanceof PlayerMoveEvent)){
  28. return;
  29. }
  30. for (Player p : (Player[])this.players.getArray(e)) {
  31. if (((e instanceof PlayerMoveEvent)) && (p.equals(((PlayerMoveEvent)e).getPlayer()))){
  32. PlayerMoveEvent evt = (PlayerMoveEvent)e;
  33. Location from = evt.getFrom();
  34. Location to = evt.getTo();
  35. double x=Math.floor(from.getX());
  36. double z=Math.floor(from.getZ());
  37. if(Math.floor(to.getX())!=x||Math.floor(to.getZ())!=z){
  38. x+=.5;
  39. z+=.5;
  40. p.teleport(new Location(from.getWorld(),x,from.getY(),z,from.getYaw(),from.getPitch()));
  41. }
  42. }
  43. }
  44. }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment