Posted May 8, 20223 yr During the load() method, BlockEntity.level is always null.. which means I cannot use it to get the MinecraftServer(Level#getServer), which means I cannot get the data I need when loading, causing it so when I rejoin the world(or Ig reload the chunk, never tried), Some data about my block is not saved... How can I get around this? What I need is: The MinecraftServer instance, which I thought of getting using BlockEntity.level, but it is null during the BlockEntity#load method
May 9, 20223 yr why did you not use lazy loading, means you load the data when you need it the first time
May 9, 20223 yr Author The data I use a Location, which is a class I made containing a BlockPos and a Level, the reason I need a level iis because it might not be the same world as the BlockEntity's one. Basically I am making wireless redstone and I want it to work accross dimensions too and I am trying to load the transmitter's target, but to load a world you need to use MinecraftServer#getLevel which I can only access using Level#getServer
May 9, 20223 yr Author 3 hours ago, Luis_ST said: why did you not use lazy loading, means you load the data when you need it the first time Also, wdym? How do I do that? I just looked at tutorials for BlockEntitiy and all of them used BlockEntity#saveAdditional and BlockEntity#load
May 9, 20223 yr Author 2 minutes ago, diesieben07 said: Store the ResourceKey<Level> instead of the Level directly in your Location class. How will I use it later tho?? When I need to use the Level? I don't want to always be forced to input a MinecraftServer into my get method
May 9, 20223 yr Author Well yeah but if my Location class only contains the ResourceKey<Level> then how is it gonna use the Level internally? There are short methods such as getBlockState(), getBlockEntity() etc. Are they all gonna demand a MinecraftServer instance?
May 9, 20223 yr Author What I have so far, is a way to store the "world name"(the String I can use the get the ResourceKey<Level> from), and a method called initAndGetWorld(MinecraftServer) that checks if the world is null and if not gives it a value, as well as a method to load the world without the server just by filling in that String, but the problem with that is: I don't know whether I init the world at any point of the code.... so I'm just gonna have to use it anywhere(?)
May 9, 20223 yr Author 4 minutes ago, diesieben07 said: Or you need two Location classes, one for storage (using ResourceKey) and one for runtime use (using Level). I guess this can work, I'll give that a try
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.