22
33import com .google .common .collect .ImmutableSet ;
44import com .mojang .math .Transformation ;
5- import it .unimi .dsi .fastutil .objects .Object2ObjectOpenHashMap ;
65import net .minecraft .client .renderer .block .model .BakedQuad ;
76import net .minecraft .client .renderer .block .model .ItemOverrides ;
87import net .minecraft .client .renderer .block .model .ItemTransforms ;
2221import org .jetbrains .annotations .Nullable ;
2322
2423import java .util .*;
24+ import java .util .concurrent .ConcurrentHashMap ;
2525import java .util .function .BiFunction ;
2626import java .util .stream .Collectors ;
2727
@@ -85,7 +85,7 @@ public ItemOverrides getOverrides() {
8585 public DynamicBakedModelProvider (ModelBakery bakery , Map <Triple <ResourceLocation , Transformation , Boolean >, BakedModel > cache ) {
8686 this .bakery = bakery ;
8787 this .bakedCache = cache ;
88- this .permanentOverrides = Collections . synchronizedMap ( new Object2ObjectOpenHashMap <>() );
88+ this .permanentOverrides = new ConcurrentHashMap <>();
8989 if (currentInstance == null )
9090 currentInstance = this ;
9191 }
@@ -109,12 +109,12 @@ public boolean isEmpty() {
109109
110110 @ Override
111111 public boolean containsKey (Object o ) {
112- return permanentOverrides .getOrDefault (o , SENTINEL ) != null ;
112+ return o != null && permanentOverrides .getOrDefault (o , SENTINEL ) != null ;
113113 }
114114
115115 @ Override
116116 public boolean containsValue (Object o ) {
117- return permanentOverrides .containsValue (o ) || bakedCache .containsValue (o );
117+ return o != null && ( permanentOverrides .containsValue (o ) || bakedCache .containsValue (o ) );
118118 }
119119
120120 private static boolean isVanillaTopLevelModel (ResourceLocation location ) {
@@ -164,6 +164,9 @@ public BakedModel get(Object o) {
164164
165165 @ Override
166166 public BakedModel put (ResourceLocation resourceLocation , BakedModel bakedModel ) {
167+ if (resourceLocation == null )
168+ return null ;
169+
167170 BakedModel m = permanentOverrides .put (resourceLocation , bakedModel );
168171 if (m != null )
169172 return m ;
@@ -173,6 +176,9 @@ public BakedModel put(ResourceLocation resourceLocation, BakedModel bakedModel)
173176
174177 @ Override
175178 public BakedModel remove (Object o ) {
179+ if (o == null )
180+ return null ;
181+
176182 BakedModel m = permanentOverrides .remove (o );
177183 if (m != null )
178184 return m ;
0 commit comments