Как правильно установить в мир блок с tileEntity Minecraft Forge [1.7.10]
Моды никогда не писал, Forge даже установить не мог нормально до недавнего времени, так что прыгнул высоковато. Суть такая: нужен блок, который после разрушения заменяется на другой (неразрушимую заглушку). В идеале чтобы ещё и сам блок мог восстановится несколько раз до того, как он заменится на заглушку, и сама заглушка могла превратиться обратно в блок через некоторое время. Типичная точка с ресурсом из RPG. Как я понял просто написать
public void onBlockBreak (){
if(!world.isRemote){
world.setBlock(x,y,z, Blocks_Init.OreRemains);
}
}
При попытке сломать такой блок игра зависает и выдаёт такой краш
Time: 06.08.21 16:29
Description: Ticking memory connection
java.lang.NullPointerException: Ticking memory connection
at VnoTech.Test_MC_Mod.blocks.OreFormationIron.breakBlock(OreFormationIron.java:42)
at net.minecraft.world.chunk.Chunk.func_150807_a(Chunk.java:658)
at net.minecraft.world.World.setBlock(World.java:519)
at net.minecraft.world.World.setBlockToAir(World.java:651)
at net.minecraft.block.Block.removedByPlayer(Block.java:1670)
at net.minecraft.block.Block.removedByPlayer(Block.java:1664)
at net.minecraft.server.management.ItemInWorldManager.removeBlock(ItemInWorldManager.java:270)
at net.minecraft.server.management.ItemInWorldManager.removeBlock(ItemInWorldManager.java:263)
at net.minecraft.server.management.ItemInWorldManager.tryHarvestBlock(ItemInWorldManager.java:304)
at net.minecraft.server.management.ItemInWorldManager.onBlockClicked(ItemInWorldManager.java:168)
at net.minecraft.network.NetHandlerPlayServer.processPlayerDigging(NetHandlerPlayServer.java:523)
at net.minecraft.network.play.client.C07PacketPlayerDigging.processPacket(C07PacketPlayerDigging.java:61)
at net.minecraft.network.play.client.C07PacketPlayerDigging.processPacket(C07PacketPlayerDigging.java:94)
at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241)
at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182)
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)
Из собственных предположений: нужно лезть в загрузку\отгрузку чанков и тд.