From 154d9e5591f2e9c3d3fd01574ed5d633edd333a3 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 5 Jan 2025 14:40:36 -0800 Subject: [PATCH] Snowman drop and put back pumpkin --- ...36-Snowman-drop-and-put-back-pumpkin.patch | 45 ------------------- .../features/0001-Ridables.patch | 10 ++--- .../world/entity/animal/SnowGolem.java.patch | 17 +++++++ .../purpurmc/purpur/PurpurWorldConfig.java | 2 + 4 files changed, 24 insertions(+), 50 deletions(-) delete mode 100644 patches/server/0036-Snowman-drop-and-put-back-pumpkin.patch create mode 100644 purpur-server/minecraft-patches/sources/net/minecraft/world/entity/animal/SnowGolem.java.patch diff --git a/patches/server/0036-Snowman-drop-and-put-back-pumpkin.patch b/patches/server/0036-Snowman-drop-and-put-back-pumpkin.patch deleted file mode 100644 index 556f44f29..000000000 --- a/patches/server/0036-Snowman-drop-and-put-back-pumpkin.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath -Date: Fri, 3 May 2019 23:58:44 -0500 -Subject: [PATCH] Snowman drop and put back pumpkin - - -diff --git a/net/minecraft/world/entity/animal/SnowGolem.java b/net/minecraft/world/entity/animal/SnowGolem.java -index 0149071cc901beffd583c1ba7617e1355473fc77..aaa581c5fa7a14958b2a7c20996cf70ad4efff04 100644 ---- a/net/minecraft/world/entity/animal/SnowGolem.java -+++ b/net/minecraft/world/entity/animal/SnowGolem.java -@@ -205,6 +205,14 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM - } - - return InteractionResult.SUCCESS; -+ // Purpur start -+ } else if (level().purpurConfig.snowGolemPutPumpkinBack && !hasPumpkin() && itemstack.getItem() == Blocks.CARVED_PUMPKIN.asItem()) { -+ setPumpkin(true); -+ if (!player.getAbilities().instabuild) { -+ itemstack.shrink(1); -+ } -+ return InteractionResult.SUCCESS; -+ // Purpur end - } else { - return tryRide(player, hand); // Purpur - Ridables - } -diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 419ebb012056d131d6d1b10c8bd72511a1c4df74..1fa34a6517b4b834354234471f9ed3bcaaf1ee03 100644 ---- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1311,6 +1311,7 @@ public class PurpurWorldConfig { - public boolean snowGolemLeaveTrailWhenRidden = false; - public double snowGolemMaxHealth = 4.0D; - public double snowGolemScale = 1.0D; -+ public boolean snowGolemPutPumpkinBack = false; - private void snowGolemSettings() { - snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); - snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1323,6 +1324,7 @@ public class PurpurWorldConfig { - } - snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth); - snowGolemScale = Mth.clamp(getDouble("mobs.snow_golem.attributes.scale", snowGolemScale), 0.0625D, 16.0D); -+ snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack); - } - - public boolean snifferRidable = false; diff --git a/purpur-server/minecraft-patches/features/0001-Ridables.patch b/purpur-server/minecraft-patches/features/0001-Ridables.patch index 0c781b54b..968a05ced 100644 --- a/purpur-server/minecraft-patches/features/0001-Ridables.patch +++ b/purpur-server/minecraft-patches/features/0001-Ridables.patch @@ -1124,7 +1124,7 @@ index 8e9ba307a0528eb1aef56bdc0f4ded0e71621253..654f5855e1b69f05205e6a132d79ac94 float f = 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.2F; this.playSound(SoundEvents.IRON_GOLEM_REPAIR, 1.0F, f); diff --git a/net/minecraft/world/entity/animal/MushroomCow.java b/net/minecraft/world/entity/animal/MushroomCow.java -index 12099a5eb45ee21520d3ba68ef26909d5949206d..696b0eb93f8c8fe30f4c2cabadc50de730f93c22 100644 +index a8aeb79b1c1413d74a5d18a57bd4ba4beca6039c..1292146341022483f78a9128ef9d7a88089274a0 100644 --- a/net/minecraft/world/entity/animal/MushroomCow.java +++ b/net/minecraft/world/entity/animal/MushroomCow.java @@ -55,6 +55,23 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder stack.is(ItemTags.SHEEP_FOOD), false)); diff --git a/net/minecraft/world/entity/animal/SnowGolem.java b/net/minecraft/world/entity/animal/SnowGolem.java -index 8871964fd735178804b95182db1fd6bc1088f69d..320035fd5e7120d58cb7d4432b8e85d92a243d8b 100644 +index ac07260c01513fae5a8b9f1fe0f7f2bf113c6c3c..7bd5d82a11dda36389913925406a8a2c8e86abf6 100644 --- a/net/minecraft/world/entity/animal/SnowGolem.java +++ b/net/minecraft/world/entity/animal/SnowGolem.java @@ -49,12 +49,31 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -1751,9 +1751,9 @@ index 8871964fd735178804b95182db1fd6bc1088f69d..320035fd5e7120d58cb7d4432b8e85d9 } drops = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(event.getDrops()); // Paper end - custom shear drops -@@ -154,7 +174,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM - +@@ -162,7 +182,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM return InteractionResult.SUCCESS; + // Purpur end - Snowman drop and put back pumpkin } else { - return InteractionResult.PASS; + return tryRide(player, hand); // Purpur - Ridables diff --git a/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/animal/SnowGolem.java.patch b/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/animal/SnowGolem.java.patch new file mode 100644 index 000000000..88f36a03f --- /dev/null +++ b/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/animal/SnowGolem.java.patch @@ -0,0 +1,17 @@ +--- a/net/minecraft/world/entity/animal/SnowGolem.java ++++ b/net/minecraft/world/entity/animal/SnowGolem.java +@@ -153,6 +_,14 @@ + } + + return InteractionResult.SUCCESS; ++ // Purpur start - Snowman drop and put back pumpkin ++ } else if (level().purpurConfig.snowGolemPutPumpkinBack && !hasPumpkin() && itemInHand.getItem() == Blocks.CARVED_PUMPKIN.asItem()) { ++ setPumpkin(true); ++ if (!player.getAbilities().instabuild) { ++ itemInHand.shrink(1); ++ } ++ return InteractionResult.SUCCESS; ++ // Purpur end - Snowman drop and put back pumpkin + } else { + return InteractionResult.PASS; + } diff --git a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java index 28215608f..c778b7764 100644 --- a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1297,6 +1297,7 @@ public class PurpurWorldConfig { public boolean snowGolemLeaveTrailWhenRidden = false; public double snowGolemMaxHealth = 4.0D; public double snowGolemScale = 1.0D; + public boolean snowGolemPutPumpkinBack = false; private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); @@ -1309,6 +1310,7 @@ public class PurpurWorldConfig { } snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth); snowGolemScale = Mth.clamp(getDouble("mobs.snow_golem.attributes.scale", snowGolemScale), 0.0625D, 16.0D); + snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack); } public boolean snifferRidable = false;