public static boolean addToWorld(World world, Entity entity, CreatureSpawnEvent.SpawnReason reason) { try { Object worldHandle = getHandle(world); Object entityHandle = getHandle(entity); class_World_addEntityMethod.invoke(worldHandle, entityHandle, reason); } catch (Throwable ex) { ex.printStackTrace(); return false; } return true; }
public static void setGravity(Entity entity, boolean gravity) { if (class_Entity_setNoGravity == null) return; try { Object handle = getHandle(entity); class_Entity_setNoGravity.invoke(handle, !gravity); } catch (Exception ex) { ex.printStackTrace(); } }
public static void setDisabledSlots(ArmorStand armorStand, int disabledSlots) { if (class_EntityArmorStand_disabledSlotsField == null) return; try { Object handle = getHandle(armorStand); class_EntityArmorStand_disabledSlotsField.set(handle, disabledSlots); } catch (Exception ex) { ex.printStackTrace(); } }
public static void setYawPitch(Entity entity, float yaw, float pitch) { try { Object handle = getHandle(entity); class_Entity_setYawPitchMethod.invoke(handle, yaw, pitch); } catch (Exception ex) { ex.printStackTrace(); } }
public static void setLocation(Entity entity, double x, double y, double z, float yaw, float pitch) { try { Object handle = getHandle(entity); class_Entity_setLocationMethod.invoke(handle, x, y, z, yaw, pitch); } catch (Exception ex) { ex.printStackTrace(); } }
public static void setDamage(Projectile projectile, double damage) { if (class_EntityArrow_damageField == null) return; try { Object handle = getHandle(projectile); class_EntityArrow_damageField.set(handle, damage); } catch (Exception ex) { ex.printStackTrace();; } }
public static boolean isSilent(Entity entity) { if (class_Entity_isSilentMethod == null) return false; try { Object handle = getHandle(entity); return (boolean)class_Entity_isSilentMethod.invoke(handle); } catch (Exception ex) { ex.printStackTrace(); } return false; }
public static boolean isJumping(LivingEntity entity) { if (class_Entity_jumpingField == null) return false; try { return (boolean)class_Entity_jumpingField.get(getHandle(entity)); } catch (Exception ex) { ex.printStackTrace(); } return false; }
public static void setSilent(Entity entity, boolean flag) { if (class_Entity_setSilentMethod == null) return; try { Object handle = getHandle(entity); class_Entity_setSilentMethod.invoke(handle, flag); } catch (Exception ex) { ex.printStackTrace(); } }
public static String getResourcePack(Server server) { String rp = null; try { Object minecraftServer = getHandle(server); if (minecraftServer != null) { rp = (String)class_MinecraftServer_getResourcePackMethod.invoke(minecraftServer); } } catch (Exception ex) { ex.printStackTrace(); } return rp; }
public static float getStrafeMovement(LivingEntity entity) { if (class_Entity_moveStrafingField == null) return 0.0f; try { return (float)class_Entity_moveStrafingField.get(getHandle(entity)); } catch (Exception ex) { ex.printStackTrace(); } return 0.0f; }
public static void setInvulnerable(Entity entity, boolean flag) { try { Object handle = getHandle(entity); class_Entity_invulnerableField.set(handle, flag); } catch (Exception ex) { ex.printStackTrace(); } }
public static int getDisabledSlots(ArmorStand armorStand) { if (class_EntityArmorStand_disabledSlotsField == null) return 0; try { Object handle = getHandle(armorStand); return (int)class_EntityArmorStand_disabledSlotsField.get(handle); } catch (Exception ex) { ex.printStackTrace(); } return 0; }
public static void addFlightExemption(Player player, int ticks) { if (class_PlayerConnection_floatCountField == null) return; try { Object handle = getHandle(player); Object connection = class_EntityPlayer_playerConnectionField.get(handle); class_PlayerConnection_floatCountField.set(connection, -ticks); } catch (Exception ex) { ex.printStackTrace(); } }
public static void setTNTSource(TNTPrimed tnt, LivingEntity source) { try { Object tntHandle = getHandle(tnt); Object sourceHandle = getHandle(source); class_EntityTNTPrimed_source.set(tntHandle, sourceHandle); } catch (Exception ex) { Bukkit.getLogger().log(Level.WARNING, "Unable to set TNT source", ex); } }
public static void setFallingBlockDamage(FallingBlock entity, float fallHurtAmount, int fallHurtMax) { Object entityHandle = getHandle(entity); if (entityHandle == null) return; try { class_EntityFallingBlock_hurtEntitiesField.set(entityHandle, true); class_EntityFallingBlock_fallHurtAmountField.set(entityHandle, fallHurtAmount); class_EntityFallingBlock_fallHurtMaxField.set(entityHandle, fallHurtMax); } catch (Exception ex) { ex.printStackTrace(); } }
public static boolean setResourcePack(Player player, String rp, byte[] hash) { // TODO: Player.setResourcePack in 1.11+ try { String hashString = BaseEncoding.base16().lowerCase().encode(hash); class_EntityPlayer_setResourcePackMethod.invoke(getHandle(player), rp, hashString); } catch (Exception ex) { ex.printStackTrace(); return false; } return true; }
public static void ageItem(Item item, int ticksToAge) { try { Class<?> itemClass = fixBukkitClass("net.minecraft.server.EntityItem"); Object handle = getHandle(item); Field ageField = itemClass.getDeclaredField("age"); ageField.setAccessible(true); ageField.set(handle, ticksToAge); } catch (Exception ex) { ex.printStackTrace(); } }
public static void swingOffhand(Player sendToPlayer, Entity entity) { try { Object packet = class_PacketPlayOutAnimation_Constructor.newInstance(getHandle(entity), 3); sendPacket(sendToPlayer, packet); } catch (Exception ex) { ex.printStackTrace(); } }
public static void setEntityMotion(Entity entity, Vector motion) { try { Object handle = getHandle(entity); class_Entity_motXField.set(handle, motion.getX()); class_Entity_motYField.set(handle, motion.getY()); class_Entity_motZField.set(handle, motion.getZ()); } catch (Exception ex) { ex.printStackTrace(); } }