Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-20 21:40:06 +01:00
40 Zeilen
2.1 KiB
Diff
40 Zeilen
2.1 KiB
Diff
--- 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);
|
|
});
|
|
}
|