Skip to content

NeoForge support (1.20.6, 1.21.1, 1.21.4)#4183

Open
minimusubi wants to merge 12 commits intowebbukkit:v3.0from
minimusubi:neoforge
Open

NeoForge support (1.20.6, 1.21.1, 1.21.4)#4183
minimusubi wants to merge 12 commits intowebbukkit:v3.0from
minimusubi:neoforge

Conversation

@minimusubi
Copy link
Copy Markdown

Adds support for NeoForge on the three relevant versions:

  • 1.20.6 (last version of 1.20) (untested)
  • 1.21.1 (most mod-supported version of 1.21)
  • 1.21.4 (latest version of 1.21) (untested)

Notes

  • Updated NeoGradle to 7.0.178
  • Updated Gradle (and Gradle wrapper) from 8.7 to 8.12 for newer NeoGradle support
  • Updated fabric-loom from 1.6.11 to 1.9.2 for newer Gradle support

* The fabric-loom upgrade was done based off of 30d6845, but after the recent merges, may not be required

@NeffIsBack
Copy link
Copy Markdown

Can confirm at least for All-The-Mods 10 (1.21.1) it works 🎉

@NeffIsBack
Copy link
Copy Markdown

Not sure if that is due to this PR, but it crashed the server after ~5mins:

