Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

1.16.3 Game crash at launch with forge 34.1.33


Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • I have custom mappings. I have a repository with them. I tryed to attach them: ... minecraft { mappings channel: 'custom', version: 'com.github.GoogeTan:TheMappings:Tag' accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') runs { client { workingDirectory project.file('run') property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' property 'forge.logging.console.level', 'debug' ... But it shouts: A problem occurred configuring root project 'PhoenixProject'. > Supplied String module notation 'net.minecraftforge:forge:1.15.2-31.2.47_mapped_custom_com.github.GoogeTan:TheMappings:Tag_at_904f7754f2116b78834cf8ff88239b5b038624fc' is invalid. Example notations: 'org.gradle:gradle-core:2.2', 'org.mockito:mockito-core:1.9.5:javadoc'. What i sould do?
    • I found a pretty thing: `IModLocator#findPath` It's look as good solve to get actual location of "service" files for each mod
    • Have you been able to generate them properly ? I'm struggling on that bit
    • The thing is that your chunk generator is generated deep inside the data pack loading - before there is even a world (check where DimensionGeneratorSettings.CODEC is used - this is what ultimately will instantiate your chunk generator). fillFromNoise will (as far as I can tell) always be called on a WorldGenRegion (don't rely on this, mods might do bad things). IWorld has a method getLevel which will return you the ServerWorld - but not all implementations will provide you something useful here (all vanilla implementations, WorldGenRegion and ServerWorld, do, but again, don't rely on this). So, you can get at the ServerWorld by calling getLevel. Now what? Well, you have achieved nothing, because you cannot use this world in a useful way. You are running on a world generation thread and ServerWorld is not threadsafe. Do not be tempted to ignore this, you will crash the game or cause strange behavior at some point. It will probably work fine for a long time. Then crash or do something stupid once - and then behave again. You could try and create some kind of thread-safe storage that your generator can then use. How do you populate it? You cannot use WorldEvent.Load because the game actually does a whole bunch of "setting up" (e.g. setting the spawn position) before that fires - which loads chunks. What you have to do instead is use AttachCapabilitiesEvent<World> which fires right from the ServerWorld constructor. In there, get your WorldSavedData and put it in a thread safe map with weak keys (Weak keys because otherwise your map will prevent worlds from being unloaded; Guava's MapMaker does this for you: MapMaker().weakKeys().makeMap()). Then you can access this map from your chunk generator using the ServerWorld you get from the IWorld. Note that whatever data you access in the WorldSavedData must still be threadsafe (for example you can't use an ArrayList). This is untested - but should work.
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.