--- a/net/minecraft/server/BehaviorCareer.java
+++ b/net/minecraft/server/BehaviorCareer.java
@@ -2,6 +2,11 @@
 
 import com.google.common.collect.ImmutableMap;
 import java.util.Optional;
+// 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> {
 
@@ -19,7 +24,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();
@@ -31,7 +36,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);
             });
         }