package ru.bclib.mixin.client; import net.minecraft.client.Minecraft; import net.minecraft.client.color.block.BlockColors; import net.minecraft.client.color.item.ItemColors; import net.minecraft.client.main.GameConfig; import net.minecraft.core.Registry; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import ru.bclib.interfaces.ColorProviderGetter; @Mixin(Minecraft.class) public class MinecraftMixin { @Final @Shadow private BlockColors blockColors; @Final @Shadow private ItemColors itemColors; @Inject(method = "*", at = @At("TAIL")) private void bclib_onMCInit(GameConfig args, CallbackInfo info) { Registry.BLOCK.forEach(block -> { if (block instanceof ColorProviderGetter) { ColorProviderGetter provider = (ColorProviderGetter) block; blockColors.register(provider.getProvider(), block); itemColors.register(provider.getItemProvider(), block.asItem()); } }); } }