File Details
fairylights-8.0.10-neoforge-1.21.1.jar
- R
- May 2, 2026
- 829.11 KB
- 6.7K
- 1.21.1
- NeoForge
File Name
fairylights-8.0.10-neoforge-1.21.1.jar
Supported Versions
- 1.21.1
Curse Maven Snippet
Fairy Lights 8.0.10 - Performance: Remove Dead Reflection Code
Performance Fixes
CapabilityHandler (~16% render thread overhead eliminated)
- Removed per-tick reflection calls in
getFastenerCapability()for bothEntityandBlockEntityoverloads. The code was callingClass.getMethod()/Method.invoke()every tick trying to find old Forge API methods (getCapability,getData,setData,addCapability,getOrCreateCapability) that don't exist in NeoForge 1.21.1. Each call threwNoSuchMethodExceptionwhich is expensive to construct. - The
instanceofchecks forFastenerBlockEntity,FenceFastenerEntity, andPlayeralready covered all real use cases — the reflection fallbacks never succeeded.
Bug Fixes
Connection Item Matching (Connection.java)
- Fixed
matches()andreplace()using deadgetTag()reflection instead of the Data Components API.ItemStack.getTag()was removed in 1.20.5 — the reflection always failed and returnednull, causingmatches()to always returntruefor same-type items (preventing valid NBT comparison) andreplace()to always pass empty data (losing connection properties like color/pattern). Now correctly reads fromFLDataComponents.CONNECTION_LOGIC.
Dead Code Removal
FenceFastenerEntity.java
- Removed two useless reflection attempts for
NbtAccounter.unlimitedHeap()andNbtAccounter.createUnlimited(int)inreadSpawnData()— neither exists in 1.21.1. The correctNbtAccounter.create()was already the final fallback.
NetBuilder.java
- Removed dead reflection in
sendToClient()tryingPayloadRegistrar.send()andPayloadRegistrar.sendToPlayer()— neither method exists. The handler map fallback was the actual working code path.
ClientEventHandler.java
- Removed reflection-based
addVertexToBuffer()trying the oldVertexConsumer.vertex(double,double,double)chained API. This code path is unreachable (only called from commented-outdrawEntityHighlight).
ClientProxy.java
- Removed unused
getUvIndex()method containingVertexFormatElement.getUsage()reflection — never called from anywhere in the codebase.

