--- a/net/minecraft/world/entity/ai/behavior/BehaviorCareer.java
+++ b/net/minecraft/world/entity/ai/behavior/BehaviorCareer.java
@@ -13,6 +13,12 @@
 import net.minecraft.world.entity.npc.EntityVillager;
 import net.minecraft.world.entity.npc.VillagerProfession;
 
+// CraftBukkit start
+import org.bukkit.craftbukkit.entity.CraftVillager;
+import org.bukkit.craftbukkit.event.CraftEventFactory;
+import org.bukkit.event.entity.VillagerCareerChangeEvent;
+// CraftBukkit end
+
 public class BehaviorCareer extends Behavior<EntityVillager> {
 
     public BehaviorCareer() {
@@ -29,7 +35,7 @@
         GlobalPos globalpos = (GlobalPos) entityvillager.getBehaviorController().getMemory(MemoryModuleType.POTENTIAL_JOB_SITE).get();
 
         entityvillager.getBehaviorController().removeMemory(MemoryModuleType.POTENTIAL_JOB_SITE);
-        entityvillager.getBehaviorController().setMemory(MemoryModuleType.JOB_SITE, (Object) globalpos);
+        entityvillager.getBehaviorController().setMemory(MemoryModuleType.JOB_SITE, globalpos); // CraftBukkit - decompile error
         worldserver.broadcastEntityEffect(entityvillager, (byte) 14);
         if (entityvillager.getVillagerData().getProfession() == VillagerProfession.NONE) {
             MinecraftServer minecraftserver = worldserver.getMinecraftServer();
@@ -41,7 +47,14 @@
                     return villagerprofession.b() == villageplacetype;
                 }).findFirst();
             }).ifPresent((villagerprofession) -> {
-                entityvillager.setVillagerData(entityvillager.getVillagerData().withProfession(villagerprofession));
+                // CraftBukkit start - Fire VillagerCareerChangeEvent where Villager gets employed
+                VillagerCareerChangeEvent event = CraftEventFactory.callVillagerCareerChangeEvent(entityvillager, CraftVillager.nmsToBukkitProfession(villagerprofession), VillagerCareerChangeEvent.ChangeReason.EMPLOYED);
+                if (event.isCancelled()) {
+                    return;
+                }
+
+                entityvillager.setVillagerData(entityvillager.getVillagerData().withProfession(CraftVillager.bukkitToNmsProfession(event.getProfession())));
+                // CraftBukkit end
                 entityvillager.c(worldserver);
             });
         }
