aboutsummaryrefslogtreecommitdiffhomepage
path: root/patch-remap/og/net/minecraft/world/entity/projectile/EntityShulkerBullet.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patch-remap/og/net/minecraft/world/entity/projectile/EntityShulkerBullet.patch')
-rw-r--r--patch-remap/og/net/minecraft/world/entity/projectile/EntityShulkerBullet.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/patch-remap/og/net/minecraft/world/entity/projectile/EntityShulkerBullet.patch b/patch-remap/og/net/minecraft/world/entity/projectile/EntityShulkerBullet.patch
new file mode 100644
index 0000000000..cdcf10b224
--- /dev/null
+++ b/patch-remap/og/net/minecraft/world/entity/projectile/EntityShulkerBullet.patch
@@ -0,0 +1,53 @@
+--- a/net/minecraft/world/entity/projectile/EntityShulkerBullet.java
++++ b/net/minecraft/world/entity/projectile/EntityShulkerBullet.java
+@@ -60,7 +60,20 @@
+ this.finalTarget = entity;
+ this.currentMoveDirection = EnumDirection.UP;
+ this.selectNextMoveDirection(enumdirection_enumaxis);
++ projectileSource = (org.bukkit.entity.LivingEntity) entityliving.getBukkitEntity(); // CraftBukkit
++ }
++
++ // CraftBukkit start
++ public Entity getTarget() {
++ return this.finalTarget;
++ }
++
++ public void setTarget(Entity e) {
++ this.finalTarget = e;
++ this.currentMoveDirection = EnumDirection.UP;
++ this.selectNextMoveDirection(EnumDirection.EnumAxis.X);
+ }
++ // CraftBukkit end
+
+ @Override
+ public SoundCategory getSoundSource() {
+@@ -225,7 +238,7 @@
+ MovingObjectPosition movingobjectposition = ProjectileHelper.getHitResultOnMoveVector(this, this::canHitEntity);
+
+ if (movingobjectposition.getType() != MovingObjectPosition.EnumMovingObjectType.MISS) {
+- this.onHit(movingobjectposition);
++ this.preOnHit(movingobjectposition); // CraftBukkit - projectile hit event
+ }
+ }
+
+@@ -294,7 +307,7 @@
+ if (entity instanceof EntityLiving) {
+ EntityLiving entityliving1 = (EntityLiving) entity;
+
+- entityliving1.addEffect(new MobEffect(MobEffects.LEVITATION, 200), (Entity) MoreObjects.firstNonNull(entity1, this));
++ entityliving1.addEffect(new MobEffect(MobEffects.LEVITATION, 200), (Entity) MoreObjects.firstNonNull(entity1, this), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.ATTACK); // CraftBukkit
+ }
+ }
+
+@@ -325,6 +338,11 @@
+
+ @Override
+ public boolean hurt(DamageSource damagesource, float f) {
++ // CraftBukkit start
++ if (org.bukkit.craftbukkit.event.CraftEventFactory.handleNonLivingEntityDamageEvent(this, damagesource, f, false)) {
++ return false;
++ }
++ // CraftBukkit end
+ if (!this.level().isClientSide) {
+ this.playSound(SoundEffects.SHULKER_BULLET_HURT, 1.0F, 1.0F);
+ ((WorldServer) this.level()).sendParticles(Particles.CRIT, this.getX(), this.getY(), this.getZ(), 15, 0.2D, 0.2D, 0.2D, 0.0D);