Everything posted by snowstep115
-
[1.14.4] NetworkRegistry$ChannelBuilder.simpleChannel crush
Thank you. I understand that code. I should not use SimpleChannel.registerMessage.
-
[1.14.4] NetworkRegistry$ChannelBuilder.simpleChannel crush
Just not to call simpleChannel simultaneously.
-
[1.14.4] NetworkRegistry$ChannelBuilder.simpleChannel crush
In order to separate simpleChannel call and others. Other two mods have same initialization codes, they also set up channels by FMLCommonSetupEvent. I want to make other two mods stop setting up their channels during the one mod is setting up the channel.
-
[1.14.4] NetworkRegistry$ChannelBuilder.simpleChannel crush
Umm, here is main mod class. And event handler class.
-
[1.14.4] NetworkRegistry$ChannelBuilder.simpleChannel crush
You know I'm afraid that ChannelBuilder.simpleChannel, or more deep method, is not threadsafe. Actually, the exception has never caused by this way. Yes, I know this is stupid.
-
[1.14.4] NetworkRegistry$ChannelBuilder.simpleChannel crush
Although I really want to have something like an inter-mod mutex, I used stupidly temporary directory instead. It works well if only my initialization codes run. public static void init() { File file = new File("config" + File.separator + "snowstep115"); while (file.exists() || !file.mkdir()) { try { Thread.sleep(10); } catch (InterruptedException exception) { } } try { HANDLER = NetworkRegistry.ChannelBuilder.named(NAME) .clientAcceptedVersions(PROTOCOL_VERSION::equals) .serverAcceptedVersions(PROTOCOL_VERSION::equals) .networkProtocolVersion(() -> PROTOCOL_VERSION) .simpleChannel(); } finally { file.delete(); } }
-
[1.14.4] NetworkRegistry$ChannelBuilder.simpleChannel crush
I made three mods which have same initialization code for simple channel, and they run simultaneously. I've just made them create a same temporary directory during ChannelBuilder.simpleChannel in order to avoid this problem. It seems to work well now.
-
[1.14.4] NetworkRegistry$ChannelBuilder.simpleChannel crush
[modloading-worker-2/ERROR] [ne.mi.fm.ja.FMLModContainer/]: Exception caught during firing event: 14 Index: 1 Listeners: 0: NORMAL 1: net.minecraftforge.eventbus.EventBus$$Lambda$2647/1527166994@1a39a848 java.lang.ArrayIndexOutOfBoundsException: 14 at net.minecraftforge.eventbus.ListenerList.register(ListenerList.java:125) at net.minecraftforge.eventbus.EventBus.addToListeners(EventBus.java:229) at net.minecraftforge.eventbus.EventBus.addListener(EventBus.java:204) at net.minecraftforge.eventbus.EventBus.addListener(EventBus.java:200) at net.minecraftforge.eventbus.EventBus.addListener(EventBus.java:161) at net.minecraftforge.eventbus.EventBus.addListener(EventBus.java:156) at net.minecraftforge.eventbus.EventBus.addListener(EventBus.java:151) at net.minecraftforge.fml.network.NetworkInstance.addListener(NetworkInstance.java:63) at net.minecraftforge.fml.network.simple.SimpleChannel.<init>(SimpleChannel.java:49) at net.minecraftforge.fml.network.NetworkRegistry$ChannelBuilder.simpleChannel(NetworkRegistry.java:409) at com.snowstep115.ssench.network.PacketHandler.init(PacketHandler.java:24) at com.snowstep115.ssench.SSEnchMod.commonSetup(SSEnchMod.java:77) at net.minecraftforge.eventbus.EventBus.doCastFilter(EventBus.java:212) at net.minecraftforge.eventbus.EventBus.lambda$addListener$11(EventBus.java:204) at net.minecraftforge.eventbus.EventBus.post(EventBus.java:258) at net.minecraftforge.fml.javafmlmod.FMLModContainer.fireEvent(FMLModContainer.java:106) at java.util.function.Consumer.lambda$andThen$0(Consumer.java:65) at java.util.function.Consumer.lambda$andThen$0(Consumer.java:65) at net.minecraftforge.fml.ModContainer.transitionState(ModContainer.java:112) at net.minecraftforge.fml.ModList.lambda$null$10(ModList.java:133) at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) at java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:290) at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731) at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
-
[1.14.4] NetworkRegistry$ChannelBuilder.simpleChannel crush
private void commonSetup(final FMLCommonSetupEvent event) { PacketHandler.init(); PacketHandler.registerMessages(); } and private static SimpleChannel HANDLER; public static void init() { HANDLER = NetworkRegistry.ChannelBuilder.named(NAME).clientAcceptedVersions(PROTOCOL_VERSION::equals) .serverAcceptedVersions(PROTOCOL_VERSION::equals).networkProtocolVersion(() -> PROTOCOL_VERSION) .simpleChannel(); } public static void registerMessages() { int index = 0; HANDLER.registerMessage(index++, ExampleMessage.class, ExampleMessage::encode, ExampleMessage::decode, ExampleMessage::handle); }
-
[1.14.4] NetworkRegistry$ChannelBuilder.simpleChannel crush
When I called ChannelBuilder.simpleChannel on FMLCommonSetupEvent, it caused below exception. [modloading-worker-2/ERROR] [ne.mi.fm.ja.FMLModContainer/]: Exception caught during firing event: 14 Index: 1 Listeners: 0: NORMAL 1: net.minecraftforge.eventbus.EventBus$$Lambda$2647/1527166994@1a39a848 java.lang.ArrayIndexOutOfBoundsException: 14 at net.minecraftforge.eventbus.ListenerList.register(ListenerList.java:125) at net.minecraftforge.eventbus.EventBus.addToListeners(EventBus.java:229) at net.minecraftforge.eventbus.EventBus.addListener(EventBus.java:204) at net.minecraftforge.eventbus.EventBus.addListener(EventBus.java:200) at net.minecraftforge.eventbus.EventBus.addListener(EventBus.java:161) at net.minecraftforge.eventbus.EventBus.addListener(EventBus.java:156) at net.minecraftforge.eventbus.EventBus.addListener(EventBus.java:151) at net.minecraftforge.fml.network.NetworkInstance.addListener(NetworkInstance.java:63) at net.minecraftforge.fml.network.simple.SimpleChannel.<init>(SimpleChannel.java:49) at net.minecraftforge.fml.network.NetworkRegistry$ChannelBuilder.simpleChannel(NetworkRegistry.java:409) What event should I depend to create a channel?
-
1.14.4 Registering commands
FMLServerStartingEvent has getCommandDispatcher method, and its return value has register method.
-
[1.13.2] IBlockState with EnumProperty
It works well. Thank you very much.
-
[1.13.2] IBlockState with EnumProperty
I have a problem to unable to set a property to IBlockState. Here is my code. public class BlockDock extends Block { public static final EnumProperty<EnumContainer> CONTAINER = EnumProperty.<EnumContainer>create("container", EnumContainer.class); public BlockDock(String name) { super(Properties.create(Material.IRON).hardnessAndResistance(1.5F, 1.0F).sound(SoundType.METAL)); setRegistryName(new ResourceLocation(ContainerMod.MODID, name)); setDefaultState(getDefaultState().with(CONTAINER, EnumContainer.EMPTY)); } } and error... Caused by: java.lang.IllegalArgumentException: Cannot set property EnumProperty{name=container, clazz=class com.snowstep115.container.util.EnumContainer, values=[EMPTY, QUEUE, STACK]} as it does not exist in Block{minecraft:air} at net.minecraft.state.AbstractStateHolder.func_206870_a(SourceFile:106) at com.snowstep115.container.block.BlockDock.<init>(BlockDock.java:36) at com.snowstep115.container.item.ItemDock.<init>(ItemDock.java:10) at com.snowstep115.container.ModItems.<clinit>(ModItems.java:11) ... 30 more Would you tell me the correct way to do it. Thank you.
IPS spam blocked by CleanTalk.