From b1c29d8eb43c629e8afd512d6d4045dc96c24ac8 Mon Sep 17 00:00:00 2001
From: "Joseph T. McQuigg" <J.T.McQuigg12@gmail.com>
Date: Mon, 30 Dec 2024 08:10:38 -0500
Subject: [PATCH] Check to make sure Feature isn't present before adding it
 (#4323)

---
 .../biome/modification/BiomeModificationContextImpl.java | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/fabric-biome-api-v1/src/main/java/net/fabricmc/fabric/impl/biome/modification/BiomeModificationContextImpl.java b/fabric-biome-api-v1/src/main/java/net/fabricmc/fabric/impl/biome/modification/BiomeModificationContextImpl.java
index 470d6c069..b6df5a68b 100644
--- a/fabric-biome-api-v1/src/main/java/net/fabricmc/fabric/impl/biome/modification/BiomeModificationContextImpl.java
+++ b/fabric-biome-api-v1/src/main/java/net/fabricmc/fabric/impl/biome/modification/BiomeModificationContextImpl.java
@@ -282,7 +282,14 @@ public class BiomeModificationContextImpl implements BiomeModificationContext {
 				featureSteps.add(RegistryEntryList.of(Collections.emptyList()));
 			}
 
-			featureSteps.set(index, plus(featureSteps.get(index), getEntry(features, entry)));
+			RegistryEntry.Reference<PlacedFeature> feature = getEntry(features, entry);
+
+			// Don't add the feature if it's already present
+			if (featureSteps.get(index).contains(feature)) {
+				return;
+			}
+
+			featureSteps.set(index, plus(featureSteps.get(index), feature));
 
 			// Ensure the list of flower features is up-to-date
 			rebuildFeatures = true;