diff --git a/patches/api/0435-Allow-trident-custom-damage.patch b/patches/api/0435-Allow-trident-custom-damage.patch new file mode 100644 index 0000000000..870b735548 --- /dev/null +++ b/patches/api/0435-Allow-trident-custom-damage.patch @@ -0,0 +1,34 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com> +Date: Wed, 13 Jul 2022 15:29:53 +0200 +Subject: [PATCH] Allow trident custom damage + + +diff --git a/src/main/java/org/bukkit/entity/Trident.java b/src/main/java/org/bukkit/entity/Trident.java +index 02584eced96944a551140f8150c65a7c0f4bb55e..d21df39ceef657575f3c2e9070bf6d2671978c7a 100644 +--- a/src/main/java/org/bukkit/entity/Trident.java ++++ b/src/main/java/org/bukkit/entity/Trident.java +@@ -57,5 +57,23 @@ public interface Trident extends AbstractArrow, ThrowableProjectile { + * @param hasDealtDamage has dealt damage or hit the floor + */ + void setHasDealtDamage(boolean hasDealtDamage); ++ ++ /** ++ * Sets the base amount of damage this trident will do. ++ * ++ * @param damage new damage amount ++ */ ++ void setDamage(double damage); ++ ++ /** ++ * Gets the base amount of damage this trident will do. ++ * ++ * Defaults to 8.0 for a normal trident with ++ * 0.5 * (1 + power level) added for trident fired from ++ * damage enchanted bows. ++ * ++ * @return base damage amount ++ */ ++ double getDamage(); + } + // Paper end diff --git a/patches/server/1022-Allow-trident-custom-damage.patch b/patches/server/1022-Allow-trident-custom-damage.patch new file mode 100644 index 0000000000..2fda04c7c1 --- /dev/null +++ b/patches/server/1022-Allow-trident-custom-damage.patch @@ -0,0 +1,46 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com> +Date: Tue, 12 Jul 2022 18:01:14 +0200 +Subject: [PATCH] Allow trident custom damage + + +diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +index 7226be19248a1ffb8ff2c89b55882529d33a6c0c..fa885337085348308604e50049ecc5bb52023884 100644 +--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java ++++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +@@ -65,7 +65,7 @@ public abstract class AbstractArrow extends Projectile { + public AbstractArrow.Pickup pickup; + public int shakeTime; + public int life; +- private double baseDamage; ++ protected double baseDamage; // Paper - private -> protected + public int knockback; + public SoundEvent soundEvent; + @Nullable +diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java +index 454dd67920826b8b62c2654abfd43fc08c2648e4..a6bc277b6589dd7104566542733327822d6299a4 100644 +--- a/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java ++++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java +@@ -33,11 +33,13 @@ public class ThrownTrident extends AbstractArrow { + + public ThrownTrident(EntityType type, Level world) { + super(type, world); ++ this.baseDamage = net.minecraft.world.item.TridentItem.BASE_DAMAGE; // Paper + this.tridentItem = new ItemStack(Items.TRIDENT); + } + + public ThrownTrident(Level world, LivingEntity owner, ItemStack stack) { + super(EntityType.TRIDENT, owner, world); ++ this.baseDamage = net.minecraft.world.item.TridentItem.BASE_DAMAGE; // Paper + this.tridentItem = new ItemStack(Items.TRIDENT); + this.tridentItem = stack.copy(); + this.entityData.set(ThrownTrident.ID_LOYALTY, (byte) EnchantmentHelper.getLoyalty(stack)); +@@ -128,7 +130,7 @@ public class ThrownTrident extends AbstractArrow { + @Override + protected void onHitEntity(EntityHitResult entityHitResult) { + Entity entity = entityHitResult.getEntity(); +- float f = 8.0F; ++ float f = (float) this.baseDamage; // Paper + + if (entity instanceof LivingEntity) { + LivingEntity entityliving = (LivingEntity) entity;