Fix log spam with multiple calls to combinedItemApiProvider ()

(cherry picked from commit d6f4a34e15)
(cherry picked from commit bb1ee60efb)
This commit is contained in:
Technici4n 2023-11-02 11:35:06 +01:00 committed by modmuss50
parent ae9f657a88
commit 1bc31aeb60

View file

@ -82,10 +82,14 @@ public class CombinedProvidersImpl {
}
public static Event<FluidStorage.CombinedItemApiProvider> getOrCreateItemEvent(Item item) {
// register here is thread-safe, so the query below will return a valid provider (possibly one registered before or from another thread).
FluidStorage.ITEM.registerForItems(new Provider(), item);
ItemApiLookup.ItemApiProvider<Storage<FluidVariant>, ContainerItemContext> existingProvider = FluidStorage.ITEM.getProvider(item);
if (existingProvider == null) {
FluidStorage.ITEM.registerForItems(new Provider(), item);
// The provider might not be new Provider() if a concurrent registration happened, re-query.
existingProvider = FluidStorage.ITEM.getProvider(item);
}
if (existingProvider instanceof Provider registeredProvider) {
return registeredProvider.event;
} else {