mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-03 13:42:25 -07:00
Enchantment is data-driven, so not FeatureDependant (#11377)
This commit is contained in:
@@ -320,8 +320,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
+import io.papermc.paper.registry.PaperRegistries;
|
||||
+import io.papermc.paper.registry.RegistryAccess;
|
||||
+import io.papermc.paper.registry.RegistryKey;
|
||||
+import io.papermc.paper.registry.entry.RegistryEntry;
|
||||
+import java.util.HashSet;
|
||||
+import java.util.Set;
|
||||
+import java.util.stream.Stream;
|
||||
+import net.kyori.adventure.key.Key;
|
||||
+import net.minecraft.core.registries.Registries;
|
||||
+import net.minecraft.resources.ResourceKey;
|
||||
@@ -338,6 +340,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
+
|
||||
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
|
||||
+import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
+import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
|
||||
+import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
+import static org.junit.jupiter.api.Assertions.fail;
|
||||
@@ -385,11 +388,28 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
+
|
||||
+ @MethodSource("featureFilteredRegistries")
|
||||
+ @ParameterizedTest
|
||||
+ <T extends Keyed> void testFeatureDependent(final RegistryKey<T> registryKey) {
|
||||
+ <T extends Keyed> void testApiImplementsFeatureDependant(final RegistryKey<T> registryKey) {
|
||||
+ final org.bukkit.Registry<T> registry = RegistryAccess.registryAccess().getRegistry(registryKey);
|
||||
+ final T anyElement = registry.iterator().next();
|
||||
+ assertInstanceOf(FeatureDependant.class, anyElement, "Registry " + registryKey + " doesn't have feature dependent elements");
|
||||
+ final FeatureDependant dependant = ((FeatureDependant) anyElement);
|
||||
+ assertDoesNotThrow(dependant::requiredFeatures, "Failed to get required features for " + anyElement + " in " + registryKey);
|
||||
+ }
|
||||
+
|
||||
+ static Stream<RegistryKey<?>> nonFeatureFilteredRegistries() {
|
||||
+ return AbstractTestingBase.REGISTRY_CUSTOM.registries().filter(r -> {
|
||||
+ final RegistryEntry<?, ?> entry = PaperRegistries.getEntry(r.key());
|
||||
+ // has an API registry and isn't a filtered registry
|
||||
+ return entry != null && !FeatureElement.FILTERED_REGISTRIES.contains(r.key());
|
||||
+ }).map(r -> PaperRegistries.getEntry(r.key()).apiKey());
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ @MethodSource("nonFeatureFilteredRegistries")
|
||||
+ @ParameterizedTest
|
||||
+ <T extends Keyed> void testApiDoesntImplementFeatureDependant(final RegistryKey<T> registryKey) {
|
||||
+ final org.bukkit.Registry<T> registry = RegistryAccess.registryAccess().getRegistry(registryKey);
|
||||
+ final T anyElement = registry.iterator().next();
|
||||
+ assertFalse(anyElement instanceof FeatureDependant, "Registry " + registryKey + " has feature dependent elements");
|
||||
+ }
|
||||
+}
|
||||
|
Reference in New Issue
Block a user