diff --git a/patches/server/0090-Infinity-bow-settings.patch b/patches/server/0090-Infinity-bow-settings.patch index e169a23b2..a20b597a7 100644 --- a/patches/server/0090-Infinity-bow-settings.patch +++ b/patches/server/0090-Infinity-bow-settings.patch @@ -4,21 +4,33 @@ Date: Sun, 4 Oct 2020 19:08:53 -0500 Subject: [PATCH] Infinity bow settings -diff --git a/src/main/java/net/minecraft/world/item/ProjectileWeaponItem.java b/src/main/java/net/minecraft/world/item/ProjectileWeaponItem.java -index 32dd0b13a0819f597d8a93c6bc3a155781067544..7ae7626c82969ea5a6fc5aa4a0c7ec43cea73adb 100644 ---- a/src/main/java/net/minecraft/world/item/ProjectileWeaponItem.java -+++ b/src/main/java/net/minecraft/world/item/ProjectileWeaponItem.java -@@ -153,7 +153,7 @@ public abstract class ProjectileWeaponItem extends Item { - int i; - label28: - { -- if (!multishot && !shooter.hasInfiniteMaterials()) { -+ if (!multishot && !shooter.hasInfiniteMaterials() && !shooter.level().purpurConfig.infinityWorksWithoutArrows) { - Level world = shooter.level(); - - if (world instanceof ServerLevel) { +diff --git a/src/main/java/net/minecraft/world/item/BowItem.java b/src/main/java/net/minecraft/world/item/BowItem.java +index 6eb5c0f23d9dc61e69ad5ad493c89602a9dcd4b5..4db2032178471860baddc6b669c9a4f8cffd084b 100644 +--- a/src/main/java/net/minecraft/world/item/BowItem.java ++++ b/src/main/java/net/minecraft/world/item/BowItem.java +@@ -26,6 +26,11 @@ public class BowItem extends ProjectileWeaponItem { + public void releaseUsing(ItemStack stack, Level world, LivingEntity user, int remainingUseTicks) { + if (user instanceof Player player) { + ItemStack itemStack = player.getProjectile(stack); ++ // Purpur start ++ if (world.purpurConfig.infinityWorksWithoutArrows && itemStack.isEmpty() && net.minecraft.world.item.enchantment.EnchantmentHelper.getItemEnchantmentLevel(net.minecraft.world.item.enchantment.Enchantments.INFINITY, stack) > 0) { ++ itemStack = new ItemStack(Items.ARROW); ++ } ++ // Purpur end + if (!itemStack.isEmpty()) { + int i = this.getUseDuration(stack, user) - remainingUseTicks; + float f = getPowerForTime(i); +@@ -82,7 +87,7 @@ public class BowItem extends ProjectileWeaponItem { + public InteractionResultHolder use(Level world, Player user, InteractionHand hand) { + ItemStack itemStack = user.getItemInHand(hand); + boolean bl = !user.getProjectile(itemStack).isEmpty(); +- if (!user.hasInfiniteMaterials() && !bl) { ++ if (!user.hasInfiniteMaterials() && !bl && !(world.purpurConfig.infinityWorksWithoutArrows && net.minecraft.world.item.enchantment.EnchantmentHelper.getItemEnchantmentLevel(net.minecraft.world.item.enchantment.Enchantments.INFINITY, itemStack) > 0)) { // Purpur + return InteractionResultHolder.fail(itemStack); + } else { + user.startUsingItem(hand); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index cf991755dfd990ae433fbdafaad6103f5f52d702..b70e4afa153ce3532649a55a48d58ec1ad6ee6b4 100644 +index a0e89374b94852352400d5089052433b6de0fd92..85e16939a1ac27037b1959e4fc1ec57324a7c11e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -137,6 +137,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0146-Projectile-offset-config.patch b/patches/server/0146-Projectile-offset-config.patch index a8f61efa3..2c20434e3 100644 --- a/patches/server/0146-Projectile-offset-config.patch +++ b/patches/server/0146-Projectile-offset-config.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Projectile offset config diff --git a/src/main/java/net/minecraft/world/item/BowItem.java b/src/main/java/net/minecraft/world/item/BowItem.java -index 6eb5c0f23d9dc61e69ad5ad493c89602a9dcd4b5..a00181da8417445705d181fe62933c48a0b1170a 100644 +index 4db2032178471860baddc6b669c9a4f8cffd084b..fc534b1f214663eb8e4fe479fed12b1dd069105c 100644 --- a/src/main/java/net/minecraft/world/item/BowItem.java +++ b/src/main/java/net/minecraft/world/item/BowItem.java -@@ -32,7 +32,7 @@ public class BowItem extends ProjectileWeaponItem { +@@ -37,7 +37,7 @@ public class BowItem extends ProjectileWeaponItem { if (!((double)f < 0.1)) { List list = draw(stack, itemStack, player); if (world instanceof ServerLevel serverLevel && !list.isEmpty()) {