minecraft-src/net/minecraft/world/entity/ai/behavior/ResetProfession.java
2025-07-04 03:45:38 +03:00

25 lines
1.1 KiB
Java

package net.minecraft.world.entity.ai.behavior;
import net.minecraft.world.entity.ai.behavior.declarative.BehaviorBuilder;
import net.minecraft.world.entity.ai.memory.MemoryModuleType;
import net.minecraft.world.entity.npc.Villager;
import net.minecraft.world.entity.npc.VillagerData;
import net.minecraft.world.entity.npc.VillagerProfession;
public class ResetProfession {
public static BehaviorControl<Villager> create() {
return BehaviorBuilder.create(
instance -> instance.group(instance.absent(MemoryModuleType.JOB_SITE)).apply(instance, memoryAccessor -> (serverLevel, villager, l) -> {
VillagerData villagerData = villager.getVillagerData();
boolean bl = !villagerData.profession().is(VillagerProfession.NONE) && !villagerData.profession().is(VillagerProfession.NITWIT);
if (bl && villager.getVillagerXp() == 0 && villagerData.level() <= 1) {
villager.setVillagerData(villager.getVillagerData().withProfession(serverLevel.registryAccess(), VillagerProfession.NONE));
villager.refreshBrain(serverLevel);
return true;
} else {
return false;
}
})
);
}
}