Map Height

Discussion in 'Bukkit Discussion' started by Scyfi, Sep 14, 2011.

Thread Status:
Not open for further replies.
  1. Offline

    Scyfi

    According to a recent Bukkit tweet, seems changing the map height in 1.8 causes the clients to crash. Has anyone tried messing around with it in the pre-releases?
     
  2. Offline

    Jackster21

    whats the command and ill try on my vanilla server im hosting?
     
  3. Offline

    Scyfi

    You cant do it in game, have to modify a variable in the code. But Notch said he made it a simple variable that can be changed.
     
  4. Offline

    Jackster21

    where in the code, ill give it a go.
     
  5. Offline

    Snaipe

    Is it handled client-side in SMP maps ?

    That would be awesome to have the height limit changed on servers without forcing our users to install a height-modifier mod.
     
  6. Offline

    Scyfi

    According to Notch it is supposed to be changeable now. I am going through the code now for vanilla server to see if I can find it.
     
  7. Offline

    Jackster21

    nice 1 mate :D
     
  8. Offline

    xzosimusx

    I have been wondering about this since I first read about it yet nobody else seems to have understood exactly what this means! we will finally be able to change the max height on our maps!!! why is nobody else flipping out over this?! its major for mega builders like myself!

    Thanks for looking into it Scyfi and I for one look forward to your findings with great anticipation!
     
    Pim1234 likes this.
  9. Offline

    Todd Chartier

    Yeah, Agreed.. I was very excited to hear about a modifiable map height.. I can't wait to see your findings.
     
  10. Offline

    Scyfi

    Since the code is all obfuscated, I can only take an guess for now. It looks as though the files eh.class in server jar and rv.class for client jar deals with terrain generation and have a lone variable or 128. Bukkit has a getMaxHeight function for 128 but nothing allowing a plugin to set it, at least in build 1101. Might have changed in newer builds.

    You will have to set both client and server to the same height. Something hopefully the mod spout will take care of. I think it's a dead issue once again until Notch fixes the client to accept what the server map height is set to.
     
    gameswereus likes this.
  11. Offline

    Cere4l

    i was wondering about that, seeing as you can fly over 128 aswell... are you sure it needs a client mod?
     
  12. Offline

    fugue2005

    drool, this is the one thing i've been waiting for.
     
  13. Offline

    phondeux

    I swear someone on the minecraftforums has already tried over-riding this and the client chokes. I'm digging around for the reference ...
     
  14. Offline

    t2wave

    If you read what Notch said about the max height he said that he made the it easier to "mod. " So at this point in time it requires a modded client to connect to a modded server. Otherwise the client crashes because the max height does not match with the client.
     
  15. Offline

    Cere4l

    thats a conclusion that makes absolutely no sense at ALL. if there wouldnt be a hardcoded limit in the client but only in the server you could mod it on the server and it would work in the client. i mean... bukkit itself kinda proves that you can have mods without client mods :s

    hmm dont do the effort. if someone tried it and you read that ill just take your word for it. looking back on it.. if you place a block where your not allowed with permissions or w/e the block is at least placed for a small while. blocks over 127 never get placed

    terrible shame, i hope notch takes the hard limit out of the client and lets the server decide the maximum, thatd be the cleanest way to solve this by far...
     
  16. Offline

    phondeux

    I gave up looking an hour ago. The minecraftforums are a cesspool of stupidity. :(

    I'm guessing that at some point spout will roll this in and then i'll require all of my players to use spout. :p
     
  17. Offline

    Cere4l

    how does spout work with.... less legal minecraft versions. two cheapass friends of mine havent bought the game yet dispite having hours upon hours of joy in it and now matter how horrible as i find this.. i cant throw them out :p
     
  18. Offline

    phondeux

    It doesn't. They should skip a few dining out meals or a couple of trips to wherever and pony-up for the game.
     
    Geethebluesky likes this.
  19. Offline

    Cere4l

    no chance i think... i shouldve bought the game when it was two for the price of one for them :( on the other hand itd cost me 30 euros to enable spoutcraft....

    *ponders*

    30 euros to finally enable secure server and have spoutcraft :O

    *goes off to check how easy spoutcraft is for other people
     
  20. Offline

    JesterAzazel

    You don't need the purchased version for spoutcraft.
    And I hear there's a way to run a cracked server without hamachi, but I haven't figured it out.
    Either way, it's still more secure if you buy the full version. Whether or not it's worth it depends on how much money you have, but if you're old enough to work then 30 eurobucks isn't so bad.
     
  21. Offline

    hansihe

    I actually tried modifying any relevant variables in the client, game launced, started world, but the generator didnt make every feature bigger like in the screenies (Should have tried to tardtower upwards)

    Will retry

    Ninja edit:
    http://ignum.dl.sourceforge.net/project/classeditor/classeditor/2.23/ce2.23.tar.gz
    Thats the class editor I used for changing vaiables and not getting into decompiling hell

    Tried modifying two suspicious variables in the rv.class file, didnt work, maybe hardcoded block placement limit?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 19, 2016
  22. Offline

    xianthax

    I've found something rather interesting but haven't been able to test in a reasonable manor yet (need a compiling version of the decompiled code as editing the bytecode would sorts suck...). This may be a stretch but bare with me...

    All for the client code...

    adp.class is ChunkProviderGenerate, there are several places in this code where, when decompiled with JD the source contains '<unprintable>' , a single quote followed by an unprintable character followed by another single quote, this unprintable character equates to 128 when laid against the unicode chart with as a result results in 128 in the byte code.
    There are also instances of this weird unicode conversion in other places in the code, all evaluating to 128, totaling 20 source files and 70 instances hence why it would be a pain to go edit the bytecode manually to test this. Looking over the various locations where this occurs, it includes Biome generation code, storage allocations, etc, etc.

    Now there are instances of a 'normal' 128 numerical value in lots of places in the code as well so this doesn't look like some issue with the decompiling process although it mostly certainly could be that simple.

    Thus I propose the possibility of something that maybe a bit crazy, but could this be a "hint" from Notch indicating which values need to be changed to adjust the build height limit.

    /end possibly irrational conspiracy theory
     
  23. Offline

    hansihe

    I will modify it, if I get a variable name

    Edit:

    Using the class editor on adp.class, I can see two double values set to 128, will try modifying them
     
  24. Offline

    Cere4l

    no 30 euros isnt much. but its also for someone else... :p if itd be 30 euros for me thatd be entirely different
    also, if you want to run "a cracked server without hamachi" (bukkit is free so theres no cracking it ;) ) then just open ports on your router and find out your ip :p
     
  25. Offline

    xianthax

    Most of the locations are not in the constants tables, you'll need a byte code editor to make changes, you'd be looking for a 'sipush 128' instruction (short signed integer load).

    In the decompiled source you would be looking for a literal character of the form '/u0080' which will be displayed as an unprintable character on most platforms.

    Additional clues that something is weird here is that it in many expressions only the 128 is changes to a sipush so it doesn't seem that this would be the result of a compiler optimization although i'm no expert on javac.

    Also, in several places the variables storing the result of these operations involving the '128' have changed from byte to int (1.7.3 vs 1.8.1).

    I may just try to change it and see....it just going to take awhile to track down the 70 locations in the byte code.
     
  26. Offline

    Scyfi

    You shouldn't need to, it should be based on one variable.
     
  27. Offline

    hansihe

    The program I used, scans the java bytecode for variables, and makes it possible for you to modify them
     
  28. Offline

    xianthax

    If it is, I certainly haven't found it or anything likely to be it. Think about the number of places in the code that would be effected by the change, it would be a pretty obvious singular constant accessed in many locations.

    Class Editor will only allow you to edit value in the constant table. For example:

    rand.nextInt (128 / 16 - 1);

    Expressions like that are littered throughout the generation code, and the values are literals, they can not be changed by Class Editor, you need a byte code editor.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 19, 2016
  29. Offline

    JesterAzazel

    Yea I looked up how to run a server without hamachi and tried that whole port forwarding thing, and I think I know where I screwed up, but I lost the means to test my server. I was using a neighboor's connection to make sure people besides me could connect, but the wireless connection doesn't exist anymore.
    For now I'm just using hamachi until I get the means to test my connection again.
     
  30. Offline

    xianthax

    just use one of the dozens of online port scanning tools to make sure the proper port is open on your external IP.

    Or just route through a proxy, or Tor, and test it yourself.
     
Thread Status:
Not open for further replies.

Share This Page