mirror of
https://github.com/Samsuik/Sakura.git
synced 2025-12-21 15:59:26 +00:00
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@3ea95ef Do not access world state to see if we can see a Player PaperMC/Paper@71c84c8 Updated Upstream (Bukkit/CraftBukkit/Spigot) (#10277) PaperMC/Paper@e3bc4c4 Make debug mode print current configuration phase PaperMC/Paper@d0ebfbb Fix corrupted plugin.yml breaking plugin loading (#10279) PaperMC/Paper@681bbff Fix spawnreason saving
70 lines
3.7 KiB
Diff
70 lines
3.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Samsuik <kfian294ma4@gmail.com>
|
|
Date: Fri, 23 Feb 2024 16:18:51 +0000
|
|
Subject: [PATCH] Configure potion speed and breaking inside entities
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
|
|
index 156809090f1f83ad68e7e2477a3cfddac5757a8e..f834a3a2634a7b245ea8881b2cc613296f3b94ba 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
|
|
@@ -151,7 +151,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
|
|
super.tick();
|
|
}
|
|
|
|
- private boolean checkLeftOwner() {
|
|
+ protected boolean checkLeftOwner() { // Sakura - configure potion mechanics
|
|
Entity entity = this.getOwner();
|
|
|
|
if (entity != null) {
|
|
diff --git a/src/main/java/net/minecraft/world/entity/projectile/ProjectileUtil.java b/src/main/java/net/minecraft/world/entity/projectile/ProjectileUtil.java
|
|
index 391ba45cce8196720e1856626067857ad8ad2443..9d38a45f8fc6583db7dd51aa7d9d69b38ebc256a 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/projectile/ProjectileUtil.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/projectile/ProjectileUtil.java
|
|
@@ -49,7 +49,14 @@ public final class ProjectileUtil {
|
|
vec3 = hitResult.getLocation();
|
|
}
|
|
|
|
- HitResult hitResult2 = getEntityHitResult(world, entity, pos, vec3, entity.getBoundingBox().expandTowards(velocity).inflate(1.0D), predicate, margin);
|
|
+ // Sakura start - configure potion mechanics
|
|
+ final HitResult hitResult2;
|
|
+ if (world.sakuraConfig().entity.thrownPotion.allowBreakingInsideEntities && entity instanceof ThrownPotion) {
|
|
+ hitResult2 = getEntityHitResult(entity, pos, vec3, entity.getBoundingBox().expandTowards(velocity).inflate(1.0D), predicate, margin);
|
|
+ } else {
|
|
+ hitResult2 = getEntityHitResult(world, entity, pos, vec3, entity.getBoundingBox().expandTowards(velocity).inflate(1.0D), predicate, margin);
|
|
+ }
|
|
+ // Sakura end - configure potion mechanics
|
|
if (hitResult2 != null) {
|
|
hitResult = hitResult2;
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java
|
|
index 19af5552e36964996082226b4f77561d7deb99f6..23c19fb83603974d3d70bc983cf7763bf05142bf 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java
|
|
@@ -61,6 +61,25 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie
|
|
super(EntityType.POTION, x, y, z, world);
|
|
}
|
|
|
|
+ // Sakura start - configure potion mechanics
|
|
+ @Override
|
|
+ public void shoot(double x, double y, double z, float speed, float divergence) {
|
|
+ super.shoot(x, y, z, speed, divergence);
|
|
+
|
|
+ net.minecraft.world.phys.Vec3 movement = getDeltaMovement();
|
|
+ double moveX = movement.x * level().sakuraConfig().entity.thrownPotion.horizontalSpeed;
|
|
+ double moveY = movement.y * level().sakuraConfig().entity.thrownPotion.verticalSpeed;
|
|
+ double moveZ = movement.z * level().sakuraConfig().entity.thrownPotion.horizontalSpeed;
|
|
+
|
|
+ setDeltaMovement(moveX, moveY, moveZ);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ protected final boolean checkLeftOwner() {
|
|
+ return super.checkLeftOwner() || level().sakuraConfig().entity.thrownPotion.allowBreakingInsideEntities && tickCount >= 5;
|
|
+ }
|
|
+ // Sakura end - configure potion mechanics
|
|
+
|
|
@Override
|
|
protected Item getDefaultItem() {
|
|
return Items.SPLASH_POTION;
|