/** * Gets the range an entity should be 'tracked' by players and visible in * the client. * * @param entity * @param defaultRange Default range defined by Mojang * @return */ public static int getEntityTrackingRange(Entity entity, int defaultRange) { SpigotWorldConfig config = entity.world.spigotConfig; int range = defaultRange; if ( entity instanceof EntityPlayer ) { range = config.playerTrackingRange; } else if ( entity.defaultActivationState || entity instanceof EntityGhast ) { range = defaultRange; } else if ( entity.activationType == 1 ) { range = config.monsterTrackingRange; } else if ( entity.activationType == 2 ) { range = config.animalTrackingRange; } else if ( entity instanceof EntityItemFrame || entity instanceof EntityPainting || entity instanceof EntityItem || entity instanceof EntityExperienceOrb ) { range = config.miscTrackingRange; } return Math.min( config.maxTrackingRange, range ); }
private void update() { EntityItemFrame old = this.getHandle(); WorldServer world = ((CraftWorld) getWorld()).getHandle(); BlockPosition position = old.getBlockPosition(); EnumDirection direction = old.getDirection(); ItemStack item = old.getItem() != null ? old.getItem().cloneItemStack() : null; old.die(); EntityItemFrame frame = new EntityItemFrame(world,position,direction); frame.setItem(item); world.addEntity(frame); this.entity = frame; }
/** * Gets the range an entity should be 'tracked' by players and visible in * the client. * * @param entity * @param defaultRange Default range defined by Mojang * @return */ public static int getEntityTrackingRange(Entity entity, int defaultRange) { SpigotWorldConfig config = entity.world.spigotConfig; if ( entity instanceof EntityPlayer ) { return config.playerTrackingRange; } else if ( entity.activationType == 1 ) { return config.monsterTrackingRange; } else if ( entity instanceof EntityGhast ) { if ( config.monsterTrackingRange > config.monsterActivationRange ) { return config.monsterTrackingRange; } else { return config.monsterActivationRange; } } else if ( entity.activationType == 2 ) { return config.animalTrackingRange; } else if ( entity instanceof EntityItemFrame || entity instanceof EntityPainting || entity instanceof EntityItem || entity instanceof EntityExperienceOrb ) { return config.miscTrackingRange; } else { return config.otherTrackingRange; } }
public CraftItemFrame(CraftServer server, EntityItemFrame entity) { super(server, entity); }
@Override public EntityItemFrame getHandle() { return (EntityItemFrame) entity; }