Posted March 2, 20205 yr Hello I have created my own tulips to compleete a 16 colors set. I can put them on the ground and into a flowerpot. But how do i add them to s vanilla-biome? I don´t know, where in that huge vanilla-code library i can find the matching code...
March 2, 20205 yr Use DeferredWorkQueue to add features to the biomes you want during the FMLCommonSetupEvent. Check out classes in the net.minecraft.world.gen.feature package and the DefaultBiomeFeatures class in net.minecraft.world.biome.
March 2, 20205 yr Author I´m not sure, how to use DeferredWorkQueue Should i make a method like in DefaultBiomeFeatures and call it in the FMLCommonSetupEvent.
March 2, 20205 yr Search the forums for "runLater", and you will find examples/discussion how to use DeferredWorkQueue, but essentially yes.
March 2, 20205 yr Author Now i have this in my FMLCommonSetupEvent: DeferredWorkQueue.runLater(() -> { addModTulips(biomeIn); } ); But i´m not sure, how to put a specific biome into my method-call... I don´t know, where the methods are called, wich i found in DefaultBiomeFeatures... I must find this to see how a biome is given in there... should i do it as a new instance of the biome-class? Edited March 2, 20205 yr by Drachenbauer
March 3, 20205 yr Author now i found, what i looked for. time for a test in a world with a flowerforest biome nearby. Edit: this is now my main-class: Spoiler package drachenbauer32.moretulipsmod; import java.util.Arrays; import java.util.Comparator; import java.util.List; import com.google.common.collect.Ordering; import drachenbauer32.moretulipsmod.init.MoreTulipsBlocks; import drachenbauer32.moretulipsmod.init.MoreTulipsItems; import drachenbauer32.moretulipsmod.util.MoreTulipsItemGroup; import drachenbauer32.moretulipsmod.util.Reference; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.FlowerBlock; import net.minecraft.block.FlowerPotBlock; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderTypeLookup; import net.minecraft.item.BlockItem; import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; import net.minecraft.item.Rarity; import net.minecraft.potion.Effects; import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.Biomes; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.DeferredWorkQueue; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraft.world.gen.GenerationStage; import net.minecraft.world.gen.blockplacer.SimpleBlockPlacer; import net.minecraft.world.gen.blockstateprovider.SimpleBlockStateProvider; import net.minecraft.world.gen.feature.BlockClusterFeatureConfig; import net.minecraft.world.gen.feature.Feature; import net.minecraft.world.gen.placement.FrequencyConfig; import net.minecraft.world.gen.placement.Placement; @SuppressWarnings("deprecation") @Mod(Reference.MOD_ID) public class MoreTulips { public static Comparator<ItemStack> itemSorter; private static final BlockState BLACK_TULIP = MoreTulipsBlocks.black_tulip.getDefaultState(); public static final BlockClusterFeatureConfig BLACK_TULIP_CONFIG = (new BlockClusterFeatureConfig.Builder(new SimpleBlockStateProvider(BLACK_TULIP), new SimpleBlockPlacer())).tries(64).build(); public MoreTulips() { FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup); FMLJavaModLoadingContext.get().getModEventBus().addListener(this::clientRegistries); MinecraftForge.EVENT_BUS.register(this); } private void setup(final FMLCommonSetupEvent event) { RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.black_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.blue_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.brown_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.cyan_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.gray_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.green_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.light_blue_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.light_gray_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.lime_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.magenta_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.purple_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.yellow_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.potted_black_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.potted_blue_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.potted_brown_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.potted_cyan_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.potted_gray_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.potted_green_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.potted_light_blue_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.potted_light_gray_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.potted_lime_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.potted_magenta_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.potted_purple_tulip, RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MoreTulipsBlocks.potted_yellow_tulip, RenderType.getCutout()); List<Item> items = Arrays.asList(MoreTulipsItems.yellow_tulip, MoreTulipsItems.lime_tulip, MoreTulipsItems.cyan_tulip, MoreTulipsItems.blue_tulip, MoreTulipsItems.purple_tulip, MoreTulipsItems.magenta_tulip, MoreTulipsItems.light_blue_tulip, MoreTulipsItems.green_tulip, MoreTulipsItems.brown_tulip, MoreTulipsItems.black_tulip, MoreTulipsItems.gray_tulip, MoreTulipsItems.light_gray_tulip); itemSorter = Ordering.explicit(items).onResultOf(ItemStack::getItem); DeferredWorkQueue.runLater(() -> { addModTulips(Biomes.FLOWER_FOREST); } ); } private void clientRegistries(final FMLClientSetupEvent event) { } @Mod.EventBusSubscriber(bus=Mod.EventBusSubscriber.Bus.MOD) public static class RegistryEvents { public static final ItemGroup MORE_TULIPS = new MoreTulipsItemGroup(); @SubscribeEvent public static void registerBlocks(final RegistryEvent.Register<Block> event) { event.getRegistry().registerAll(MoreTulipsBlocks.black_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("black_tulip"), MoreTulipsBlocks.blue_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("blue_tulip"), MoreTulipsBlocks.brown_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("brown_tulip"), MoreTulipsBlocks.cyan_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("cyan_tulip"), MoreTulipsBlocks.gray_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("gray_tulip"), MoreTulipsBlocks.green_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("green_tulip"), MoreTulipsBlocks.light_blue_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("light_blue_tulip"), MoreTulipsBlocks.light_gray_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("light_gray_tulip"), MoreTulipsBlocks.lime_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("lime_tulip"), MoreTulipsBlocks.magenta_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("magenta_tulip"), MoreTulipsBlocks.purple_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("purple_tulip"), MoreTulipsBlocks.yellow_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("yellow_tulip"), MoreTulipsBlocks.potted_black_tulip = new FlowerPotBlock(MoreTulipsBlocks.black_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_black_tulip"), MoreTulipsBlocks.potted_blue_tulip = new FlowerPotBlock(MoreTulipsBlocks.blue_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_blue_tulip"), MoreTulipsBlocks.potted_brown_tulip = new FlowerPotBlock(MoreTulipsBlocks.brown_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_brown_tulip"), MoreTulipsBlocks.potted_cyan_tulip = new FlowerPotBlock(MoreTulipsBlocks.cyan_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_cyan_tulip"), MoreTulipsBlocks.potted_gray_tulip = new FlowerPotBlock(MoreTulipsBlocks.gray_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_gray_tulip"), MoreTulipsBlocks.potted_green_tulip = new FlowerPotBlock(MoreTulipsBlocks.green_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_green_tulip"), MoreTulipsBlocks.potted_light_blue_tulip = new FlowerPotBlock(MoreTulipsBlocks.light_blue_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_light_blue_tulip"), MoreTulipsBlocks.potted_light_gray_tulip = new FlowerPotBlock(MoreTulipsBlocks.light_gray_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_light_gray_tulip"), MoreTulipsBlocks.potted_lime_tulip = new FlowerPotBlock(MoreTulipsBlocks.lime_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_lime_tulip"), MoreTulipsBlocks.potted_magenta_tulip = new FlowerPotBlock(MoreTulipsBlocks.magenta_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_magenta_tulip"), MoreTulipsBlocks.potted_purple_tulip = new FlowerPotBlock(MoreTulipsBlocks.purple_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_purple_tulip"), MoreTulipsBlocks.potted_yellow_tulip = new FlowerPotBlock(MoreTulipsBlocks.yellow_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_yellow_tulip")); } @SubscribeEvent public static void registerItems(final RegistryEvent.Register<Item> event) { event.getRegistry().registerAll(MoreTulipsItems.black_tulip = new BlockItem(MoreTulipsBlocks.black_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("black_tulip"), MoreTulipsItems.blue_tulip = new BlockItem(MoreTulipsBlocks.blue_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("blue_tulip"), MoreTulipsItems.brown_tulip = new BlockItem(MoreTulipsBlocks.brown_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("brown_tulip"), MoreTulipsItems.cyan_tulip = new BlockItem(MoreTulipsBlocks.cyan_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("cyan_tulip"), MoreTulipsItems.gray_tulip = new BlockItem(MoreTulipsBlocks.gray_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("gray_tulip"), MoreTulipsItems.green_tulip = new BlockItem(MoreTulipsBlocks.green_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("green_tulip"), MoreTulipsItems.light_blue_tulip = new BlockItem(MoreTulipsBlocks.light_blue_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("light_blue_tulip"), MoreTulipsItems.light_gray_tulip = new BlockItem(MoreTulipsBlocks.light_gray_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("light_gray_tulip"), MoreTulipsItems.lime_tulip = new BlockItem(MoreTulipsBlocks.lime_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("lime_tulip"), MoreTulipsItems.magenta_tulip = new BlockItem(MoreTulipsBlocks.magenta_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("magenta_tulip"), MoreTulipsItems.purple_tulip = new BlockItem(MoreTulipsBlocks.purple_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("purple_tulip"), MoreTulipsItems.yellow_tulip = new BlockItem(MoreTulipsBlocks.yellow_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("yellow_tulip")); } } public static void addModTulips(Biome biomeIn) { biomeIn.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.FLOWER.withConfiguration(BLACK_TULIP_CONFIG).withPlacement(Placement.COUNT_HEIGHTMAP_32.configure(new FrequencyConfig(100)))); } } I made a method, that should ad my tulips to the flowerforest biome. For a first test, it only includes the black tulip now. But as i created a flower-forest-world, i cannot find any black tulips in there... Edited March 3, 20205 yr by Drachenbauer
March 3, 20205 yr Author Quote This should be done in FMLClientSetupEvent, not common. some posts above, an user told me to work in common. Quote The fact that the first line does not produce a NullPointerException suggests that you are also incorrectly initializing your blocks in a static initializer. You cannot do that. Please use DeferredRegister to register your Blocks. If i registered my blocks wrong, why i can place them in a world and plant the tulips in pots ? Edited March 3, 20205 yr by Drachenbauer
March 3, 20205 yr Author Quote Yes, regarding adding the biome features... Do you mean the lines for making the tulips transparent should be in client? I thaught, you mean my biome-thing. Spoiler You cannot initialize these things here. where else should i initialize them?
March 3, 20205 yr Author Now i register my blocks and items like shown in the sample in the "DeferredRegister"-class. Can i remoce the integrated "RegistryEvents"-class from my main-class, if i finished the new way to register my stuff? Can i put the lines for the single blocks and items, like: public static final RegistryObject<Block> BLACK_TULIP_BLOCK = BLOCKS.register("black_tulip", () -> new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement().hardnessAndResistance(0f).sound(SoundType.PLANT))); into my blocks- and items-classes, where i already had them listed?
March 3, 20205 yr 35 minutes ago, Drachenbauer said: Can i remoce the integrated "RegistryEvents"-class from my main-class, if i finished the new way to register my stuff? Yes, but you need to register the modbus or something else in your main class (am writing from mobile and have forgot the name). If you still need help then pls provide a link to your Github Edited March 3, 20205 yr by DragonITA New in Modding? == Still learning!
March 3, 20205 yr Author Now i get an error: Spoiler [m[1;31m[18:29:10] [Render thread/ERROR] [ne.mi.fm.ja.FMLModContainer/LOADING]: Failed to load class drachenbauer32.moretulipsmod.MoreTulips java.lang.ExceptionInInitializerError: null at java.lang.Class.forName0(Native Method) ~[?:1.8.0_241] {} at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.javafmlmod.FMLModContainer.<init>(FMLModContainer.java:71) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:31.1] {re:classloading} at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_241] {} at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_241] {} at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_241] {} at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.javafmlmod.FMLJavaModLanguageProvider$FMLModTarget.loadMod(FMLJavaModLanguageProvider.java:73) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:31.1] {} at net.minecraftforge.fml.ModLoader.buildModContainerFromTOML(ModLoader.java:234) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading} at net.minecraftforge.fml.ModLoader.lambda$buildMods$26(ModLoader.java:214) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading} at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:1.8.0_241] {} at java.util.HashMap$EntrySpliterator.forEachRemaining(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.ReferencePipeline.collect(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.ModLoader.buildMods(ModLoader.java:216) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading} at net.minecraftforge.fml.ModLoader.lambda$gatherAndInitializeMods$18(ModLoader.java:173) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading} at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:1.8.0_241] {} at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.ReferencePipeline.collect(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.ModLoader.gatherAndInitializeMods(ModLoader.java:175) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading} at net.minecraftforge.fml.client.ClientModLoader.lambda$begin$2(ClientModLoader.java:97) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraftforge.fml.client.ClientModLoader.lambda$createRunnableWithCatch$5(ClientModLoader.java:113) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraftforge.fml.client.ClientModLoader.begin(ClientModLoader.java:97) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.<init>(Minecraft.java:398) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.main.Main.main(Main.java:141) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_241] {} at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_241] {} at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_241] {} at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:55) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-5.0.0-milestone.4.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-5.0.0-milestone.4.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-5.0.0-milestone.4.jar:?] {} at cpw.mods.modlauncher.Launcher.run(Launcher.java:81) [modlauncher-5.0.0-milestone.4.jar:?] {} at cpw.mods.modlauncher.Launcher.main(Launcher.java:65) [modlauncher-5.0.0-milestone.4.jar:?] {} at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:102) [forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {} Caused by: java.lang.IllegalArgumentException: Duplicate registration purple_tulip at net.minecraftforge.registries.DeferredRegister.register(DeferredRegister.java:85) ~[?:?] {re:classloading} at drachenbauer32.moretulipsmod.MoreTulips.<clinit>(MoreTulips.java:75) ~[?:?] {re:classloading} ... 44 more [m[1;31m[18:29:10] [Render thread/FATAL] [ne.mi.fm.ja.FMLJavaModLanguageProvider/LOADING]: Unable to load FMLModContainer, wut? java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_241] {} at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_241] {} at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_241] {} at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.javafmlmod.FMLJavaModLanguageProvider$FMLModTarget.loadMod(FMLJavaModLanguageProvider.java:73) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:31.1] {} at net.minecraftforge.fml.ModLoader.buildModContainerFromTOML(ModLoader.java:234) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading} at net.minecraftforge.fml.ModLoader.lambda$buildMods$26(ModLoader.java:214) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading} at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:1.8.0_241] {} at java.util.HashMap$EntrySpliterator.forEachRemaining(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.ReferencePipeline.collect(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.ModLoader.buildMods(ModLoader.java:216) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading} at net.minecraftforge.fml.ModLoader.lambda$gatherAndInitializeMods$18(ModLoader.java:173) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading} at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:1.8.0_241] {} at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.ReferencePipeline.collect(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.ModLoader.gatherAndInitializeMods(ModLoader.java:175) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading} at net.minecraftforge.fml.client.ClientModLoader.lambda$begin$2(ClientModLoader.java:97) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraftforge.fml.client.ClientModLoader.lambda$createRunnableWithCatch$5(ClientModLoader.java:113) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraftforge.fml.client.ClientModLoader.begin(ClientModLoader.java:97) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.<init>(Minecraft.java:398) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.main.Main.main(Main.java:141) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_241] {} at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_241] {} at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_241] {} at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:55) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-5.0.0-milestone.4.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-5.0.0-milestone.4.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-5.0.0-milestone.4.jar:?] {} at cpw.mods.modlauncher.Launcher.run(Launcher.java:81) [modlauncher-5.0.0-milestone.4.jar:?] {} at cpw.mods.modlauncher.Launcher.main(Launcher.java:65) [modlauncher-5.0.0-milestone.4.jar:?] {} at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:102) [forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {} Caused by: net.minecraftforge.fml.ModLoadingException: More Tulips Mod has class loading errors §7null at net.minecraftforge.fml.javafmlmod.FMLModContainer.<init>(FMLModContainer.java:77) ~[?:31.1] {re:classloading} ... 41 more Caused by: java.lang.ExceptionInInitializerError at java.lang.Class.forName0(Native Method) ~[?:1.8.0_241] {} at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.javafmlmod.FMLModContainer.<init>(FMLModContainer.java:71) ~[?:31.1] {re:classloading} ... 41 more Caused by: java.lang.IllegalArgumentException: Duplicate registration purple_tulip at net.minecraftforge.registries.DeferredRegister.register(DeferredRegister.java:85) ~[?:?] {re:classloading} at drachenbauer32.moretulipsmod.MoreTulips.<clinit>(MoreTulips.java:75) ~[?:?] {re:classloading} at java.lang.Class.forName0(Native Method) ~[?:1.8.0_241] {} at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.javafmlmod.FMLModContainer.<init>(FMLModContainer.java:71) ~[?:31.1] {re:classloading} ... 41 more [m[36m[18:29:11] [Render thread/DEBUG] [ne.mi.ve.fo.ForgeVersion/CORE]: Forge Version package package net.minecraftforge.versions.forge, Forge, version 31.1 from cpw.mods.modlauncher.TransformingClassLoader@67427b69 [m[36m[18:29:11] [Render thread/DEBUG] [ne.mi.ve.fo.ForgeVersion/CORE]: Found Forge version 31.1.18 [m[36m[18:29:11] [Render thread/DEBUG] [ne.mi.ve.fo.ForgeVersion/CORE]: Found Forge spec 31.1 [m[36m[18:29:11] [Render thread/DEBUG] [ne.mi.ve.fo.ForgeVersion/CORE]: Found Forge group net.minecraftforge [m[32m[18:29:11] [Render thread/INFO] [STDOUT/]: [net.minecraft.util.registry.Bootstrap:printToSYSOUT:110]: ---- Minecraft Crash Report ---- // You're mean. Time: 03.03.20 18:29 Description: Initializing game java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at net.minecraftforge.fml.javafmlmod.FMLJavaModLanguageProvider$FMLModTarget.loadMod(FMLJavaModLanguageProvider.java:78) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:31.1] {} at net.minecraftforge.fml.ModLoader.buildModContainerFromTOML(ModLoader.java:234) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading} at net.minecraftforge.fml.ModLoader.lambda$buildMods$26(ModLoader.java:214) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading} at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:1.8.0_241] {} at java.util.HashMap$EntrySpliterator.forEachRemaining(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.ReferencePipeline.collect(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.ModLoader.buildMods(ModLoader.java:216) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading} at net.minecraftforge.fml.ModLoader.lambda$gatherAndInitializeMods$18(ModLoader.java:173) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading} at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:1.8.0_241] {} at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:1.8.0_241] {} at java.util.stream.ReferencePipeline.collect(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.ModLoader.gatherAndInitializeMods(ModLoader.java:175) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading} at net.minecraftforge.fml.client.ClientModLoader.lambda$begin$2(ClientModLoader.java:97) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraftforge.fml.client.ClientModLoader.lambda$createRunnableWithCatch$5(ClientModLoader.java:113) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraftforge.fml.client.ClientModLoader.begin(ClientModLoader.java:97) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.<init>(Minecraft.java:398) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.main.Main.main(Main.java:141) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_241] {} at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_241] {} at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_241] {} at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:55) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-5.0.0-milestone.4.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-5.0.0-milestone.4.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-5.0.0-milestone.4.jar:?] {} at cpw.mods.modlauncher.Launcher.run(Launcher.java:81) [modlauncher-5.0.0-milestone.4.jar:?] {} at cpw.mods.modlauncher.Launcher.main(Launcher.java:65) [modlauncher-5.0.0-milestone.4.jar:?] {} at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:102) [forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {} Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_241] {} at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_241] {} at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_241] {} at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.javafmlmod.FMLJavaModLanguageProvider$FMLModTarget.loadMod(FMLJavaModLanguageProvider.java:73) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:31.1] {} ... 36 more Caused by: net.minecraftforge.fml.ModLoadingException: More Tulips Mod has class loading errors null at net.minecraftforge.fml.javafmlmod.FMLModContainer.<init>(FMLModContainer.java:77) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:31.1] {re:classloading} at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_241] {} at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_241] {} at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_241] {} at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.javafmlmod.FMLJavaModLanguageProvider$FMLModTarget.loadMod(FMLJavaModLanguageProvider.java:73) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:31.1] {} ... 36 more Caused by: java.lang.ExceptionInInitializerError at java.lang.Class.forName0(Native Method) ~[?:1.8.0_241] {} at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.javafmlmod.FMLModContainer.<init>(FMLModContainer.java:71) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:31.1] {re:classloading} at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_241] {} at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_241] {} at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_241] {} at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.javafmlmod.FMLJavaModLanguageProvider$FMLModTarget.loadMod(FMLJavaModLanguageProvider.java:73) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:31.1] {} ... 36 more Caused by: java.lang.IllegalArgumentException: Duplicate registration purple_tulip at net.minecraftforge.registries.DeferredRegister.register(DeferredRegister.java:85) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:?] {re:classloading} at drachenbauer32.moretulipsmod.MoreTulips.<clinit>(MoreTulips.java:75) ~[main/:?] {re:classloading} at java.lang.Class.forName0(Native Method) ~[?:1.8.0_241] {} at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.javafmlmod.FMLModContainer.<init>(FMLModContainer.java:71) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:31.1] {re:classloading} at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_241] {} at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_241] {} at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_241] {} at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.javafmlmod.FMLJavaModLanguageProvider$FMLModTarget.loadMod(FMLJavaModLanguageProvider.java:73) ~[forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-recomp.jar:31.1] {} ... 36 more A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace: at net.minecraftforge.fml.javafmlmod.FMLJavaModLanguageProvider$FMLModTarget.loadMod(FMLJavaModLanguageProvider.java:78) at net.minecraftforge.fml.ModLoader.buildModContainerFromTOML(ModLoader.java:234) at net.minecraftforge.fml.ModLoader.lambda$buildMods$26(ModLoader.java:214) at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) at java.util.HashMap$EntrySpliterator.forEachRemaining(Unknown Source) at java.util.stream.AbstractPipeline.copyInto(Unknown Source) at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) at java.util.stream.AbstractPipeline.evaluate(Unknown Source) at java.util.stream.ReferencePipeline.collect(Unknown Source) at net.minecraftforge.fml.ModLoader.buildMods(ModLoader.java:216) at net.minecraftforge.fml.ModLoader.lambda$gatherAndInitializeMods$18(ModLoader.java:173) at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source) at java.util.stream.AbstractPipeline.copyInto(Unknown Source) at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) at java.util.stream.AbstractPipeline.evaluate(Unknown Source) at java.util.stream.ReferencePipeline.collect(Unknown Source) at net.minecraftforge.fml.ModLoader.gatherAndInitializeMods(ModLoader.java:175) at net.minecraftforge.fml.client.ClientModLoader.lambda$begin$2(ClientModLoader.java:97) at net.minecraftforge.fml.client.ClientModLoader.lambda$createRunnableWithCatch$5(ClientModLoader.java:113) at net.minecraftforge.fml.client.ClientModLoader.begin(ClientModLoader.java:97) at net.minecraft.client.Minecraft.<init>(Minecraft.java:398) -- Initialization -- Details: Stacktrace: at net.minecraft.client.main.Main.main(Main.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:55) at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) at cpw.mods.modlauncher.Launcher.run(Launcher.java:81) at cpw.mods.modlauncher.Launcher.main(Launcher.java:65) at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:102) -- System Details -- Details: Minecraft Version: 1.15.2 Minecraft Version ID: 1.15.2 Operating System: Windows 10 (amd64) version 10.0 Java Version: 1.8.0_241, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 550546400 bytes (525 MB) / 1038614528 bytes (990 MB) up to 1884815360 bytes (1797 MB) CPUs: 8 JVM Flags: 1 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump ModLauncher: 5.0.0-milestone.4+67+b1a340b ModLauncher launch target: fmluserdevclient ModLauncher naming: mcp ModLauncher services: /eventbus-2.0.0-milestone.1-service.jar eventbus PLUGINSERVICE /forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-launcher.jar object_holder_definalize PLUGINSERVICE /forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-launcher.jar runtime_enum_extender PLUGINSERVICE /accesstransformers-2.0.3-shadowed.jar accesstransformer PLUGINSERVICE /forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-launcher.jar capability_inject_definalize PLUGINSERVICE /forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-launcher.jar runtimedistcleaner PLUGINSERVICE /forge-1.15.2-31.1.18_mapped_snapshot_20200229-1.15.1-launcher.jar fml TRANSFORMATIONSERVICE FML: 31.1 Forge: net.minecraftforge:31.1.18 FML Language Providers: [email protected] minecraft@1 Mod List: ~~ERROR~~ NullPointerException: null Launched Version: MOD_DEV Backend library: LWJGL version 3.2.2 build 10 Backend API: Intel(R) HD Graphics 4000 GL version 4.0.0 - Build 10.18.10.4358, Intel GL Caps: Using framebuffer using OpenGL 3.0 Using VBOs: Yes Is Modded: Definitely; Client brand changed to 'forge' Type: Client (map_client.txt) CPU: 8x Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz [m[32m[18:29:11] [Render thread/INFO] [STDOUT/]: [net.minecraft.util.registry.Bootstrap:printToSYSOUT:110]: #@!@# Game crashed! Crash report saved to: #@!@# D:\Mods\1_15_1\MoreTulipsMod\run\.\crash-reports\crash-2020-03-03_18.29.11-client.txt In the error i found a line, that says "Duplicate registration purple_tulip" I wonder where this registration is duplicated... This is now my main-class: Spoiler package drachenbauer32.moretulipsmod; import java.util.Arrays; import java.util.Comparator; import java.util.List; import com.google.common.collect.Ordering; import drachenbauer32.moretulipsmod.util.MoreTulipsItemGroup; import drachenbauer32.moretulipsmod.util.Reference; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.FlowerBlock; import net.minecraft.block.FlowerPotBlock; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderTypeLookup; import net.minecraft.item.BlockItem; import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; import net.minecraft.item.Rarity; import net.minecraft.potion.Effects; import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.Biomes; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.DeferredWorkQueue; import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraft.world.gen.GenerationStage; import net.minecraft.world.gen.blockplacer.SimpleBlockPlacer; import net.minecraft.world.gen.blockstateprovider.SimpleBlockStateProvider; import net.minecraft.world.gen.feature.BlockClusterFeatureConfig; import net.minecraft.world.gen.feature.Feature; import net.minecraft.world.gen.placement.FrequencyConfig; import net.minecraft.world.gen.placement.Placement; @SuppressWarnings("deprecation") @Mod(Reference.MOD_ID) public class MoreTulips { public static final ItemGroup MORE_TULIPS = new MoreTulipsItemGroup(); private static final DeferredRegister<Item> ITEMS = new DeferredRegister<>(ForgeRegistries.ITEMS, Reference.MOD_ID); private static final DeferredRegister<Block> BLOCKS = new DeferredRegister<>(ForgeRegistries.BLOCKS, Reference.MOD_ID); public static final RegistryObject<Block> BLACK_TULIP_BLOCK = BLOCKS.register("black_tulip", () -> new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement().hardnessAndResistance(0f).sound(SoundType.PLANT))); public static final RegistryObject<Block> BLUE_TULIP_BLOCK = BLOCKS.register("blue_tulip", () -> new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement().hardnessAndResistance(0f).sound(SoundType.PLANT))); public static final RegistryObject<Block> BROWN_TULIP_BLOCK = BLOCKS.register("brown_tulip", () -> new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement().hardnessAndResistance(0f).sound(SoundType.PLANT))); public static final RegistryObject<Block> CYAN_TULIP_BLOCK = BLOCKS.register("cyan_tulip", () -> new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement().hardnessAndResistance(0f).sound(SoundType.PLANT))); public static final RegistryObject<Block> GRAY_TULIP_BLOCK = BLOCKS.register("gray_tulip", () -> new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement().hardnessAndResistance(0f).sound(SoundType.PLANT))); public static final RegistryObject<Block> GREEN_TULIP_BLOCK = BLOCKS.register("green_tulip", () -> new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement().hardnessAndResistance(0f).sound(SoundType.PLANT))); public static final RegistryObject<Block> LIGHT_BLUE_TULIP_BLOCK = BLOCKS.register("light_blue_tulip", () -> new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement().hardnessAndResistance(0f).sound(SoundType.PLANT))); public static final RegistryObject<Block> LIGHT_GRAY_TULIP_BLOCK = BLOCKS.register("light_gray_tulip", () -> new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement().hardnessAndResistance(0f).sound(SoundType.PLANT))); public static final RegistryObject<Block> LIME_TULIP_BLOCK = BLOCKS.register("lime_tulip", () -> new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement().hardnessAndResistance(0f).sound(SoundType.PLANT))); public static final RegistryObject<Block> MAGENTA_TULIP_BLOCK = BLOCKS.register("magenta_tulip", () -> new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement().hardnessAndResistance(0f).sound(SoundType.PLANT))); public static final RegistryObject<Block> PURPLE_TULIP_BLOCK = BLOCKS.register("purple_tulip", () -> new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement().hardnessAndResistance(0f).sound(SoundType.PLANT))); public static final RegistryObject<Block> YELLOW_TULIP_BLOCK = BLOCKS.register("purple_tulip", () -> new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement().hardnessAndResistance(0f).sound(SoundType.PLANT))); public static final RegistryObject<Block> POTTED_BLACK_TULIP_BLOCK = BLOCKS.register("potted_black_tulip", () -> new FlowerPotBlock(BLACK_TULIP_BLOCK.get(), Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f).notSolid())); public static final RegistryObject<Block> POTTED_BLUE_TULIP_BLOCK = BLOCKS.register("potted_blue_tulip", () -> new FlowerPotBlock(BLUE_TULIP_BLOCK.get(), Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f).notSolid())); public static final RegistryObject<Block> POTTED_BROWN_TULIP_BLOCK = BLOCKS.register("potted_brown_tulip", () -> new FlowerPotBlock(BROWN_TULIP_BLOCK.get(), Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f).notSolid())); public static final RegistryObject<Block> POTTED_CYAN_TULIP_BLOCK = BLOCKS.register("potted_cyan_tulip", () -> new FlowerPotBlock(CYAN_TULIP_BLOCK.get(), Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f).notSolid())); public static final RegistryObject<Block> POTTED_GRAY_TULIP_BLOCK = BLOCKS.register("potted_gray_tulip", () -> new FlowerPotBlock(GRAY_TULIP_BLOCK.get(), Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f).notSolid())); public static final RegistryObject<Block> POTTED_GREEN_TULIP_BLOCK = BLOCKS.register("potted_green_tulip", () -> new FlowerPotBlock(GREEN_TULIP_BLOCK.get(), Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f).notSolid())); public static final RegistryObject<Block> POTTED_LIGHT_BLUE_TULIP_BLOCK = BLOCKS.register("potted_light_blue_tulip", () -> new FlowerPotBlock(LIGHT_BLUE_TULIP_BLOCK.get(), Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f).notSolid())); public static final RegistryObject<Block> POTTED_LIGHT_GRAY_TULIP_BLOCK = BLOCKS.register("potted_light_gray_tulip", () -> new FlowerPotBlock(LIGHT_GRAY_TULIP_BLOCK.get(), Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f).notSolid())); public static final RegistryObject<Block> POTTED_LIME_TULIP_BLOCK = BLOCKS.register("potted_lime_tulip", () -> new FlowerPotBlock(LIME_TULIP_BLOCK.get(), Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f).notSolid())); public static final RegistryObject<Block> POTTED_MAGENTA_TULIP_BLOCK = BLOCKS.register("potted_magenta_tulip", () -> new FlowerPotBlock(MAGENTA_TULIP_BLOCK.get(), Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f).notSolid())); public static final RegistryObject<Block> POTTED_PURPLE_TULIP_BLOCK = BLOCKS.register("potted_purple_tulip", () -> new FlowerPotBlock(PURPLE_TULIP_BLOCK.get(), Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f).notSolid())); public static final RegistryObject<Block> POTTED_YELLOW_TULIP_BLOCK = BLOCKS.register("potted_yellow_tulip", () -> new FlowerPotBlock(YELLOW_TULIP_BLOCK.get(), Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f).notSolid())); public static final RegistryObject<Item> BLACK_TULIP_ITEM = ITEMS.register("black_tulip", () -> new BlockItem(BLACK_TULIP_BLOCK.get(), new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64).rarity(Rarity.COMMON).setNoRepair())); public static final RegistryObject<Item> BLUE_TULIP_ITEM = ITEMS.register("blue_tulip", () -> new BlockItem(BLUE_TULIP_BLOCK.get(), new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64).rarity(Rarity.COMMON).setNoRepair())); public static final RegistryObject<Item> BROWN_TULIP_ITEM = ITEMS.register("brown_tulip", () -> new BlockItem(BROWN_TULIP_BLOCK.get(), new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64).rarity(Rarity.COMMON).setNoRepair())); public static final RegistryObject<Item> CYAN_TULIP_ITEM = ITEMS.register("cyan_tulip", () -> new BlockItem(CYAN_TULIP_BLOCK.get(), new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64).rarity(Rarity.COMMON).setNoRepair())); public static final RegistryObject<Item> GRAY_TULIP_ITEM = ITEMS.register("gray_tulip", () -> new BlockItem(GRAY_TULIP_BLOCK.get(), new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64).rarity(Rarity.COMMON).setNoRepair())); public static final RegistryObject<Item> GREEN_TULIP_ITEM = ITEMS.register("green_tulip", () -> new BlockItem(GREEN_TULIP_BLOCK.get(), new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64).rarity(Rarity.COMMON).setNoRepair())); public static final RegistryObject<Item> LIGHT_BLUE_TULIP_ITEM = ITEMS.register("light_blue_tulip", () -> new BlockItem(LIGHT_BLUE_TULIP_BLOCK.get(), new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64).rarity(Rarity.COMMON).setNoRepair())); public static final RegistryObject<Item> LIGHT_GRAY_TULIP_ITEM = ITEMS.register("light_gray_tulip", () -> new BlockItem(LIGHT_GRAY_TULIP_BLOCK.get(), new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64).rarity(Rarity.COMMON).setNoRepair())); public static final RegistryObject<Item> LIME_TULIP_ITEM = ITEMS.register("lime_tulip", () -> new BlockItem(LIME_TULIP_BLOCK.get(), new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64).rarity(Rarity.COMMON).setNoRepair())); public static final RegistryObject<Item> MAGENTA_TULIP_ITEM = ITEMS.register("magenta_tulip", () -> new BlockItem(MAGENTA_TULIP_BLOCK.get(), new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64).rarity(Rarity.COMMON).setNoRepair())); public static final RegistryObject<Item> PURPLE_TULIP_ITEM = ITEMS.register("purple_tulip", () -> new BlockItem(PURPLE_TULIP_BLOCK.get(), new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64).rarity(Rarity.COMMON).setNoRepair())); public static final RegistryObject<Item> YELLOW_TULIP_ITEM = ITEMS.register("yellow_tulip", () -> new BlockItem(YELLOW_TULIP_BLOCK.get(), new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64).rarity(Rarity.COMMON).setNoRepair())); static BlockState BLACK_TULIP; static BlockClusterFeatureConfig BLACK_TULIP_CONFIG; public static Comparator<ItemStack> itemSorter; public MoreTulips() { FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup); FMLJavaModLoadingContext.get().getModEventBus().addListener(this::clientRegistries); ITEMS.register(FMLJavaModLoadingContext.get().getModEventBus()); BLOCKS.register(FMLJavaModLoadingContext.get().getModEventBus()); MinecraftForge.EVENT_BUS.register(this); } private void setup(final FMLCommonSetupEvent event) { BLACK_TULIP = BLACK_TULIP_BLOCK.get().getDefaultState(); BLACK_TULIP_CONFIG = (new BlockClusterFeatureConfig.Builder(new SimpleBlockStateProvider(BLACK_TULIP), new SimpleBlockPlacer())).tries(64).build(); List<Item> items = Arrays.asList(YELLOW_TULIP_ITEM.get(), LIME_TULIP_ITEM.get(), CYAN_TULIP_ITEM.get(), BLUE_TULIP_ITEM.get(), PURPLE_TULIP_ITEM.get(), MAGENTA_TULIP_ITEM.get(), LIGHT_BLUE_TULIP_ITEM.get(), GREEN_TULIP_ITEM.get(), BROWN_TULIP_ITEM.get(), BLACK_TULIP_ITEM.get(), GRAY_TULIP_ITEM.get(), LIGHT_GRAY_TULIP_ITEM.get()); itemSorter = Ordering.explicit(items).onResultOf(ItemStack::getItem); DeferredWorkQueue.runLater(() -> { addModTulips(Biomes.FLOWER_FOREST); } ); } private void clientRegistries(final FMLClientSetupEvent event) { RenderTypeLookup.setRenderLayer(BLACK_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(BLUE_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(BROWN_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(CYAN_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(GRAY_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(GREEN_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(LIGHT_BLUE_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(LIGHT_GRAY_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(LIME_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(MAGENTA_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(PURPLE_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(YELLOW_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(POTTED_BLACK_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(POTTED_BLUE_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(POTTED_BROWN_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(POTTED_CYAN_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(POTTED_GRAY_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(POTTED_GREEN_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(POTTED_LIGHT_BLUE_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(POTTED_LIGHT_GRAY_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(POTTED_LIME_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(POTTED_MAGENTA_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(POTTED_PURPLE_TULIP_BLOCK.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(POTTED_YELLOW_TULIP_BLOCK.get(), RenderType.getCutout()); } /*@Mod.EventBusSubscriber(bus=Mod.EventBusSubscriber.Bus.MOD) public static class RegistryEvents { @SubscribeEvent public static void registerBlocks(final RegistryEvent.Register<Block> event) { event.getRegistry().registerAll(MoreTulipsBlocks.black_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("black_tulip"), MoreTulipsBlocks.blue_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("blue_tulip"), MoreTulipsBlocks.brown_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("brown_tulip"), MoreTulipsBlocks.cyan_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("cyan_tulip"), MoreTulipsBlocks.gray_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("gray_tulip"), MoreTulipsBlocks.green_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("green_tulip"), MoreTulipsBlocks.light_blue_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("light_blue_tulip"), MoreTulipsBlocks.light_gray_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("light_gray_tulip"), MoreTulipsBlocks.lime_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("lime_tulip"), MoreTulipsBlocks.magenta_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("magenta_tulip"), MoreTulipsBlocks.purple_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("purple_tulip"), MoreTulipsBlocks.yellow_tulip = new FlowerBlock(Effects.WEAKNESS, 9, Block.Properties.create(Material.PLANTS).doesNotBlockMovement(). hardnessAndResistance(0f).sound(SoundType.PLANT)).setRegistryName("yellow_tulip"), MoreTulipsBlocks.potted_black_tulip = new FlowerPotBlock(MoreTulipsBlocks.black_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_black_tulip"), MoreTulipsBlocks.potted_blue_tulip = new FlowerPotBlock(MoreTulipsBlocks.blue_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_blue_tulip"), MoreTulipsBlocks.potted_brown_tulip = new FlowerPotBlock(MoreTulipsBlocks.brown_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_brown_tulip"), MoreTulipsBlocks.potted_cyan_tulip = new FlowerPotBlock(MoreTulipsBlocks.cyan_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_cyan_tulip"), MoreTulipsBlocks.potted_gray_tulip = new FlowerPotBlock(MoreTulipsBlocks.gray_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_gray_tulip"), MoreTulipsBlocks.potted_green_tulip = new FlowerPotBlock(MoreTulipsBlocks.green_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_green_tulip"), MoreTulipsBlocks.potted_light_blue_tulip = new FlowerPotBlock(MoreTulipsBlocks.light_blue_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_light_blue_tulip"), MoreTulipsBlocks.potted_light_gray_tulip = new FlowerPotBlock(MoreTulipsBlocks.light_gray_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_light_gray_tulip"), MoreTulipsBlocks.potted_lime_tulip = new FlowerPotBlock(MoreTulipsBlocks.lime_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_lime_tulip"), MoreTulipsBlocks.potted_magenta_tulip = new FlowerPotBlock(MoreTulipsBlocks.magenta_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_magenta_tulip"), MoreTulipsBlocks.potted_purple_tulip = new FlowerPotBlock(MoreTulipsBlocks.purple_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_purple_tulip"), MoreTulipsBlocks.potted_yellow_tulip = new FlowerPotBlock(MoreTulipsBlocks.yellow_tulip, Block.Properties.create(Material.MISCELLANEOUS).hardnessAndResistance(0f). notSolid()).setRegistryName("potted_yellow_tulip")); } @SubscribeEvent public static void registerItems(final RegistryEvent.Register<Item> event) { event.getRegistry().registerAll(MoreTulipsItems.black_tulip = new BlockItem(MoreTulipsBlocks.black_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("black_tulip"), MoreTulipsItems.blue_tulip = new BlockItem(MoreTulipsBlocks.blue_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("blue_tulip"), MoreTulipsItems.brown_tulip = new BlockItem(MoreTulipsBlocks.brown_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("brown_tulip"), MoreTulipsItems.cyan_tulip = new BlockItem(MoreTulipsBlocks.cyan_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("cyan_tulip"), MoreTulipsItems.gray_tulip = new BlockItem(MoreTulipsBlocks.gray_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("gray_tulip"), MoreTulipsItems.green_tulip = new BlockItem(MoreTulipsBlocks.green_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("green_tulip"), MoreTulipsItems.light_blue_tulip = new BlockItem(MoreTulipsBlocks.light_blue_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("light_blue_tulip"), MoreTulipsItems.light_gray_tulip = new BlockItem(MoreTulipsBlocks.light_gray_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("light_gray_tulip"), MoreTulipsItems.lime_tulip = new BlockItem(MoreTulipsBlocks.lime_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("lime_tulip"), MoreTulipsItems.magenta_tulip = new BlockItem(MoreTulipsBlocks.magenta_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("magenta_tulip"), MoreTulipsItems.purple_tulip = new BlockItem(MoreTulipsBlocks.purple_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("purple_tulip"), MoreTulipsItems.yellow_tulip = new BlockItem(MoreTulipsBlocks.yellow_tulip, new Item.Properties().defaultMaxDamage(0).group(MORE_TULIPS).maxStackSize(64). rarity(Rarity.COMMON).setNoRepair()).setRegistryName("yellow_tulip")); } }*/ public static void addModTulips(Biome biomeIn) { biomeIn.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.FLOWER.withConfiguration(BLACK_TULIP_CONFIG).withPlacement(Placement.COUNT_HEIGHTMAP_32.configure(new FrequencyConfig(100)))); } } Edit: i think i found it now, saw, that the yellow tulip at the blocks registry had the registry name "purple_tulip". fixed it now and test it Edited March 3, 20205 yr by Drachenbauer
March 3, 20205 yr Author Now it works. I created a new flower forest world and started directly in a patch of my own black tulips. Now i just have to register the other tulips to biome the same way. Edit: Now i modifyed my Config-line for the biome, that it makes patches with a mix of all my tulip-colors. Now i hace some more questions: Where are the Blockstates from the vanilla-tulips? I want to add them to my mixed tulip patches, too. How can i make, that only my code adds tulips to the biomes? Edited March 3, 20205 yr by Drachenbauer
March 3, 20205 yr 1 hour ago, Drachenbauer said: Where are the Blockstates from the vanilla-tulips? see vanilla (the third .jar file, the extra-client.jar file) New in Modding? == Still learning!
March 3, 20205 yr Author private static final BlockState DANDELION = Blocks.DANDELION.getDefaultState(); I mean code-lines like this for the tulips. This sample is the one for the dandelion and is located in the DefaultBiomeFeatures.. Or can i write my own into my code? Now i´fe written my own lines of this. How can i now make only my code generate tulips in the biomes? I want to use my code for all biomes with tulips. My idea is to use the set BIOMES in the class Biome and make a for-loop, that goes through the biomes: for (Biome biome : Biome.BIOMES) { } And inside therei want to check for tuips in the biomes and if yes, use my code.. For this i have a question How can i check, if a biome has tulips? Edited March 3, 20205 yr by Drachenbauer
March 3, 20205 yr Author Now i try this to check for tulips: DeferredWorkQueue.runLater(() -> { for (Biome biome : Biome.BIOMES) { /*if (biome.getFlowers().contains(o)) { }*/ System.out.print(biome.getFlowers()); } addModTulips(Biomes.FLOWER_FOREST); } ); At first i want to use an output to see, how the content of the flower-list looks. But i find no result in the console... Do i just not know, where in the console output i have to find output from the common-setup? Or is there any reason, that this gives no output? In another mod i used this output-command in a model-class and found it´s output in the console.
March 4, 20205 yr 12 hours ago, Drachenbauer said: private static final BlockState DANDELION = Blocks.DANDELION.getDefaultState(); I mean code-lines like this for the tulips. This sample is the one for the dandelion and is located in the DefaultBiomeFeatures.. Or can i write my own into my code? Now i´fe written my own lines of this. How can i now make only my code generate tulips in the biomes? I want to use my code for all biomes with tulips. My idea is to use the set BIOMES in the class Biome and make a for-loop, that goes through the biomes: for (Biome biome : Biome.BIOMES) { } And inside therei want to check for tuips in the biomes and if yes, use my code.. For this i have a question How can i check, if a biome has tulips? No, i think you should see the Json Blockstate. New in Modding? == Still learning!
March 4, 20205 yr 9 hours ago, Drachenbauer said: But i find no result in the console... This not wonder me, you have used system.out.println(), but in modding you muss use the Logger. New in Modding? == Still learning!
March 4, 20205 yr Author Now i have this: DeferredWorkQueue.runLater(() -> { System.out.println("Blumenliste:"); for (Biome biome : Biome.BIOMES) { /*if (biome.getFlowers().contains(o)) { }*/ System.out.println(biome); System.out.println(biome.getFlowers()); } addModTulips(Biomes.FLOWER_FOREST); System.out.println("FLOWER_FOREST:"); System.out.println(Biomes.FLOWER_FOREST); System.out.println(Biomes.FLOWER_FOREST.getFlowers()); } ); and in the console i found this: Spoiler [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:217]: Blumenliste: [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.OceanBiome@706d2bae [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@504f2bcd] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.JungleEdgeBiome@42db955e [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@3c7e7ffd] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.SnowyMountainsBiome@5ddf5118 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@45d28ab7] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.JungleHillsBiome@64fc6470 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@51dd74a0] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.DesertHillsBiome@512dc0e0 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@78652c15] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.TaigaBiome@43b45ce4 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@372b2573] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.FrozenRiverBiome@bea283b [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@66fd9613] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.BadlandsPlateauBiome@7474196 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.ForestBiome@4b240276 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@5c3f9618] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.WoodedHillsBiome@75063bd0 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@deb0c0e] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.DarkForestBiome@7f5e9949 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@6385b07d] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.GiantTreeTaigaHillsBiome@69419d59 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@6942ff10] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.DeepOceanBiome@6c8ad6d7 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@49ed3b76] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.BirchForestHillsBiome@1b10f60e [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@1c33d539] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.GiantTreeTaigaBiome@186d6033 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@527b989a] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.WoodedBadlandsPlateauBiome@744fb110 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.WoodedMountainsBiome@96075c0 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@2c3f47ba] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.MushroomFieldsBiome@fcd3a6f [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.RiverBiome@2459333a [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@ca9ffc0] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.StoneShoreBiome@33e8694b [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@e316971] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.PlainsBiome@54e06788 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@808f65] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.JungleBiome@43cbafa6 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@56540a58] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.SnowyTundraBiome@22854f2b [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@15c0a8ad] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.DesertBiome@5751e53e [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@10bf2185] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.BadlandsBiome@5bba9949 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.SavannaBiome@4679554d [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@14c06f50] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.SnowyTaigaBiome@2e02cc37 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@6230a15a] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.SwampBiome@1835b783 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@7225f871] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.TaigaHillsBiome@5c60f096 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@1bff4cb9] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.SavannaPlateauBiome@49353d43 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@c521a79] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.SnowyBeachBiome@75c15f76 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@6b0f50d8] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.MountainsBiome@19ce19b7 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@36b4cbb8] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.BirchForestBiome@1344f7fe [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@57cfd353] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.BeachBiome@7030b74c [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@4bd29a01] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.SnowyTaigaHillsBiome@652a1a17 [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [net.minecraft.world.gen.feature.ConfiguredFeature@5a4a8a33] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:226]: net.minecraft.world.biome.MushroomFieldShoreBiome@5f35370b [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:227]: [] [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:231]: FLOWER_FOREST: [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:232]: net.minecraft.world.biome.FlowerForestBiome@2d3eb1ea [m[32m[13:29:21] [Render thread/INFO] [STDOUT/]: [drachenbauer32.moretulipsmod.MoreTulips:lambda$39:233]: [net.minecraft.world.gen.feature.ConfiguredFeature@4a3363c9, net.minecraft.world.gen.feature.ConfiguredFeature@63cf6497] This looks like Flower Forwst does not appear in the biomes-list... and i still don´t know, what i should place intead of the "flower" in this code: if (biome.getFlowers().contains(flower)) { } to check, if it for sample contains red tulips... Edit: in a Minecraft wiki, i saw, that tulips only appear in Plains, Sunflower Plains and Flower Forest. Is this right? If Yes, i simply can use 3 lines of my methode-call with theese biomes given as param. Edited March 4, 20205 yr by Drachenbauer
March 4, 20205 yr Author In a wiki i saw, there are only 3 biomes, wich contain tulips. If this is right, i think, i just can three times call my method and give theese biomes as arguments.
March 4, 20205 yr Author I also think, biomes in mods may have the tulips added a bit different to the vanila-ones. This can make it more difficult to check all biomes, that may appear in mods... I also have a new question: Can i have my block and item-registries separated into two init-classes? In the vanila-code has a class Items, where all items are initialized. And a class Blocks, where all blocks are initialized. I have similar classes in my mod, too. So i thaught, i can put the block-registrys into my blocks-class and the item-registrys in my items-class. But now i get an error: Quote java.lang.NullPointerException: Registry Object not present How can i make theese registrys work, if they are in separate classes? Edit: Now i found the solution: Theese lines: public static final DeferredRegister<Block> BLOCKS = new DeferredRegister<>(ForgeRegistries.BLOCKS, Reference.MOD_ID); needed to be in the separate classes, too. Edited March 4, 20205 yr by Drachenbauer
March 4, 20205 yr Author You answered, while i edited my post: Now i found the solution: Theese lines: public static final DeferredRegister<Block> BLOCKS = new DeferredRegister<>(ForgeRegistries.BLOCKS, Reference.MOD_ID); and public static final DeferredRegister<Item> ITEMS = new DeferredRegister<>(ForgeRegistries.ITEMS, Reference.MOD_ID); needed to be in the separate classes, too. Now it works. Edited March 4, 20205 yr by Drachenbauer
March 5, 20205 yr 54 minutes ago, Drachenbauer said: Another question: how do i make bone meal spawn my tulips in theese biomes? Have you tried anything? Have you looked anywhere to see how vanilla stuff works? I'd start with BoneMealItem and work back from there.
March 5, 20205 yr 14 minutes ago, Drachenbauer said: I looked into that item, but saw nothing about the flower-blocks there... You can't give up so easy. Look at what happens when you use bonemeal, and follow the progression of code. I did, and it lead me to notice it calls some methods from the IGrowable interface, which lead me to notice that when you bonemeal a block, the (IGrowable) block holds the code that is executed. That's as far as I got, I'll let you do the rest.
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.