[16März2025 17:51:54.445] [Server thread/ERROR] [net.minecraft.util.thread.BlockableEventLoop/FATAL]: Error executing task on Chunk source main thread executor for minecraft:overworld
net.minecraft.ReportedException: Feature placement
	at TRANSFORMER/[email protected]/net.minecraft.server.level.ChunkMap.lambda$applyStep$19(ChunkMap.java:641) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:148) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.server.level.ServerChunkCache$MainThreadExecutor.doRunTask(ServerChunkCache.java:559) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:122) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.server.level.ServerChunkCache$MainThreadExecutor.pollTask(ServerChunkCache.java:568) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:132) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.server.level.ServerChunkCache$MainThreadExecutor.managedBlock(ServerChunkCache.java:533) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.server.level.ServerChunkCache.getChunk(ServerChunkCache.java:159) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/org.dynmap.neoforge_1_21_1.NeoForgeMapChunkCache.getLoadedChunk(NeoForgeMapChunkCache.java:41) ~[Dynmap-3.7-SNAPSHOT-neoforge-1.21.1.jar%23618!/:?]
	at TRANSFORMER/[email protected]/org.dynmap.common.chunk.GenericMapChunkCache.getLoadedChunks(GenericMapChunkCache.java:762) ~[Dynmap-3.7-SNAPSHOT-neoforge-1.21.1.jar%23618!/:?]
	at TRANSFORMER/[email protected]/org.dynmap.neoforge_1_21_1.NeoForgeServer$1.call(NeoForgeServer.java:433) ~[Dynmap-3.7-SNAPSHOT-neoforge-1.21.1.jar%23618!/:?]
	at TRANSFORMER/[email protected]/org.dynmap.neoforge_1_21_1.NeoForgeServer$1.call(NeoForgeServer.java:427) ~[Dynmap-3.7-SNAPSHOT-neoforge-1.21.1.jar%23618!/:?]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?]
	at TRANSFORMER/[email protected]/org.dynmap.neoforge_1_21_1.NeoForgeServer.tickEvent(NeoForgeServer.java:510) ~[Dynmap-3.7-SNAPSHOT-neoforge-1.21.1.jar%23618!/:?]
	at MC-BOOTSTRAP/net.neoforged.bus/net.neoforged.bus.EventBus.post(EventBus.java:350) ~[bus-8.0.2.jar%2367!/:?]
	at MC-BOOTSTRAP/net.neoforged.bus/net.neoforged.bus.EventBus.post(EventBus.java:315) ~[bus-8.0.2.jar%2367!/:?]
	at TRANSFORMER/[email protected]/net.neoforged.neoforge.event.EventHooks.fireServerTickPost(EventHooks.java:1002) ~[neoforge-21.1.133-universal.jar%23512!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:943) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:707) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:267) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "org.dynmap.markers.MarkerSet.getDefaultMarkerIcon()" because "markerSet" is null
	at TRANSFORMER/[email protected]/net.blay09.mods.waystones.compat.DynmapIntegration.createWaystoneMarker(DynmapIntegration.java:122) ~[waystones-neoforge-1.21.1-21.1.13.jar%23879!/:21.1.13]
	at TRANSFORMER/[email protected]/net.blay09.mods.waystones.compat.DynmapIntegration.addWaystoneMarker(DynmapIntegration.java:52) ~[waystones-neoforge-1.21.1-21.1.13.jar%23879!/:21.1.13]
	at TRANSFORMER/[email protected]/net.blay09.mods.waystones.compat.DynmapIntegration.lambda$onWaystoneInitialized$0(DynmapIntegration.java:92) ~[waystones-neoforge-1.21.1-21.1.13.jar%23879!/:21.1.13]
	at TRANSFORMER/[email protected]/net.blay09.mods.waystones.compat.DynmapIntegration.runWhenDynmapIsReady(DynmapIntegration.java:145) ~[waystones-neoforge-1.21.1-21.1.13.jar%23879!/:21.1.13]
	at TRANSFORMER/[email protected]/net.blay09.mods.waystones.compat.DynmapIntegration.onWaystoneInitialized(DynmapIntegration.java:92) ~[waystones-neoforge-1.21.1-21.1.13.jar%23879!/:21.1.13]
	at TRANSFORMER/[email protected]/net.blay09.mods.balm.neoforge.event.NeoForgeBalmEvents.fireEventHandler(NeoForgeBalmEvents.java:50) ~[balm-neoforge-1.21.1-21.0.31.jar%23558!/:21.0.31]
	at TRANSFORMER/[email protected]/net.blay09.mods.balm.neoforge.event.NeoForgeBalmEvents.lambda$fireEventHandlers$0(NeoForgeBalmEvents.java:44) ~[balm-neoforge-1.21.1-21.0.31.jar%23558!/:21.0.31]
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[?:?]
	at TRANSFORMER/[email protected]/net.blay09.mods.balm.neoforge.event.NeoForgeBalmEvents.fireEventHandlers(NeoForgeBalmEvents.java:44) ~[balm-neoforge-1.21.1-21.0.31.jar%23558!/:21.0.31]
	at TRANSFORMER/[email protected]/net.blay09.mods.balm.neoforge.event.NeoForgeBalmEvents.fireEvent(NeoForgeBalmEvents.java:76) ~[balm-neoforge-1.21.1-21.0.31.jar%23558!/:21.0.31]
	at TRANSFORMER/[email protected]/net.blay09.mods.waystones.core.WaystoneManagerImpl.addWaystone(WaystoneManagerImpl.java:41) ~[waystones-neoforge-1.21.1-21.1.13.jar%23879!/:21.1.13]
	at TRANSFORMER/[email protected]/net.blay09.mods.waystones.block.entity.WaystoneBlockEntityBase.initializeWaystone(WaystoneBlockEntityBase.java:206) ~[waystones-neoforge-1.21.1-21.1.13.jar%23879!/:21.1.13]
	at TRANSFORMER/[email protected]/net.blay09.mods.waystones.worldgen.WaystoneFeature.place(WaystoneFeature.java:51) ~[waystones-neoforge-1.21.1-21.1.13.jar%23879!/:21.1.13]
	at TRANSFORMER/[email protected]/net.minecraft.world.level.levelgen.feature.Feature.place(Feature.java:168) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.world.level.levelgen.feature.ConfiguredFeature.place(ConfiguredFeature.java:28) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.world.level.levelgen.placement.PlacedFeature.lambda$placeWithContext$4(PlacedFeature.java:54) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[?:?]
	at java.base/java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?]
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?]
	at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?]
	at java.base/java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?]
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[?:?]
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[?:?]
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?]
	at TRANSFORMER/[email protected]/net.minecraft.world.level.levelgen.placement.PlacedFeature.placeWithContext(PlacedFeature.java:53) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.world.level.levelgen.placement.PlacedFeature.placeWithBiomeCheck(PlacedFeature.java:42) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.world.level.chunk.ChunkGenerator.applyBiomeDecoration(ChunkGenerator.java:396) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.world.level.chunk.status.ChunkStatusTasks.generateFeatures(ChunkStatusTasks.java:154) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.world.level.chunk.status.ChunkStep.apply(ChunkStep.java:33) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.server.level.ChunkMap.applyStep(ChunkMap.java:628) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.server.level.GenerationChunkHolder.applyStep(GenerationChunkHolder.java:64) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.server.level.ChunkGenerationTask.scheduleChunkInLayer(ChunkGenerationTask.java:143) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.server.level.ChunkGenerationTask.scheduleLayer(ChunkGenerationTask.java:121) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.server.level.ChunkGenerationTask.scheduleNextLayer(ChunkGenerationTask.java:74) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.server.level.ChunkGenerationTask.runUntilWait(ChunkGenerationTask.java:59) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.server.level.ChunkMap.lambda$runGenerationTask$21(ChunkMap.java:657) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.server.level.ChunkTaskPriorityQueueSorter.lambda$message$1(ChunkTaskPriorityQueueSorter.java:62) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.util.thread.ProcessorMailbox.pollTask(ProcessorMailbox.java:91) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.util.thread.ProcessorMailbox.pollUntil(ProcessorMailbox.java:146) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.util.thread.ProcessorMailbox.run(ProcessorMailbox.java:102) ~[server-1.21.1-20240808.144430-srg.jar%23511!/:?]
	at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1423) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1310) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1841) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1806) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188) ~[?:?]
