diff --git a/patches/server/0162-Configurable-default-wolf-collar-color.patch b/patches/server/0162-Configurable-default-wolf-collar-color.patch new file mode 100644 index 000000000..15b739ecd --- /dev/null +++ b/patches/server/0162-Configurable-default-wolf-collar-color.patch @@ -0,0 +1,56 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Encode42 +Date: Thu, 10 Dec 2020 13:43:28 -0500 +Subject: [PATCH] Configurable default wolf collar color + +This allows for the server to set a default collar color when a wolf is tamed. +Resets to RED when the value is invalid. + +diff --git a/src/main/java/net/minecraft/server/EntityWolf.java b/src/main/java/net/minecraft/server/EntityWolf.java +index fa7f47fef..ca38c2224 100644 +--- a/src/main/java/net/minecraft/server/EntityWolf.java ++++ b/src/main/java/net/minecraft/server/EntityWolf.java +@@ -114,6 +114,12 @@ public class EntityWolf extends EntityTameableAnimal implements IEntityAngerable + setRabid(world.purpurConfig.wolfNaturalRabid > 0.0D && random.nextDouble() <= world.purpurConfig.wolfNaturalRabid); + return super.prepare(worldaccess, difficultydamagescaler, enummobspawn, groupdataentity, nbttagcompound); + } ++ ++ @Override ++ public void tame(EntityHuman entityhuman) { ++ setCollarColor(world.purpurConfig.wolfDefaultCollarColor); ++ super.tame(entityhuman); ++ } + // Purpur end + + @Override +diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +index e76ae515d..bebceda3c 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +@@ -3,6 +3,7 @@ package net.pl3x.purpur; + import com.destroystokyo.paper.PaperConfig; + import net.minecraft.server.Block; + import net.minecraft.server.Blocks; ++import net.minecraft.server.EnumColor; + import net.minecraft.server.EnumDifficulty; + import net.minecraft.server.Explosion; + import net.minecraft.server.IRegistry; +@@ -1128,12 +1129,18 @@ public class PurpurWorldConfig { + + public boolean wolfRidable = false; + public boolean wolfRidableInWater = false; ++ public EnumColor wolfDefaultCollarColor = EnumColor.RED; + public boolean wolfMilkCuresRabies = true; + public double wolfNaturalRabid = 0.0D; + public int wolfBreedingTicks = 6000; + private void wolfSettings() { + wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); + wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); ++ try { ++ wolfDefaultCollarColor = EnumColor.valueOf(getString("mobs.wolf.default-collar-color", wolfDefaultCollarColor.name())); ++ } catch (IllegalArgumentException ignore) { ++ wolfDefaultCollarColor = EnumColor.RED; ++ } + wolfMilkCuresRabies = getBoolean("mobs.wolf.milk-cures-rabid-wolves", wolfMilkCuresRabies); + wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid); + wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks);