How to make your server jar support multiple versions

Discussion in 'Programming' started by iUseRod, Aug 26, 2021.

  1. title says it all, i have a 1.8.8 server & i want it to support 1.7.10 aswell, this is a custom coded jar i made, and i just don't know how to make it for 1.7.10 aswell, you might say if you use 1.7.10 u can use 1.8.8 aswell, but this is not an option as i coded everything in 1.8.8, and i can't just change that to there, it's not a button to press, that's why i'm seeking help
     
  2. Are you talking about a plugin how to support 1.7 & 1.8 or about a MC client how to support 1.7 & 1.8?
     
  3. Try viaVersion

    Also nice PFP, izuku pog
     
  4. no, i'm not talking about a plugin, i'm talking about a way to implement the 1.7.10 protocol into my spigot server jar via code, or as an alternative, how to hardcode a plugin into the server jar
     
  5. then, your title should be more specific. I do not see a situation where you're server is able to use the 1.7.10 protocol. in theory, yes you could add it to your server jar but you cannot have the clients support. therefore, making that useless. Since im making the assumption whatever protocol you want is no longer supported in the higher versions.
     
  6. alright, can you tell me how i add it to the server jar?
     
    • Like Like x 2
  7. You cannot add a plugin to your server jar. If you wanna edit your server that’s at your own risks and you’ll have to handle all the crashes. You have to make your own protocol.
     
  8. That is a great link! I'm going to use that myself haha.


    I don't know what you're expecting. for example, if you want to handle other versions. they DO NOT have some magical protocol that solves this for them. instead, they handle each version request separately this works because the client gets the expected result and can continue operating as normal. This means that you need to do a lot of research, testing and prototyping before you can even get started. You'd need to understand how each protocol works, what its functions are and what it is replaced with (its successor) so you can 'translate' the protocol. if you've come here expecting a simple and easy answer then I'm sorry to break your dreams.

    as Michel said, what you have asked is too vague but what we have been able to piece together of what you are trying to ask is too complex to be able to explain in specifics terms.

    I hope what I have explained gives you some understanding.

    Also: When dealing with something like this and you are new. the best option is to delegate the responsibility which is why earlier I mentioned ViaVersion. I don't see why you couldn't require these plugins, or force load it yourself. Since it handles all cross compatibility you would ever need.
     
    #9 DevCallum34124, Aug 27, 2021
    Last edited: Aug 27, 2021
  9. so you're saying that there's no way of doing that?, for example, the spigot 1.7.10 supports 1.8.8 aswell.. so that ain't impossible first, and second, i'm not looking for some "magical protocol"' that solves this issue, and i'm not expecting a simple and easy answer, did i ever mention that? o_O
     
  10. ummm no? lol i'm not asking for an answer for something else other than the original thing i want
     

  11. If you had understood the entirety of what I said.

    If you want to handle other versions... they DO NOT have some magical protocol that solves this... they handle each version's request separately this works because the client gets the expected result and can continue operating as normal... 'translate' the protocol...

    You said, "this is a custom coded jar I made, and I just don't know how to make it for 1.7.10 as well" to fulfil that you need to "'translate' the protocol.".

    I can't give you more of an answer than that, since I've not done any cross-version stuff and therefore, you need to do the rest of the heavy lifting; research, testing and prototyping.

    Also, Sorry if I came off as rude before. I've had a bad day. It was never my intent :)
     
    #12 DevCallum34124, Aug 27, 2021
    Last edited: Aug 27, 2021
  12. Are you sure?
    I think you do.

    The point is WHY do you want to implement a 1.7 protocol handling in a 1.8 server?
     
  13. because i was hired to...
     
  14. i mean... this wasn't called rude lol?
     
  15. anything at all?, i just wanna know how to implement another protocol into my server jar, or, how to hardcode a plugin into the server jar, or just save it in there.
     
  16. I’ve never seen any server with 1.7 AND 1.8 support since the protocol changed drastically from these versions if I recall correctly.
     
  17. If you had understood the entirety of what I said.

    If you want to handle other versions... they DO NOT have some magical protocol that solves this... they handle each version's request separately this works because the client gets the expected result and can continue operating as normal... 'translate' the protocol...

    You said, "this is a custom coded jar I made, and I just don't know how to make it for 1.7.10 as well" to fulfil that you need to "'translate' the protocol.".

    I can't give you more of an answer than that, since I've not done any cross-version stuff and therefore, you need to do the rest of the heavy lifting; research, testing and prototyping.

    When a client connects, you treat it like any other client but instead of sending 1.8.8 clients to the server, you send 1.7. You can use build tools to take a look at the Minecraft version and probably get the packets from there.
     
  18. well, spigot version 1.7.10 supports 1.8.8 as well lol?
     
  19. alright then if this is "impossible" even tho i know it ain't... how to change a spigot version to another one from the src