From 731e1920d2312e4fe550a8a3599e92aa94939f78 Mon Sep 17 00:00:00 2001 From: LexManos Date: Thu, 25 Jul 2019 17:59:08 -0700 Subject: [PATCH] Fix @ObjectHolderRegistry not properly detecting vanilla class level references. Closes #5958 --- .../minecraft/net/minecraft/world/biome/Biomes.java.patch | 5 ++++- .../net/minecraftforge/registries/ObjectHolderRegistry.java | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/patches/minecraft/net/minecraft/world/biome/Biomes.java.patch b/patches/minecraft/net/minecraft/world/biome/Biomes.java.patch index 45b23f5877..59953600e0 100644 --- a/patches/minecraft/net/minecraft/world/biome/Biomes.java.patch +++ b/patches/minecraft/net/minecraft/world/biome/Biomes.java.patch @@ -1,10 +1,13 @@ --- a/net/minecraft/world/biome/Biomes.java +++ b/net/minecraft/world/biome/Biomes.java -@@ -4,6 +4,7 @@ +@@ -4,8 +4,10 @@ import net.minecraft.util.ResourceLocation; import net.minecraft.util.registry.Registry; +@net.minecraftforge.registries.ObjectHolder("minecraft") public abstract class Biomes { public static final Biome field_76771_b = func_222369_a(0, "ocean", new OceanBiome()); ++ @net.minecraftforge.registries.ObjectHolder("minecraft:ocean") public static final Biome field_180279_ad = field_76771_b; + public static final Biome field_76772_c = func_222369_a(1, "plains", new PlainsBiome()); + public static final Biome field_76769_d = func_222369_a(2, "desert", new DesertBiome()); diff --git a/src/main/java/net/minecraftforge/registries/ObjectHolderRegistry.java b/src/main/java/net/minecraftforge/registries/ObjectHolderRegistry.java index a5995b7642..042eb16bfe 100644 --- a/src/main/java/net/minecraftforge/registries/ObjectHolderRegistry.java +++ b/src/main/java/net/minecraftforge/registries/ObjectHolderRegistry.java @@ -105,7 +105,7 @@ public class ObjectHolderRegistry // double pass - get all the class level annotations first, then the field level annotations annotations.stream().filter(a -> OBJECT_HOLDER.equals(a.getAnnotationType())).filter(a -> a.getTargetType() == ElementType.TYPE) - .forEach(data -> scanTarget(classModIds, classCache, data.getClassType(), null, (String)data.getAnnotationData().get("value"), true, data.getClassType().getClassName().startsWith("net.minecraft.init"))); + .forEach(data -> scanTarget(classModIds, classCache, data.getClassType(), null, (String)data.getAnnotationData().get("value"), true, data.getClassType().getClassName().startsWith("net.minecraft."))); annotations.stream().filter(a -> OBJECT_HOLDER.equals(a.getAnnotationType())).filter(a -> a.getTargetType() == ElementType.FIELD) .forEach(data -> scanTarget(classModIds, classCache, data.getClassType(), data.getMemberName(), (String)data.getAnnotationData().get("value"), false, false));