DavidM Posted February 20, 2019 Share Posted February 20, 2019 (edited) In my TileEntity#read, I am trying to do the following: @Override public void read(NBTTagCompound nbt) { super.read(nbt); /*... getting fields from nbt*/ if (this.world.isRemote()) this.updateModel(); // Used by tesr. Must be called after getting fields from nbt is done. this.power = this.world.getRedstonePowerFromNeighbors(this.pos); } As shown in the code, the last two lines all require access to World; however, when TileEntity#read is called as the world initializes, TileEntity#world is null, and therefore the last two lines will encounter a NullPointerException. My idea is that I can somehow schedule the lines that refers to TileEntity#world to be ran later when the world finishes loading. How would I achieve that? Edited February 20, 2019 by DavidM Quote Some tips: Spoiler Modder Support: Spoiler 1. Do not follow tutorials on YouTube, especially TechnoVision (previously called Loremaster) and HarryTalks, due to their promotion of bad practice and usage of outdated code. 2. Always post your code. 3. Never copy and paste code. You won't learn anything from doing that. 4. Quote Programming via Eclipse's hotfixes will get you nowhere 5. Learn to use your IDE, especially the debugger. 6. Quote The "picture that's worth 1000 words" only works if there's an obvious problem or a freehand red circle around it. Support & Bug Reports: Spoiler 1. Read the EAQ before asking for help. Remember to provide the appropriate log(s). 2. Versions below 1.11 are no longer supported due to their age. Update to a modern version of Minecraft to receive support. Link to comment Share on other sites More sharing options...
V0idWa1k3r Posted February 20, 2019 Share Posted February 20, 2019 Is your TE ITickable? If is is then you can simply do these things on the first tick(have a boolean or something). Otherwise you might be able to do it in TileEntity#setWorld, as far as I can tell it is called after the NBT was loaded. Just make sure you are on the server. 1 Quote Link to comment Share on other sites More sharing options...
DavidM Posted February 20, 2019 Author Share Posted February 20, 2019 (edited) Thanks. Edited February 20, 2019 by DavidM Quote Some tips: Spoiler Modder Support: Spoiler 1. Do not follow tutorials on YouTube, especially TechnoVision (previously called Loremaster) and HarryTalks, due to their promotion of bad practice and usage of outdated code. 2. Always post your code. 3. Never copy and paste code. You won't learn anything from doing that. 4. Quote Programming via Eclipse's hotfixes will get you nowhere 5. Learn to use your IDE, especially the debugger. 6. Quote The "picture that's worth 1000 words" only works if there's an obvious problem or a freehand red circle around it. Support & Bug Reports: Spoiler 1. Read the EAQ before asking for help. Remember to provide the appropriate log(s). 2. Versions below 1.11 are no longer supported due to their age. Update to a modern version of Minecraft to receive support. Link to comment Share on other sites More sharing options...
Cadiboo Posted February 25, 2019 Share Posted February 25, 2019 TileEntity#onLoad is the same as checking if the tick is the tiles first tick, but indicates your intention better Quote About Me Spoiler My Discord - Cadiboo#8887 My Website - Cadiboo.github.io My Mods - Cadiboo.github.io/projects My Tutorials - Cadiboo.github.io/tutorials Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support. When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible. Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme) Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.