Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/1.20.1' into 1.20.1
Browse files Browse the repository at this point in the history
  • Loading branch information
JustRed23 committed Jul 25, 2024
2 parents 1ed70b6 + 032d9a3 commit 0add7d9
Show file tree
Hide file tree
Showing 8 changed files with 40 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
this.clearFire();
}

@@ -186,9 +_,28 @@
@@ -186,9 +_,34 @@
}
}

Expand All @@ -42,6 +42,9 @@
+ case SKIP_ENTITY:
+ if (hitresult.getType() != HitResult.Type.ENTITY) { // If there is no entity, we just return default behaviour
+ this.preOnHit(hitresult); // CraftBukkit - projectile hit event
+ if (this.ketting$preOnHitResult) { // Ketting - Fix mixin errors
+ this.onHit(hitresult);
+ }
+ this.hasImpulse = true;
+ break;
+ }
Expand All @@ -56,6 +59,9 @@
+ this.setPierceLevel((byte) 0);
+ case DEFAULT:
+ this.preOnHit(hitresult); // CraftBukkit - projectile hit event
+ if (this.ketting$preOnHitResult) { // Ketting - Fix mixin errors
+ this.onHit(hitresult);
+ }
+ this.hasImpulse = true;
+ break;
+ }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,17 @@
double d0 = Math.sqrt(p_36821_ * p_36821_ + p_36822_ * p_36822_ + p_36823_ * p_36823_);
if (d0 != 0.0D) {
this.xPower = p_36821_ / d0 * 0.1D;
@@ -65,8 +_,14 @@
@@ -65,8 +_,17 @@
}

HitResult hitresult = ProjectileUtil.getHitResultOnMoveVector(this, this::canHitEntity);
- if (hitresult.getType() != HitResult.Type.MISS) {
- this.onHit(hitresult);
+ if (hitresult.getType() != HitResult.Type.MISS && !net.minecraftforge.event.ForgeEventFactory.onProjectileImpact(this, hitresult)) {
+ this.preOnHit(hitresult); // CraftBukkit - projectile hit event
+ if (this.ketting$preOnHitResult) { // Ketting - Fix mixin errors
+ this.onHit(hitresult);
+ }
+
+ // CraftBukkit start - Fire ProjectileHitEvent
+ if (this.isRemoved()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,15 @@
protected void defineSynchedData() {
this.entityData.define(DATA_ID_FIREWORKS_ITEM, ItemStack.EMPTY);
this.entityData.define(DATA_ATTACHED_TO_TARGET, OptionalInt.empty());
@@ -130,7 +_,7 @@
@@ -130,7 +_,10 @@

HitResult hitresult = ProjectileUtil.getHitResultOnMoveVector(this, this::canHitEntity);
if (!this.noPhysics) {
- this.onHit(hitresult);
+ this.preOnHit(hitresult); // CraftBukkit - projectile hit event
+ if (this.ketting$preOnHitResult) { // Ketting - Fix mixin errors
+ this.onHit(hitresult);
+ }
this.hasImpulse = true;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,17 @@
if (!p_37137_.isRemoved() && p_37137_.isAlive() && (flag || flag1) && !(this.distanceToSqr(p_37137_) > 1024.0D)) {
return false;
} else {
@@ -241,7 +_,7 @@
@@ -241,7 +_,12 @@

private void checkCollision() {
HitResult hitresult = ProjectileUtil.getHitResultOnMoveVector(this, this::canHitEntity);
- this.onHit(hitresult);
+ if (hitresult.getType() == HitResult.Type.MISS || !net.minecraftforge.event.ForgeEventFactory.onProjectileImpact(this, hitresult)) this.preOnHit(hitresult); // CraftBukkit - projectile hit event
+ if (hitresult.getType() == HitResult.Type.MISS || !net.minecraftforge.event.ForgeEventFactory.onProjectileImpact(this, hitresult)) {
+ this.preOnHit(hitresult); // CraftBukkit - projectile hit event
+ if (this.ketting$preOnHitResult) { // Ketting - Fix mixin errors
+ this.onHit(hitresult);
+ }
+ }
}

protected boolean canHitEntity(Entity p_37135_) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
--- a/net/minecraft/world/entity/projectile/LlamaSpit.java
+++ b/net/minecraft/world/entity/projectile/LlamaSpit.java
@@ -29,7 +_,8 @@
@@ -29,7 +_,12 @@
super.tick();
Vec3 vec3 = this.getDeltaMovement();
HitResult hitresult = ProjectileUtil.getHitResultOnMoveVector(this, this::canHitEntity);
- this.onHit(hitresult);
+ if (hitresult.getType() != HitResult.Type.MISS && !net.minecraftforge.event.ForgeEventFactory.onProjectileImpact(this, hitresult))
+ this.preOnHit(hitresult); // CraftBukkit - projectile hit event
+ if (hitresult.getType() != HitResult.Type.MISS && !net.minecraftforge.event.ForgeEventFactory.onProjectileImpact(this, hitresult)) {
+ this.preOnHit(hitresult); // CraftBukkit - projectile hit event
+ if (this.ketting$preOnHitResult) { // Ketting - Fix mixin errors
+ this.onHit(hitresult);
+ }
+ }
double d0 = this.getX() + vec3.x;
double d1 = this.getY() + vec3.y;
double d2 = this.getZ() + vec3.z;
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,16 @@
}

@Nullable
@@ -132,6 +_,16 @@
@@ -132,6 +_,15 @@
this.setDeltaMovement(this.getDeltaMovement().add(vec3.x, p_37252_.onGround() ? 0.0D : vec3.y, vec3.z));
}

+ protected boolean ketting$preOnHitResult;
+ // CraftBukkit start - call projectile hit event
+ protected void preOnHit(HitResult hitResult) {
+ org.bukkit.event.entity.ProjectileHitEvent event = org.bukkit.craftbukkit.v1_20_R1.event.CraftEventFactory.callProjectileHitEvent(this, hitResult);
+ this.hitCancelled = event != null && event.isCancelled();
+ if (hitResult.getType() == HitResult.Type.BLOCK || !this.hitCancelled) {
+ this.onHit(hitResult);
+ }
+ ketting$preOnHitResult = hitResult.getType() == HitResult.Type.BLOCK || !this.hitCancelled;
+ }
+ // CraftBukkit end
+
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,17 @@

public SoundSource getSoundSource() {
return SoundSource.HOSTILE;
@@ -212,8 +_,8 @@
@@ -212,8 +_,11 @@
}

HitResult hitresult = ProjectileUtil.getHitResultOnMoveVector(this, this::canHitEntity);
- if (hitresult.getType() != HitResult.Type.MISS) {
- this.onHit(hitresult);
+ if (hitresult.getType() != HitResult.Type.MISS && !net.minecraftforge.event.ForgeEventFactory.onProjectileImpact(this, hitresult)) {
+ this.preOnHit(hitresult); // CraftBukkit - projectile hit event
+ if (this.ketting$preOnHitResult) { // Ketting - Fix mixin errors
+ this.onHit(hitresult);
+ }
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
--- a/net/minecraft/world/entity/projectile/ThrowableProjectile.java
+++ b/net/minecraft/world/entity/projectile/ThrowableProjectile.java
@@ -58,8 +_,8 @@
@@ -58,8 +_,11 @@
}
}

- if (hitresult.getType() != HitResult.Type.MISS && !flag) {
- this.onHit(hitresult);
+ if (hitresult.getType() != HitResult.Type.MISS && !flag && !net.minecraftforge.event.ForgeEventFactory.onProjectileImpact(this, hitresult)) {
+ this.preOnHit(hitresult); // CraftBukkit - projectile hit event
+ if (this.ketting$preOnHitResult) { // Ketting - Fix mixin errors
+ this.onHit(hitresult);
+ }
}

this.checkInsideBlocks();

0 comments on commit 0add7d9

Please sign in to comment.