public static WrappedDataWatcher getEntityWatcher(Entity entity) throws FieldAccessException {
    if (ENTITY_DATA_FIELD == null)
      ENTITY_DATA_FIELD = FuzzyReflection.fromClass(MinecraftReflection.getEntityClass(), true).
        getFieldByType("datawatcher", MinecraftReflection.getDataWatcherClass());
    BukkitUnwrapper unwrapper = new BukkitUnwrapper();
    
    try {
      Object nsmWatcher = FieldUtils.readField(ENTITY_DATA_FIELD, unwrapper.unwrapItem(entity), true);
      
      if (nsmWatcher != null) 
        return new WrappedDataWatcher(nsmWatcher);
      else 
        return null;