Я убил майнкрафт

Версия Minecraft
1.19.2
API
Fabric
10
0
Делал частицы по этому туториалу и получилось это:Minecraft_ 1.19.2 14.12.2022 15_25_55.png
Код:
SuperMod.java:
package ru.lotigara.classMod;

import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.particle.v1.FabricParticleTypes;
import net.minecraft.particle.DefaultParticleType;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class SuperMod implements ModInitializer {
    // This logger is used to write text to the console and the log file.
    // It is considered best practice to use your mod id as the logger's name.
    // That way, it's clear which mod wrote info, warnings, and errors.
    public static final Logger LOGGER = LoggerFactory.getLogger("lotigara");
    // instance of our particle
    public static final DefaultParticleType FIREFLY = FabricParticleTypes.simple();

    @Override
    public void onInitialize() {
        Registry.register(Registry.PARTICLE_TYPE, new Identifier("lotigara", "firefly"), FIREFLY);
        LOGGER.info("Hello Fabric world!");
    }
}
Ещё один файл:
SuperModClient.java:
package ru.lotigara.classMod;

import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.particle.v1.ParticleFactoryRegistry;
import net.fabricmc.fabric.api.event.client.ClientSpriteRegistryCallback;
import net.minecraft.client.particle.WaterSuspendParticle;
import net.minecraft.screen.PlayerScreenHandler;
import net.minecraft.util.Identifier;

public class SuperModClient implements ClientModInitializer {

    @Override
    public void onInitializeClient() {
        /* Adds our particle textures to vanilla's Texture Atlas so it can be shown properly.
         * Modify the namespace and particle id accordingly.
         *
         * This is only used if you plan to add your own textures for the particle. Otherwise, remove  this.*/
        ClientSpriteRegistryCallback.event(PlayerScreenHandler.BLOCK_ATLAS_TEXTURE).register(((atlasTexture, registry) -> {
            registry.register(new Identifier("lotigara", "particles/firefly"));
        }));

        /* Registers our particle client-side.
         * First argument is our particle's instance, created previously on ExampleMod.
         * Second argument is the particle's factory. The factory controls how the particle behaves.
         * In this example, we'll use FlameParticle's Factory.*/
        ParticleFactoryRegistry.getInstance().register(SuperMod.FIREFLY, WaterSuspendParticle.CrimsonSporeFactory::new);
    }
}
 
Краш-лог
//это постоянно происходит
[15:26:01] [Render thread/INFO] (Minecraft) Reloading ResourceManager: Default, Fabric Mods (Fabric Biome API (v1), Fabric Loot Tables (v1), Cloth Config v8, Fabric API Lookup API (v1), Fabric Command API (v1), Fabric Models (v0), Fabric Command API (v2), Fabric Object Builder API (v1), Fabric Renderer Registries (v1), Fabric Loot API (v2), Fabric Renderer - Indigo, Fabric API Base, Fabric Textures (v0), Fabric BlockRenderLayer Registration (v1), Fabric Loader, Fabric Entity Events (v1), Auth Me, Fabric Lifecycle Events (v1), Fabric Item API (v1), Fabric Message API (v1), Fabric Events Interaction (v0), Fabric Transitive Access Wideners (v1), Fabric Particles (v1), Fabric Renderer API (v1), Fabric Transfer API (v1), Fabric Networking (v0), Fabric Dimensions API (v1), Fabric Events Lifecycle (v0), Fabric Resource Conditions API (v1), Fabric Game Test API (v1), Fabric Registry Sync (v0), Fabric Networking API (v1), Fabric Item Groups (v0), Fabric Client Tags, Fabric Sound API (v1), Fabric Rendering Fluids (v1), Fabric Resource Loader (v0), lotigara SUPER MOD, Fabric Key Binding API (v1), Fabric API, Fabric Screen API (v1), LazyDFU, Fabric Containers (v0), Fabric Crash Report Info (v1), Fabric Rendering (v1), Fabric Screen Handler API (v1), Mod Menu, Fabric Data Generation API (v1), Fabric Key Bindings (v0), Accurate Block Placement, Fabric Rendering Data Attachment (v1), Fabric Convention Tags, Fabric Content Registries (v0), Fabric Mining Level API (v1), Fabric Game Rule API (v1), Fabric Commands (v0), Fabric Rendering (v0))
[15:26:01] [Render thread/INFO] (lotigara) This line is printed by an example mod mixin!
[15:26:02] [Render thread/INFO] (fabric-screen-api-v1) Caught error loading resourcepacks, removing all selected resourcepacks
java.util.concurrent.CompletionException: java.lang.IllegalStateException: Redundant texture list for particle lotigara:firefly
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?]
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1807) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) ~[?:?]
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?]
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?]
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?]
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?]
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?]
Caused by: java.lang.IllegalStateException: Redundant texture list for particle lotigara:firefly
at net.minecraft.client.particle.ParticleManager.loadTextureList(ParticleManager.java:276) ~[[email protected]:?]
at net.minecraft.client.particle.ParticleManager.method_18837(ParticleManager.java:228) ~[[email protected]:?]
at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) ~[?:?]
... 6 more
[15:26:02] [Render thread/INFO] (Minecraft) Reloading ResourceManager: Default, Fabric Mods (Fabric Biome API (v1), Fabric Loot Tables (v1), Cloth Config v8, Fabric API Lookup API (v1), Fabric Command API (v1), Fabric Models (v0), Fabric Command API (v2), Fabric Object Builder API (v1), Fabric Renderer Registries (v1), Fabric Loot API (v2), Fabric Renderer - Indigo, Fabric API Base, Fabric Textures (v0), Fabric BlockRenderLayer Registration (v1), Fabric Loader, Fabric Entity Events (v1), Auth Me, Fabric Lifecycle Events (v1), Fabric Item API (v1), Fabric Message API (v1), Fabric Events Interaction (v0), Fabric Transitive Access Wideners (v1), Fabric Particles (v1), Fabric Renderer API (v1), Fabric Transfer API (v1), Fabric Networking (v0), Fabric Dimensions API (v1), Fabric Events Lifecycle (v0), Fabric Resource Conditions API (v1), Fabric Game Test API (v1), Fabric Registry Sync (v0), Fabric Networking API (v1), Fabric Item Groups (v0), Fabric Client Tags, Fabric Sound API (v1), Fabric Rendering Fluids (v1), Fabric Resource Loader (v0), lotigara SUPER MOD, Fabric Key Binding API (v1), Fabric API, Fabric Screen API (v1), LazyDFU, Fabric Containers (v0), Fabric Crash Report Info (v1), Fabric Rendering (v1), Fabric Screen Handler API (v1), Mod Menu, Fabric Data Generation API (v1), Fabric Key Bindings (v0), Accurate Block Placement, Fabric Rendering Data Attachment (v1), Fabric Convention Tags, Fabric Content Registries (v0), Fabric Mining Level API (v1), Fabric Game Rule API (v1), Fabric Commands (v0), Fabric Rendering (v0))
//это происходит при закрытии майнкрафта
[15:26:02] [Render thread/INFO] (lotigara) This line is printed by an example mod mixin!
[15:26:03] [Render thread/INFO] (fabric-screen-api-v1) Stopping!
[15:26:03] [Render thread/ERROR] (fabric-screen-api-v1) Shutdown failure!
java.util.ConcurrentModificationException: null
at java.util.HashMap.forEach(HashMap.java:1424) ~[?:?]
at net.minecraft.client.texture.TextureManager.close(TextureManager.java:173) ~[[email protected]:?]
at net.minecraft.client.MinecraftClient.close(MinecraftClient.java:1092) [[email protected]:?]
at net.minecraft.client.MinecraftClient.stop(MinecraftClient.java:1068) [[email protected]:?]
at net.minecraft.client.main.Main.main(Main.java:260) [[email protected]:?]
at net.minecraft.client.main.Main.main(Main.java:51) [[email protected]:?]
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:461) [fabric-loader-0.14.10.jar:?]
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) [fabric-loader-0.14.10.jar:?]
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) [fabric-loader-0.14.10.jar:?]
at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) [dev-launch-injector-0.2.1+build.8.jar:?]

Process finished with exit code 0
Краш-лог:
//это постоянно происходит
[15:26:01] [Render thread/INFO] (Minecraft) Reloading ResourceManager: Default, Fabric Mods (Fabric Biome API (v1), Fabric Loot Tables (v1), Cloth Config v8, Fabric API Lookup API (v1), Fabric Command API (v1), Fabric Models (v0), Fabric Command API (v2), Fabric Object Builder API (v1), Fabric Renderer Registries (v1), Fabric Loot API (v2), Fabric Renderer - Indigo, Fabric API Base, Fabric Textures (v0), Fabric BlockRenderLayer Registration (v1), Fabric Loader, Fabric Entity Events (v1), Auth Me, Fabric Lifecycle Events (v1), Fabric Item API (v1), Fabric Message API (v1), Fabric Events Interaction (v0), Fabric Transitive Access Wideners (v1), Fabric Particles (v1), Fabric Renderer API (v1), Fabric Transfer API (v1), Fabric Networking (v0), Fabric Dimensions API (v1), Fabric Events Lifecycle (v0), Fabric Resource Conditions API (v1), Fabric Game Test API (v1), Fabric Registry Sync (v0), Fabric Networking API (v1), Fabric Item Groups (v0), Fabric Client Tags, Fabric Sound API (v1), Fabric Rendering Fluids (v1), Fabric Resource Loader (v0), lotigara SUPER MOD, Fabric Key Binding API (v1), Fabric API, Fabric Screen API (v1), LazyDFU, Fabric Containers (v0), Fabric Crash Report Info (v1), Fabric Rendering (v1), Fabric Screen Handler API (v1), Mod Menu, Fabric Data Generation API (v1), Fabric Key Bindings (v0), Accurate Block Placement, Fabric Rendering Data Attachment (v1), Fabric Convention Tags, Fabric Content Registries (v0), Fabric Mining Level API (v1), Fabric Game Rule API (v1), Fabric Commands (v0), Fabric Rendering (v0))
[15:26:01] [Render thread/INFO] (lotigara) This line is printed by an example mod mixin!
[15:26:02] [Render thread/INFO] (fabric-screen-api-v1) Caught error loading resourcepacks, removing all selected resourcepacks
 java.util.concurrent.CompletionException: java.lang.IllegalStateException: Redundant texture list for particle lotigara:firefly
	at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?]
	at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
	at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1807) ~[?:?]
	at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) ~[?:?]
	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?]
	at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?]
	at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?]
	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?]
	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?]
