Jump to content

ATM 8 Crashes with IllegalStateException: Accessing LegacyRandomSource from multiple threads


ElectricCosmos

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.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Hello everyone.  I need help.  I'm relatively new to modding Minecraft and can't make heads-or-tails of the crash-logs.  I have both the actual crash report and the "latest" log file to look at. This only began happening recently, and I cannot figure out exactly what the cause is.  Some sources I've had look at it have said perhaps it's Cupboard.  Others have said it may be related to the Forgified API and "Connections", but I've attempted break-down with removing both of those and still have gotten the crashes. Regardless, I am uncertain what to do.  Admittedly I don't want to get rid of Cupboard, as I have several additional QOL mods that depend on it.  Also, I would like to know if there's an Embeddium-friendly version of Entity Texture Features, as apparently my version seems to have issue with it?  According to an Embeddium post near the top of the crash log. The files are enclosed below.  Thank you in advance. - TheMegaNerd    
    • i keep getting these errors and im not sure how to fix them or if i can just leave them be :PS i know about the missing tags i just dont have the mods required to add those extra villages Here is the log  https://paste.ee/p/KpYoV
    • Minecraft: 1.18.2, Forge: 40.2.21 I created some code that renders a custom particle. The particle renders without depth test: `disableDepthTest()` and should be visible through other blocks. Locally, all works fine. When I install it on the server and client, it also works fine. But when the mod is removed from the server, it no longer works.   The particle is registered under the name "DEPTH_VISION", and if i check if it is present `ModParticles.DEPTH_VISION.isPresent()`, while the mod is not on the server, I get a `false` back.   So my question is: - Is it even possible to make a custom particle, while staying client side only? - What do I need to change to make it work?    ModParticles.java import net.minecraft.core.particles.SimpleParticleType; import net.minecraft.core.particles.ParticleType; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; public class ModParticles { public static final DeferredRegister<ParticleType<?>> REGISTRY = DeferredRegister.create(ForgeRegistries.PARTICLE_TYPES, SomeNameMod.MODID); public static final RegistryObject<SimpleParticleType> DEPTH_VISION = REGISTRY.register("depth_vision", () -> new SimpleParticleType(true)); }    SomeNameMod.java import com.peet.somename.HighlightBlock; import com.peet.somename.DepthVisionParticle; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.TextureAtlas; import net.minecraft.core.particles.ParticleType; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.Level; import net.minecraft.world.entity.player.Player; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.TickEvent; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.client.event.ParticleFactoryRegisterEvent; import net.minecraftforge.client.event.TextureStitchEvent; @Mod(com.peet.somename.SomeNameMod.MODID) public class SomeNameMod { public static final String MODID = "somename"; private static int tickCounter = 0; // Counter to track ticks public SomeNameMod() { IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); modEventBus.addListener(this::onTextureStitch); modEventBus.addListener(this::registerParticleFactories); ModParticles.REGISTRY.register(modEventBus); MinecraftForge.EVENT_BUS.register(this); } @SubscribeEvent public void registerParticleFactories(ParticleFactoryRegisterEvent event) { Minecraft.getInstance().particleEngine.register((ParticleType) ModParticles.DEPTH_VISION.get(), DepthVisionParticle.Factory::new); } @SubscribeEvent public void onWorldTick(TickEvent.WorldTickEvent event) { if (event.phase == TickEvent.Phase.END) { Level world = event.world; if (!world.isClientSide) return; if (tickCounter++ >= 20) { // 5 seconds = 100 ticks Player player = Minecraft.getInstance().player; if (player != null) { HighlightBlock.spawnParticles(world, player); } tickCounter = 0; // Reset the counter after spawning particles } } } @SubscribeEvent public void onClientTick(TickEvent.ClientTickEvent event) { } @SubscribeEvent public void onTextureStitch(TextureStitchEvent.Pre event) { if (event.getAtlas().location().equals(TextureAtlas.LOCATION_PARTICLES)) { event.addSprite(new ResourceLocation(MODID, "particles/depth_vision")); } } }    HighlightBlock.java import com.peet.somename.ModParticles; import net.minecraft.network.chat.TextComponent; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import net.minecraft.client.Minecraft; import net.minecraft.client.particle.ParticleEngine; public class HighlightBlock { public static <ExceptionType> void spawnParticles(Level world, Player player ) { ParticleEngine particleEngine = Minecraft.getInstance().particleEngine; if (!ModParticles.DEPTH_VISION.isPresent()) { Minecraft.getInstance().player.sendMessage(new TextComponent("DEPTH_VISION particle is not registered."), Minecraft.getInstance().player.getUUID()); return; } particleEngine.createParticle(ModParticles.DEPTH_VISION.get(), 0, 0, 0, 0.0, 0.0, 0.0); } }    DepthVisionParticle.java package com.peet.somename.particles; import net.minecraft.client.particle.Particle; import net.minecraft.core.particles.SimpleParticleType; import net.minecraft.client.particle.ParticleProvider; import com.mojang.blaze3d.vertex.Tesselator; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.renderer.texture.TextureManager; import com.mojang.blaze3d.vertex.BufferBuilder; import net.minecraft.world.entity.player.Player; import net.minecraft.client.Minecraft; import net.minecraft.client.Camera; import com.mojang.blaze3d.vertex.VertexConsumer; import net.minecraft.client.particle.SpriteSet; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.particle.ParticleRenderType; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraft.client.particle.SimpleAnimatedParticle; @OnlyIn(Dist.CLIENT) public class DepthVisionParticle extends SimpleAnimatedParticle { private static final ParticleRenderType DEPTH_PARTICLE_SHEET_TRANSLUCENT; private DepthVisionParticle(final ClientLevel world, final double x, final double y, final double z, final double motionX, final double motionY, final double motionZ, final SpriteSet spriteWithAge) { super(world, x, y, z, spriteWithAge, 0.0f); this.xd = motionX; this.yd = motionY; this.zd = motionZ; this.lifetime = 20; this.setSpriteFromAge(spriteWithAge); } public void render(final VertexConsumer buffer, final Camera renderInfo, final float partialTicks) { final Player player = Minecraft.getInstance().player; super.render(buffer, renderInfo, partialTicks); } public void tick() { super.tick(); this.setSprite(this.sprite); if (this.age++ >= this.lifetime) { this.remove(); } } public ParticleRenderType getRenderType() { return com.peet.somename.particles.DepthVisionParticle.DEPTH_PARTICLE_SHEET_TRANSLUCENT; } static { DEPTH_PARTICLE_SHEET_TRANSLUCENT = new ParticleRenderType() { public void begin(BufferBuilder buffer, TextureManager textureManager) { RenderSystem.disableDepthTest(); ParticleRenderType.PARTICLE_SHEET_TRANSLUCENT.begin(buffer, textureManager); } public void end(Tesselator tessellator) { ParticleRenderType.PARTICLE_SHEET_TRANSLUCENT.end(tessellator); RenderSystem.enableDepthTest(); } }; } @OnlyIn(Dist.CLIENT) public static class Factory implements ParticleProvider<SimpleParticleType> { private final SpriteSet spriteSet; public Factory(final SpriteSet spriteSet) { this.spriteSet = spriteSet; } public Particle createParticle(final SimpleParticleType type, final ClientLevel world, final double x, final double y, final double z, final double xSpeed, final double ySpeed, final double zSpeed ) { final com.peet.somename.particles.DepthVisionParticle particle = new com.peet.somename.particles.DepthVisionParticle(world, x, y, z, 0.0, 0.0, 0.0, this.spriteSet); particle.setParticleSpeed((float) xSpeed, (float) ySpeed, (float) zSpeed); return particle; } } }  
    • no, but do you know  any alternatives that will give me access to shaders?
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.