GeckoLib

GeckoLib

243M Downloads

Bug: Cannot register GeckoLib GeoEntityRenderer with EntityRenderersEvent.RegisterRenderers on NeoForge

Closed this issue · 1 comments

commented

❓ What I'm Trying To Do

I'm creating a custom entity (ForesterEntity) using NeoForge 1.21.4 / version 21.4.137, and using GeckoLib 4.7 for NeoForge 1.21.1 to add animations.

I created a custom renderer:

public class ForesterRenderer extends GeoEntityRenderer { ... }

Then I attempted to register it via EntityRenderersEvent.RegisterRenderers like so:

event.registerEntityRenderer(ModEntities.FORESTER.get(), ForesterRenderer::new);

Or with explicit casting:

event.registerEntityRenderer(ModEntities.FORESTER.get(),
(EntityRendererProvider) (context -> new ForesterRenderer(context)));

💥 The Error

I consistently get this compile-time error:

error: incompatible types: bad return type in method reference
ForesterRenderer cannot be converted to EntityRenderer<ForesterEntity,?>

Even though:

ForesterRenderer extends GeoEntityRenderer<ForesterEntity>

GeoEntityRenderer<T> implements EntityRenderer<T>

✅ What I’ve Tried

Lambda syntax with cast

Triple-casting to raw types

Wrapper/bridge class returning new ForesterRenderer(context)

Suppressing warnings

Registering during RegisterRenderers and client setup

Confirmed that the method signature of ForesterRenderer matches expected EntityRendererProvider<ForesterEntity>

📦 Versions

NeoForge: 21.4.137 (for Minecraft 1.21.4)

GeckoLib: 4.7 for NeoForge 1.21.1

Java: Java 21

Gradle: 8.5+

🧩 Suspected Issue

It appears there’s a type erasure or generic mismatch between:

NeoForge’s EntityRendererProvider<T>

GeckoLib’s GeoEntityRenderer<T> (which does implement EntityRenderer<T>)

This might be caused by NeoForge being overly strict in its generic inference or due to GeckoLib’s generic signature using additional type parameters internally.
✅ What I'm Hoping For

A way to cleanly register a GeoEntityRenderer<T> as an EntityRendererProvider<T>

Or clarification on how GeckoLib renderers are expected to be registered under NeoForge 1.21.4
commented

not a bug i was told