@Override
 public void addMerchantRecipe(MC_MerchantRecipe recipe) {
   Field field = ReflectionAPI.getField(this.villager.getClass(), "br", true);
   MerchantRecipeList recipes = (MerchantRecipeList) ReflectionAPI.getValue(this.villager, field);
   recipes.add((MerchantRecipe) recipe.toMerchantRecipeNms());
   ReflectionAPI.setValue(this.villager, field, recipes);
 }
 @Override
 public void setMerchantRecipe(List<MC_MerchantRecipe> recipes) {
   MerchantRecipeList nms_recipes = new MerchantRecipeList();
   for (MC_MerchantRecipe recipe : recipes) {
     nms_recipes.add((MerchantRecipe) recipe.toMerchantRecipeNms());
   }
   ReflectionAPI.setValue(
       this.villager, ReflectionAPI.getField(this.villager.getClass(), "br", true), nms_recipes);
 }
 @Override
 public void setMerchantRecipe(int index, MC_MerchantRecipe recipe) {
   Field field = ReflectionAPI.getField(this.villager.getClass(), "br", true);
   MerchantRecipeList recipes = (MerchantRecipeList) ReflectionAPI.getValue(this.villager, field);
   if (index > recipes.size()) {
     recipes.set(recipes.size(), (MerchantRecipe) recipe.toMerchantRecipeNms());
   } else {
     recipes.set(index, (MerchantRecipe) recipe.toMerchantRecipeNms());
   }
   ReflectionAPI.setValue(this.villager, field, recipes);
 }
 @Override
 public List<MC_MerchantRecipe> getMerchantRecipeList() {
   List<MC_MerchantRecipe> recipes = new ArrayList<MC_MerchantRecipe>();
   MerchantRecipeList nms_recipes =
       (MerchantRecipeList)
           ReflectionAPI.getValue(
               this.villager, ReflectionAPI.getField(this.villager.getClass(), "br", true));
   MerchantRecipe recipe;
   for (int i = 0; i < nms_recipes.size(); i++) {
     recipe = (MerchantRecipe) nms_recipes.get(i);
     try {
       recipes.add(new MC_MerchantRecipe(recipe));
     } catch (Exception e) {
       e.printStackTrace();
     }
   }
   return recipes;
 }