Posted February 22, 201510 yr Hello, Please forgive the newbie-ness of this question, but I couldn't find the answer anywhere. I'm brand new to Minecraft modding. I want to place blocks in an existing world. I think I'm supposed to do something like this: [embed=425,349] World world = Minecraft.getMinecraft().theWorld; world.setBlock(0, 70, 0, Blocks.cactus, 1, 2); //<---java.lang.NullPointerException [/embed] It seems pretty clear to me that theWorld has not been set to anything yet. I think my problem is that I've put this code in my init() method. Can anyone tell me where I should put it? (Again, I want to place new blocks in an existing world, not a new world). Much thanks! It probably does not matter, but... I'm using Forge 1.7.10. Also, here is the whole code: [embed=425,349] package com.example.examplemod; import net.minecraft.client.Minecraft; import net.minecraft.init.Blocks; import net.minecraft.server.MinecraftServer; import net.minecraft.world.World; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.event.FMLInitializationEvent; @Mod(modid = ExampleMod.MODID, version = ExampleMod.VERSION) public class ExampleMod { public static final String MODID = "examplemod"; public static final String VERSION = "1.0"; @EventHandler public void init(FMLInitializationEvent event) { World world = Minecraft.getMinecraft().theWorld; world.setBlock(0, 70, 0, Blocks.cactus, 1, 2); //<---java.lang.NullPointerException } } [/embed]
February 22, 201510 yr What.... The world does not exist when you initialize the mod. What are you trying to do? Maker of the Craft++ mod.
February 22, 201510 yr You need an Event Listener for a World getting loaded. Try it like this: ExampleMod Class: @EventHandler public void init(FMLInitializationEvent event){ MinecraftForge.EVENT_BUS.register(new WorldEventListener()); } WorldEventListener Class: @SubscribeEvent public void worldLoaded(WorldEvent.Load event){ event.world.setBlock(0, 70, 0, Blocks.cactus, 1, 2); // every time a world gets loaded this method is gonna get called } The TileEntitys are Going to kill us all and take over the entire (Minecraft) world!
February 22, 201510 yr Author @BinaryCPG: THANK YOU!!! That worked perfectly! Do you know of a book that teaches those kinds of nuts and bolts? @Anon10W1z: Thanks for your reply. What you said makes perfect sense. To answer your question: Basically I was just trying to create a building (house, ship, whatever) from code so that I could force it to appear in any of my existing worlds exactly where I tell it too, without having to rebuild it manually in the game. Now I can :-)
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.