[16März2025 17:51:54.495] [Worker-Main-6/FATAL] [net.neoforged.neoforge.common.NeoForgeMod/]: Preparing crash report with UUID 7cb26769-b196-42f6-a82f-54ef011d7f9a

@ckoval7
Copy link
Copy Markdown

ckoval7 commented May 20, 2025

This is what I get with ATM10:
java.lang.NullPointerException: Cannot invoke "org.dynmap.markers.MarkerSet.getDefaultMarkerIcon()" because "markerSet" is null

Full crash report:

crash-2025-05-20_18.41.49-server.txt

@ciefa
Copy link
Copy Markdown

ciefa commented May 30, 2025

Anyone got it working for ATM10?

@nuclearpidgeon
Copy link
Copy Markdown

nuclearpidgeon commented May 3, 2026

@ckoval7 interestingly your crash report indicates the crash was from a DynmapIntegration part of a Waystones mod:

java.lang.NullPointerException: Cannot invoke "org.dynmap.markers.MarkerSet.getDefaultMarkerIcon()" because "markerSet" is null
	at TRANSFORMER/[email protected]/net.blay09.mods.waystones.compat.DynmapIntegration.createWaystoneMarker(DynmapIntegration.java:49) ~[waystones-neoforge-1.21.1-21.1.17.jar%23921!/:21.1.17] {re:classloading}
	at TRANSFORMER/[email protected]/net.blay09.mods.waystones.compat.DynmapIntegration.addWaystoneMarker(DynmapIntegration.java:100) ~[waystones-neoforge-1.21.1-21.1.17.jar%23921!/:21.1.17] {re:classloading}
	at TRANSFORMER/[email protected]/net.blay09.mods.waystones.compat.DynmapIntegration.lambda$onWaystoneInitialized$0(DynmapIntegration.java:135) ~[waystones-neoforge-1.21.1-21.1.17.jar%23921!/:21.1.17] {re:classloading}
	at TRANSFORMER/[email protected]/net.blay09.mods.waystones.compat.DynmapIntegration.runWhenDynmapIsReady(DynmapIntegration.java:167) ~[waystones-neoforge-1.21.1-21.1.17.jar%23921!/:21.1.17] {re:classloading}
	at TRANSFORMER/[email protected]/net.blay09.mods.waystones.compat.DynmapIntegration.onWaystoneInitialized(DynmapIntegration.java:135) ~[waystones-neoforge-1.21.1-21.1.17.jar%23921!/:21.1.17] {re:classloading}
	at TRANSFORMER/[email protected]/net.blay09.mods.balm.neoforge.event.NeoForgeBalmEvents.fireEventHandler(NeoForgeBalmEvents.java:60) ~[balm-neoforge-1.21.1-21.0.41.jar%23579!/:21.0.41] {re:classloading}
	at TRANSFORMER/[email protected]/net.blay09.mods.balm.neoforge.event.NeoForgeBalmEvents.lambda$fireEventHandlers$0(NeoForgeBalmEvents.java:54) ~[balm-neoforge-1.21.1-21.0.41.jar%23579!/:21.0.41] {re:classloading}
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[?:?] {re:mixin}
	at TRANSFORMER/[email protected]/net.blay09.mods.balm.neoforge.event.NeoForgeBalmEvents.fireEventHandlers(NeoForgeBalmEvents.java:54) ~[balm-neoforge-1.21.1-21.0.41.jar%23579!/:21.0.41] {re:classloading}
	at TRANSFORMER/[email protected]/net.blay09.mods.balm.neoforge.event.NeoForgeBalmEvents.fireEvent(NeoForgeBalmEvents.java:86) ~[balm-neoforge-1.21.1-21.0.41.jar%23579!/:21.0.41] {re:classloading}
	at TRANSFORMER/[email protected]/net.blay09.mods.waystones.core.WaystoneManagerImpl.addWaystone(WaystoneManagerImpl.java:41) ~[waystones-neoforge-1.21.1-21.1.17.jar%23921!/:21.1.17] {re:classloading}
	at TRANSFORMER/[email protected]/net.blay09.mods.waystones.block.entity.WaystoneBlockEntityBase.initializeWaystone(WaystoneBlockEntityBase.java:206) ~[waystones-neoforge-1.21.1-21.1.17.jar%23921!/:21.1.17] {re:classloading}
	at TRANSFORMER/[email protected]/net.blay09.mods.waystones.block.entity.WaystoneBlockEntityBase.getWaystone(WaystoneBlockEntityBase.java:178) ~[waystones-neoforge-1.21.1-21.1.17.jar%23921!/:21.1.17] {re:classloading}
	at TRANSFORMER/[email protected]/net.blay09.mods.waystones.block.entity.WaystoneBlockEntityBase.initializeFromBase(WaystoneBlockEntityBase.java:223) ~[waystones-neoforge-1.21.1-21.1.17.jar%23921!/:21.1.17] {re:classloading}
	at TRANSFORMER/[email protected]/net.blay09.mods.waystones.block.entity.WaystoneBlockEntityBase.getWaystone(WaystoneBlockEntityBase.java:182) ~[waystones-neoforge-1.21.1-21.1.17.jar%23921!/:21.1.17] {re:classloading}
	at TRANSFORMER/[email protected]/net.blay09.mods.waystones.block.entity.WaystoneBlockEntityBase.writeUpdateTag(WaystoneBlockEntityBase.java:140) ~[waystones-neoforge-1.21.1-21.1.17.jar%23921!/:21.1.17] {re:classloading}
	at TRANSFORMER/[email protected]/net.blay09.mods.balm.common.BalmBlockEntity.createUpdateTag(BalmBlockEntity.java:183) ~[balm-neoforge-1.21.1-21.0.41.jar%23579!/:21.0.41] {re:classloading}
	at TRANSFORMER/[email protected]/net.blay09.mods.balm.common.BalmBlockEntity.getUpdateTag(BalmBlockEntity.java:45) ~[balm-neoforge-1.21.1-21.0.41.jar%23579!/:21.0.41] {re:classloading}
	at TRANSFORMER/[email protected]/net.minecraft.network.protocol.game.ClientboundLevelChunkPacketData$BlockEntityInfo.create(ClientboundLevelChunkPacketData.java:162) ~[server-1.21.1-20240808.144430-srg.jar%23531!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:supplementaries.mixins.json:ChunkHolderMixin from mod supplementaries,pl:mixin:A}
...

see: https://github.com/TwelveIterations/Waystones/blob/6020fd7d4c5d3a3fe0ce762fd2f1f0911e1901b7/common/src/main/java/net/blay09/mods/waystones/compat/DynmapIntegration.java#L43-L53

Same error with a very similar stacktrace (albeit in a Forge top-level context) is mentioned in TwelveIterations/Waystones#863

@nuclearpidgeon
Copy link
Copy Markdown

nuclearpidgeon commented May 3, 2026

OK so in the version cited in your logs (v21.1.17), the fix for TwelveIterations/Waystones#863 is in place: https://github.com/TwelveIterations/Waystones/blob/v21.1.17/common/src/main/java/net/blay09/mods/waystones/compat/DynmapIntegration.java

(see TwelveIterations/Waystones@04aef68 for changes made as part of the fix that the issue was closed with)

So it could be a regression, or maybe just some other kind of initialization issue leading to that null reference getting hit. The code in question does involve calling DynmapCommonAPI, which is Dynmap code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants