Packet to let all users without "Outdated Server/Client" join?

Discussion in 'Plugin Development' started by PVP9dc, Oct 25, 2013.

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

    PVP9dc

    How to do ?
    Any ideas?
     
  2. Offline

    adam753

    What?
     
  3. Offline

    lewysryan

    dont think this is possible. sorry
     
  4. Offline

    Freelix2000

    This is impossible. If the user's client is outdated, then they will not have the resources to play a server that is updated. If the server is outdated, it will not have the resources to let the player play. There is nothing that a Bukkit server and standard client can do to change this.
     
  5. Offline

    1Rogue


    Typically speaking the client would be fine until it attempted to use a block that didn't exist server-side, similar to mods.
     
  6. Offline

    MrSparkzz

    Freelix2000
    Sooo pessimistic... You could do this, but you'd need to make a mod for the client which fakes the version as well as adds in everything from the successor version, which... you could just update it. Or use the new launcher and change the version to an older version.

    PVP9dc
     
  7. PVP9dc This will be very difficult and I doubt it will be stable enough to get released but a way would be to fake packets or create some proxy packets and register those in the Packet registery, each time a packet is about to transmit you would have to check if the player's game version is x or y, and then transform the packet untill it fits the needs of that specific version. This will be a rather slow version depening on how much outdated is for you. If you're, as example, are talking about compatibility between 1.6.0 and 1.6.4, then this will be "easy". you would also need to capture the incoming ping packets and answer those with versions that fit. Anyways I don't really believe this will work, I think if it would, then it would already been created :p
     
  8. Offline

    XD 3VIL M0NKEY

    PVP9dc
    Maybe just downgrade to 1.6.4 instead of trying to get an update early on so you can advertise '1.7 server' on planetMinecraft (please no hate, it's a joke k?)
     
  9. Offline

    Garris0n

    And yet overcast is already 1.7 compatible. Obviously that wasn't done with one packet, though, and probably has some bungeecord manipulation that makes it a lot easier. And it would be pretty much impossible to do with a plugin. Also, your signature (sometimes) says "Bukkit.getServer().stop()", but it's "Bukkit.getServer().shutdown()" :p
     
    CaptainBern likes this.
  10. Garris0n Indeed, and about my signature, I use that because I'm not a "mainstream thinker" :p
     
  11. Offline

    Garris0n

    *cough* hipster *cough*
     
    MasterDoctor and CaptainBern like this.
  12. Offline

    Freelix2000

    I said it would be impossible with a normal Bukkit server and normal client. Nothing is really impossible, but making a new client or a mod for the client would be very difficult, and most players wouldn't really care to download that just to use the updated version when they can just update.
     
  13. Offline

    PVP9dc

    Thanks for your help, but how can i get the player's version number?
     
  14. Offline

    Comphenix

    Unfortunately, it's no longer as "easy" as previous versions, where you could provide partial backwards compatibility by changing the protocol version (and making some minor alterations).

    This time the protocol has been completely overhauled - from added and removed fields in numerous packets, an improved server list and login sequence, to the very raw byte stream itself. There's now a length field before every packet, most integers are now encoded with variable length, and the packet IDs (used to identity a packet) have changed completely.

    Basically, getting backwards compatibility is a ton of work - you'd either have to put some sort of translation proxy between the client and server, or perhaps simply implement the new protocol in Spigot/Sportbukkit, as they already use Netty.

    Impressive. But it did take two weeks to prepare, so again, it's definitely no walk in the park.
     
  15. Offline

    Garris0n

    Exactly. I was going to point that out but I figured it was already in the text I linked :p
     
  16. Offline

    se1by

    A modded craftbukkit.jar should be enough. You won't be able to support every version, but the last few + the next should be possible.
    But I highly doubt that you want to do that much work (with code which isn't fully documented) if you don't have a pretty big server for it.
    On the other hand, it would be kind of a hacky work which I always like :p
    Man, I'd like to see the code...

    EDIT(to the post above me which weren't there when I wrote my post):
    Yeah, the protocol changed, but with a little work you could implement the new protocol and handle the stuff for each client with the fitting protocol.
    Still, hacky code, would be definitly love to read it, but I would never trust it in a production enviroment.
     
  17. Offline

    wafwot

    That one word made me chuckle.
     
  18. Offline

    mattrick

    I think he was talking about how Shotbow both allows 1.6.2 AND 1.6.4 clients as there is nearly no difference.
     
  19. Just as an idea, what if you try running both versions on your server?
     
  20. Offline

    mattrick

    How do you run 2 different servers on the same port. If I recall, It will say "Server is already running on this port."
     
  21. Idk I was just throwing it out there :p I've seen a few different servers that were compatible with different versions of Minecraft, so I figured they were doing something along those lines :p
     
  22. Offline

    wafwot

    Actually the reference was to overcast and 1.7.2, 1.7.1, 1.6.4 and 1.6.2 at the same time.

    Comphenix was not trying to say it was simple because of the use of netty, thus the chuckle at his choice of a phrase.
     
    Comphenix likes this.
  23. Offline

    mattrick

    I'm just geussing they do something with BungeeCord, which Shotbow uses. Maybe they run both a 1.6.2 server AND a 1.6.4 server on two different computers then when the client pings thier ip, it gets thier version and sends them to the right server. Needless to say that a pain.
     
  24. Offline

    laacis2

    That overcast's guy is a joke saying '5000 lines later im very proud of myself' ...
     
Thread Status:
Not open for further replies.

Share This Page