34 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package net.minecraft.util.datafix.fixes;
 | |
| 
 | |
| import com.mojang.datafixers.DSL;
 | |
| import com.mojang.datafixers.Typed;
 | |
| import com.mojang.datafixers.schemas.Schema;
 | |
| import com.mojang.serialization.Dynamic;
 | |
| 
 | |
| public class VillagerFollowRangeFix extends NamedEntityFix {
 | |
| 	private static final double ORIGINAL_VALUE = 16.0;
 | |
| 	private static final double NEW_BASE_VALUE = 48.0;
 | |
| 
 | |
| 	public VillagerFollowRangeFix(Schema outputSchema) {
 | |
| 		super(outputSchema, false, "Villager Follow Range Fix", References.ENTITY, "minecraft:villager");
 | |
| 	}
 | |
| 
 | |
| 	@Override
 | |
| 	protected Typed<?> fix(Typed<?> typed) {
 | |
| 		return typed.update(DSL.remainderFinder(), VillagerFollowRangeFix::fixValue);
 | |
| 	}
 | |
| 
 | |
| 	private static Dynamic<?> fixValue(Dynamic<?> dynamic) {
 | |
| 		return dynamic.update(
 | |
| 			"Attributes",
 | |
| 			dynamic2 -> dynamic.createList(
 | |
| 				dynamic2.asStream()
 | |
| 					.map(
 | |
| 						dynamicxx -> dynamicxx.get("Name").asString("").equals("generic.follow_range") && dynamicxx.get("Base").asDouble(0.0) == 16.0
 | |
| 							? dynamicxx.set("Base", dynamicxx.createDouble(48.0))
 | |
| 							: dynamicxx
 | |
| 					)
 | |
| 			)
 | |
| 		);
 | |
| 	}
 | |
| }
 |