Caused by: java.lang.IllegalStateException: Redundant texture list for particle lotigara:firefly
	at net.minecraft.client.particle.ParticleManager.loadTextureList(ParticleManager.java:276) ~[[email protected]:?]
	at net.minecraft.client.particle.ParticleManager.method_18837(ParticleManager.java:228) ~[[email protected]:?]
	at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) ~[?:?]
	... 6 more
[15:26:02] [Render thread/INFO] (Minecraft) Reloading ResourceManager: Default, Fabric Mods (Fabric Biome API (v1), Fabric Loot Tables (v1), Cloth Config v8, Fabric API Lookup API (v1), Fabric Command API (v1), Fabric Models (v0), Fabric Command API (v2), Fabric Object Builder API (v1), Fabric Renderer Registries (v1), Fabric Loot API (v2), Fabric Renderer - Indigo, Fabric API Base, Fabric Textures (v0), Fabric BlockRenderLayer Registration (v1), Fabric Loader, Fabric Entity Events (v1), Auth Me, Fabric Lifecycle Events (v1), Fabric Item API (v1), Fabric Message API (v1), Fabric Events Interaction (v0), Fabric Transitive Access Wideners (v1), Fabric Particles (v1), Fabric Renderer API (v1), Fabric Transfer API (v1), Fabric Networking (v0), Fabric Dimensions API (v1), Fabric Events Lifecycle (v0), Fabric Resource Conditions API (v1), Fabric Game Test API (v1), Fabric Registry Sync (v0), Fabric Networking API (v1), Fabric Item Groups (v0), Fabric Client Tags, Fabric Sound API (v1), Fabric Rendering Fluids (v1), Fabric Resource Loader (v0), lotigara SUPER MOD, Fabric Key Binding API (v1), Fabric API, Fabric Screen API (v1), LazyDFU, Fabric Containers (v0), Fabric Crash Report Info (v1), Fabric Rendering (v1), Fabric Screen Handler API (v1), Mod Menu, Fabric Data Generation API (v1), Fabric Key Bindings (v0), Accurate Block Placement, Fabric Rendering Data Attachment (v1), Fabric Convention Tags, Fabric Content Registries (v0), Fabric Mining Level API (v1), Fabric Game Rule API (v1), Fabric Commands (v0), Fabric Rendering (v0))
//это происходит при закрытии майнкрафта
[15:26:02] [Render thread/INFO] (lotigara) This line is printed by an example mod mixin!
[15:26:03] [Render thread/INFO] (fabric-screen-api-v1) Stopping!
[15:26:03] [Render thread/ERROR] (fabric-screen-api-v1) Shutdown failure!
 java.util.ConcurrentModificationException: null
	at java.util.HashMap.forEach(HashMap.java:1424) ~[?:?]
	at net.minecraft.client.texture.TextureManager.close(TextureManager.java:173) ~[[email protected]:?]
	at net.minecraft.client.MinecraftClient.close(MinecraftClient.java:1092) [[email protected]:?]
	at net.minecraft.client.MinecraftClient.stop(MinecraftClient.java:1068) [[email protected]:?]
	at net.minecraft.client.main.Main.main(Main.java:260) [[email protected]:?]
	at net.minecraft.client.main.Main.main(Main.java:51) [[email protected]:?]
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:461) [fabric-loader-0.14.10.jar:?]
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) [fabric-loader-0.14.10.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) [fabric-loader-0.14.10.jar:?]
	at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) [dev-launch-injector-0.2.1+build.8.jar:?]

Process finished with exit code 0
446
42
117
ConcurrentModificationException возникает, когда ты во время итерации по своей HashMap (и не только по ней) ее изменяешь. Чтобы избежать этой ошибки, прогоняй цикл по копии например.

for(Object o: yourMap.values()) -> for(Object o: new ArrayList(yourMap.values()))
 
170
2
53
Плохое решение, такое же как заменить все HashMap на ConcurrentHashMap, и HashSet на ConcurrentHashMap.keySet();
В прочем то что я предложил, будет логичнее если у тс проблемы с понятием асинхронности.
 
Сверху