18c3716c49
This enables us a fast reference to the entities current chunk instead of having to look it up by hashmap lookups. We also store counts by type to further enable other performance optimizations in later patches.
33 lines
1.5 KiB
Diff
33 lines
1.5 KiB
Diff
From 81e31ca23b57f80911c332ec7fe349b793807ff7 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Mon, 18 Jun 2018 22:19:36 -0400
|
|
Subject: [PATCH] Fire EntityShootBowEvent for Illusioner
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
|
|
index e03650448..ad81bd059 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
|
|
@@ -123,8 +123,18 @@ public class EntityIllagerIllusioner extends EntityIllagerWizard implements IRan
|
|
double d3 = (double) MathHelper.sqrt(d0 * d0 + d2 * d2);
|
|
|
|
entityarrow.shoot(d0, d1 + d3 * 0.20000000298023224D, d2, 1.6F, (float) (14 - this.world.getDifficulty().a() * 4));
|
|
+ // Paper start
|
|
+ org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(this, this.getItemInMainHand(), this.getItemInOffHand(), entityarrow,0.8F);
|
|
+ if (event.isCancelled()) {
|
|
+ event.getProjectile().remove();
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ if (event.getProjectile() == entityarrow.getBukkitEntity()) {
|
|
+ this.world.addEntity(entityarrow);
|
|
+ }
|
|
this.a(SoundEffects.gW, 1.0F, 1.0F / (this.getRandom().nextFloat() * 0.4F + 0.8F));
|
|
- this.world.addEntity(entityarrow);
|
|
+ // Paper end
|
|
}
|
|
|
|
protected EntityArrow r(float f) {
|
|
--
|
|
2.18.0
|
|
|