Updated Upstream (CraftBukkit)

Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

CraftBukkit Changes:
c3a22e78 SPIGOT-6032: Add best effort target events for new entities
Dieser Commit ist enthalten in:
Aikar 2020-07-28 19:59:44 -04:00
Ursprung c0547a6cbf
Commit baf1fabe9e
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 401ADFC9891FAAFE
2 geänderte Dateien mit 3 neuen und 39 gelöschten Zeilen

Datei anzeigen

@ -6,10 +6,10 @@ Subject: [PATCH] added EntityTargetLivingEntityEvent to 1.16 mobs
1.16 added a different behavior system for the new mobs
diff --git a/src/main/java/net/minecraft/server/BehaviorAttackTargetForget.java b/src/main/java/net/minecraft/server/BehaviorAttackTargetForget.java
index d5cceb0672c7724b9d53dd7bf2d323e667c8617c..2a0e951618e45c3e4e171cbb4d987004ae354803 100644
index 254a4afeed2148fc1a8d698c90ba0b98eda01687..643e996b87acd95d6fecf9a3883a0744f4d223a9 100644
--- a/src/main/java/net/minecraft/server/BehaviorAttackTargetForget.java
+++ b/src/main/java/net/minecraft/server/BehaviorAttackTargetForget.java
@@ -21,15 +21,22 @@ public class BehaviorAttackTargetForget<E extends EntityInsentient> extends Beha
@@ -26,15 +26,22 @@ public class BehaviorAttackTargetForget<E extends EntityInsentient> extends Beha
protected void a(WorldServer worldserver, E e0, long i) {
if (a((EntityLiving) e0)) {
@ -37,39 +37,3 @@ index d5cceb0672c7724b9d53dd7bf2d323e667c8617c..2a0e951618e45c3e4e171cbb4d987004
}
}
diff --git a/src/main/java/net/minecraft/server/BehaviorAttackTargetSet.java b/src/main/java/net/minecraft/server/BehaviorAttackTargetSet.java
index 65e746859bede33bc59fd17b4c3defe911df993f..178da19fdc5df330d4128feb831e8fa6a9a5cdc1 100644
--- a/src/main/java/net/minecraft/server/BehaviorAttackTargetSet.java
+++ b/src/main/java/net/minecraft/server/BehaviorAttackTargetSet.java
@@ -26,20 +26,27 @@ public class BehaviorAttackTargetSet<E extends EntityInsentient> extends Behavio
if (!this.b.test(e0)) {
return false;
} else {
- Optional<? extends EntityLiving> optional = (Optional) this.c.apply(e0);
+ Optional<? extends EntityLiving> optional = (Optional<? extends EntityLiving>) this.c.apply(e0); // Paper - decompile error
return optional.isPresent() && ((EntityLiving) optional.get()).isAlive();
}
}
protected void a(WorldServer worldserver, E e0, long i) {
- ((Optional) this.c.apply(e0)).ifPresent((entityliving) -> {
+ ((Optional<? extends EntityLiving>) this.c.apply(e0)).ifPresent((entityliving) -> { // Paper - decompile error
this.a(e0, entityliving);
});
}
private void a(E e0, EntityLiving entityliving) {
- e0.getBehaviorController().setMemory(MemoryModuleType.ATTACK_TARGET, (Object) entityliving);
- e0.getBehaviorController().removeMemory(MemoryModuleType.CANT_REACH_WALK_TARGET_SINCE);
+ // Paper start
+ org.bukkit.event.entity.EntityTargetEvent.TargetReason reason = entityliving instanceof EntityHuman ? org.bukkit.event.entity.EntityTargetEvent.TargetReason.CLOSEST_PLAYER : org.bukkit.event.entity.EntityTargetEvent.TargetReason.CLOSEST_ENTITY;
+ org.bukkit.event.entity.EntityTargetLivingEntityEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTargetLivingEvent(e0, entityliving, org.bukkit.event.entity.EntityTargetEvent.TargetReason.CLOSEST_ENTITY);
+ if (!event.isCancelled()) {
+ EntityLiving target = event.getTarget() != null ? ((org.bukkit.craftbukkit.entity.CraftLivingEntity) event.getTarget()).getHandle() : null;
+ e0.getBehaviorController().setMemory(MemoryModuleType.ATTACK_TARGET, target); // Paper - decompile error
+ e0.getBehaviorController().removeMemory(MemoryModuleType.CANT_REACH_WALK_TARGET_SINCE);
+ }
+ // Paper end
}
}

@ -1 +1 @@
Subproject commit 52fd29c0dca28c0e7d75fc462bd5b6f59a42a85f
Subproject commit c3a22e7850f7b6c41163676a154b22c61952b2a9