@@ -37,18 +37,23 @@ public class ListElementInfo<V> implements IListElementInfo<V> {
3737	private  final  List <String > modIds ;
3838	private  final  List <String > modNames ;
3939	private  final  ResourceLocation  resourceLocation ;
40- 	private  final  int  createdIndex ;
4140
4241	@ Nullable 
4342	public  static  <V > IListElementInfo <V > create (ITypedIngredient <V > value , IIngredientManager  ingredientManager , IModIdHelper  modIdHelper ) {
4443		int  createdIndex  = elementCount ++;
45- 		IIngredientHelper <V > ingredientHelper  = ingredientManager .getIngredientHelper (value .getType ());
4644		ListElement <V > element  = new  ListElement <>(value , createdIndex );
45+ 		return  createFromElement (element , ingredientManager , modIdHelper );
46+ 	}
47+ 
48+ 	@ Nullable 
49+ 	public  static  <V > IListElementInfo <V > createFromElement (IListElement <V > element , IIngredientManager  ingredientManager , IModIdHelper  modIdHelper ) {
4750		try  {
48- 			return  new  ListElementInfo <>(element , ingredientHelper ,  ingredientManager , modIdHelper ,  createdIndex );
51+ 			return  new  ListElementInfo <>(element , ingredientManager , modIdHelper );
4952		} catch  (RuntimeException  e ) {
5053			try  {
51- 				String  ingredientInfo  = ingredientHelper .getErrorInfo (value .getIngredient ());
54+ 				ITypedIngredient <V > typedIngredient  = element .getTypedIngredient ();
55+ 				IIngredientHelper <V > ingredientHelper  = ingredientManager .getIngredientHelper (typedIngredient .getType ());
56+ 				String  ingredientInfo  = ingredientHelper .getErrorInfo (typedIngredient .getIngredient ());
5257				LOGGER .warn ("Found a broken ingredient {}" , ingredientInfo , e );
5358			} catch  (RuntimeException  e2 ) {
5459				LOGGER .warn ("Found a broken ingredient." , e2 );
@@ -57,12 +62,11 @@ public static <V> IListElementInfo<V> create(ITypedIngredient<V> value, IIngredi
5762		}
5863	}
5964
60- 	protected  ListElementInfo (IListElement <V > element , IIngredientHelper <V > ingredientHelper , IIngredientManager  ingredientManager , IModIdHelper  modIdHelper , int  createdIndex ) {
61- 		this .createdIndex  = createdIndex ;
62- 
65+ 	protected  ListElementInfo (IListElement <V > element , IIngredientManager  ingredientManager , IModIdHelper  modIdHelper ) {
6366		this .element  = element ;
6467		ITypedIngredient <V > value  = element .getTypedIngredient ();
6568		V  ingredient  = value .getIngredient ();
69+ 		IIngredientHelper <V > ingredientHelper  = ingredientManager .getIngredientHelper (value .getType ());
6670		this .resourceLocation  = ingredientHelper .getResourceLocation (ingredient );
6771		String  displayModId  = ingredientHelper .getDisplayModId (ingredient );
6872		String  modId  = this .resourceLocation .getNamespace ();
@@ -193,6 +197,6 @@ public ITypedIngredient<V> getTypedIngredient() {
193197
194198	@ Override 
195199	public  int  getCreatedIndex () {
196- 		return  createdIndex ;
200+ 		return  element . getCreatedIndex () ;
197201	}
198202}
0 commit comments