Posted September 19, 201411 yr Hi all, I have to draw in a Gui the name of a dimension having only the dimensionId. On the server i just do DimensionManager.getWorld(dimensionId).provider.getDimensionName(), but if I call it from the client it will obviously crash the client. So, anyone know a method to get the provider(or directly the name) of a dimension having the dimensionID?
September 20, 201411 yr Author I know, but I need only the Name of the dimension. I'm quite sure that is saved somewhere in the client, i would like to know where.. The only thing that comes to mind at the moment is to send a packet from the server to the client with all dimension name and is respective dimensionId when the world loads.
September 20, 201411 yr There is only one World on the client, as diesieben said. So you can just use Minecraft#theWorld.provider.getDimensionName(). BEFORE ASKING FOR HELP READ THE EAQ! I'll help if I can. Apologies if I do something obviously stupid. If you don't know basic Java yet, go and follow these tutorials.
September 20, 201411 yr Author Read carefully. In my gui, that the player can be open from any dimension I have many dimensionId. If one of the dimensionIds is -1(while the player is in the overworld) I have to print Nether, not Overworld.
September 20, 201411 yr You need to use packets. I would send a packet to the server with the dimensionId, on the server, use WorldServer.getServer().worldServers[dimensionId].provider.getDimensionName() to get the name, and then send a new packet back as a reply containing the name. Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
September 20, 201411 yr Author You don't necessarily need packets. When your GUI is opened the first time create a Map<Integer, String> that maps dimensionId to Dimension name. Then loop through DimensionManager.getStaticDimensionIDs, which gives you all registered dimensions. For each Dimension create a temporary WorldProvider with DimensionManager.createProviderFor(dimension) and get the name from that. You only need to do this once, when your Gui is opened a 2nd time you can re-use the cached Map. THAT is what I was looking for. Thank you!
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.