Guest User

Untitled

a guest
Nov 25th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.85 KB | None | 0 0
  1. public void saddleEntity(ItemStack stack, final EntityLiving entity) {
  2.         new Thread() {
  3.             public void run() {
  4.                 Float[] oldValues = new Float[5];
  5.                 Field[] fieldsToSet = new Field[5];
  6.                 Field[] declaredFields = EntityLiving.class.getDeclaredFields();
  7.                 int numChanged = 0;
  8.                 boolean jumpingSet = false;
  9.                 for (int i = declaredFields.length - 1; i >= 0; i--) {
  10.                     Field field = declaredFields[i];
  11.                     if (field.getType().equals(float.class) && Modifier.isProtected(field.getModifiers())) {
  12.                         field.setAccessible(true);
  13.                         try {
  14.                             oldValues[numChanged] = field.getFloat(entity);
  15.                             field.setFloat(entity, 0.0F);
  16.                             fieldsToSet[numChanged] = field;
  17.                         } catch (IllegalAccessException e) {
  18.                             e.printStackTrace();
  19.                         }
  20.                         numChanged++;
  21.                     } else if (!jumpingSet && field.getType().equals(boolean.class) && Modifier.isProtected(field.getModifiers())) {
  22.                         field.setAccessible(true);
  23.                         try {
  24.                             field.setBoolean(entity, false);
  25.                             jumpingSet = true;
  26.                         } catch (IllegalAccessException e) {
  27.                             e.printStackTrace();
  28.                         }
  29.                     }
  30.                     if (numChanged >= 5) break;
  31.                 }
  32.                 entity.isMultiplayerEntity = true;
  33.                 Thread hurtThread = new Thread() {
  34.                     public void run() {
  35.                         while (true) {
  36.                             entity.hurtTime = 5;
  37.                             entity.isMultiplayerEntity = true;
  38.                             try {
  39.                                 sleep(40);
  40.                             } catch (InterruptedException e) {
  41.                                 entity.hurtTime = 0;
  42.                                 break;
  43.                             }
  44.                         }
  45.                     }
  46.                 };
  47.                 hurtThread.start();
  48.                 try {
  49.                     sleep(3000);
  50.                 } catch (InterruptedException ignored) {
  51.                 }
  52.                 hurtThread.interrupt();
  53.                 entity.isMultiplayerEntity = false;
  54.                 for (int i = 0; i < fieldsToSet.length; i++) {
  55.                     if (oldValues[i] > 0F) try {
  56.                         fieldsToSet[i].setFloat(entity, oldValues[i]);
  57.                     } catch (IllegalAccessException e) {
  58.                         e.printStackTrace();
  59.                     }
  60.                 }
  61.             }
  62.         }.start();
  63.     }
Add Comment
Please, Sign In to add comment