16 lines
		
	
	
	
		
			796 B
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			16 lines
		
	
	
	
		
			796 B
		
	
	
	
		
			Java
		
	
	
	
	
	
| package net.minecraft.advancements;
 | |
| 
 | |
| import com.mojang.serialization.Codec;
 | |
| import com.mojang.serialization.MapCodec;
 | |
| import net.minecraft.util.ExtraCodecs;
 | |
| 
 | |
| public record Criterion<T extends CriterionTriggerInstance>(CriterionTrigger<T> trigger, T triggerInstance) {
 | |
| 	private static final MapCodec<Criterion<?>> MAP_CODEC = ExtraCodecs.dispatchOptionalValue(
 | |
| 		"trigger", "conditions", CriteriaTriggers.CODEC, Criterion::trigger, Criterion::criterionCodec
 | |
| 	);
 | |
| 	public static final Codec<Criterion<?>> CODEC = MAP_CODEC.codec();
 | |
| 
 | |
| 	private static <T extends CriterionTriggerInstance> Codec<Criterion<T>> criterionCodec(CriterionTrigger<T> trigger) {
 | |
| 		return trigger.codec().xmap(criterionTriggerInstance -> new Criterion<>(trigger, (T)criterionTriggerInstance), Criterion::triggerInstance);
 | |
| 	}
 | |
| }
 |