Jump to content

Teleportation between servers


Recommended Posts

I have an existing bukkit server and am looking into getting another server set up with Tekkit. My existing server uses the plugin Transporter to go between worlds and go between servers. I have a link between my server and a friend's server. To go between servers I have to use the Spout client to handle the redirect so the client can handle the handoff between servers. I tried the Tekkit client on my existing server and it works fine but does not handle the server to server handoff. It reacts like the vanilla client with the same redirect error, it essentially logs off my server but cannot handle switching to the destination's new IP to log into.

Does anyone know of a way to allow for this to work? I would like to be able to setup links between Tekkit and non-Tekkit bukkit servers, I am assuming it would be a mod for the client.

Link to comment
Share on other sites

  • Forum Administrators

You can try putting the transporter client patch into the tekkit client. I haven't tried it but that's probably the best place to start.

Link to comment
Share on other sites

I think I will try that sometime tomorrow, I was thinking about doing that earlier while we were debating on some error codes users were getting when being redirected. I imagine this kind of code is the same for any server to server transportation.

Link to comment
Share on other sites

The patcher does not seem to want to run. I tried splicing out code from Spout's minecraft.jar to Tekkit's and it did not fix the problem, I replaced Tekkit's with Spout's Minecraft.jar and same thing, so it must be a class in the Spoutcraft.jar file. Working with author of Transporter to find out which class and how he modified it, it is supposed to be a small patch that changes behavior, so it does not just kick people when they teleport out but instead it hands the destination IP to the client and has it login to the other server automatically.

Link to comment
Share on other sites

Made some headway on the teleportation issue. Because of the obfuscation system Mojang uses, the file class name changes each version. In 1.2.5 the class is dw.class. Transporter also adds its own Transporter.class. I manually inserted the two files and it still kicked me but this time it was an internal server error coming from the other side. At least I got past the request for me to redirect and login to the other server. I may have to poke around in the class files and see if there is a way to splice the needed code in dw.class.

Link to comment
Share on other sites

Made some headway on the teleportation issue. Because of the obfuscation system Mojang uses, the file class name changes each version. In 1.2.5 the class is dw.class. Transporter also adds its own Transporter.class. I manually inserted the two files and it still kicked me but this time it was an internal server error coming from the other side. At least I got past the request for me to redirect and login to the other server. I may have to poke around in the class files and see if there is a way to splice the needed code in dw.class.

be sure to keep us posted on your progress, I'm sure there are others who will find it very useful.

Link to comment
Share on other sites

While it is a nice mod, it is not quite what I was looking for. In this case it is the server to server teleportation itself that is the problem. I finally got the Tekkit folder decompiled with MCP 6.2 and looked for the correct class the author of Transporter told me he made the modifications to, the class is in guiDisconnected.java and it is supposed to have two lines to call Transporter.java. It essentially checks when a person disconnects from a server whether or not there was a "destination" involved and it calls the Transporter.class to handle "autodialing" that destination and auto connecting to the other server.

The plugin you have there is a little after my issue, I am trying to get it so people can travel between servers at all, rather than swapping out mods or protecting them between servers, in this case I am using as a test bed two Bukkit servers with Transporter installed and just trying to get the Tekkit client to go between them. After that works I can progress to bigger testing of a Tekkit server to the other servers.

After some decompiling of different versions I am going to try and manually add the lines of code needed.

Link to comment
Share on other sites

Apparently Spout's implementation is different or is placed in a different .jar. Comparing the decompiled .java files in Tekkit and Spout's Minecraft.jar shows they are the same. Spout does work so it must be held in a different area.

Link to comment
Share on other sites

So far only a slightly insulting response stating that Tekkit has nothing to do with Spout and that only the launcher is a fork. Which is probably true but does not help answer the question, unless that is an oblique way of telling me no one will help answer the question.

Link to comment
Share on other sites

Looks like I may have to try decompiling Spout and Tekkit to see if I can locate the errant code, at least I have a start in knowing what .class Transporter modified. Can anyone say what is used to compile Tekkit? Spout I believe says it uses Maven, have not searched for that yet.

Link to comment
Share on other sites

No one knows the answer to decompiling the modpack.jar? I wanted to do it with the highest chance of success to add the patch from Transporter.

you don't need to decompile the whole thing, just find the class that you need to modify in modpack.jar, if it doesn't exist, you can just throw your patch directly into the modpack.jar

Link to comment
Share on other sites

It looks like the modpack.jar is obfuscated and the .class files appear as hex, not text code. I checked the dw.class file in the .jar but could not edit it properly, dw.class is the obfuscated name in minecraft.jar for the guiDisconnected.class, the class I need to edit. I tried doing a direct copy of the modified dw.jar from transporter and while the client ran it failed when trying to teleport. I can try it again, but it is hard to verify that the code I am inserting is not fouling up something else.

Link to comment
Share on other sites

Ok, this time I renamed the dw.class in the modpack to dw2.class, probably had nothing to do with it but mentioning it anyway. I inserted the dw.class from my already patched minecraft.jar and the Transporter.class from that same patched minecraft.jar. I was able to get the client to teleport between two bukkit based servers running Transporter plugin. I am not sure what is different from this time versus the last time I tried this, but it is working.

I am now doing to see about getting a temporary Tekkit server setup with my host to try it out between Tekkit and bukkit servers.

Link to comment
Share on other sites

Ok, latest update, my previous success between two bukkit servers was due to using and modifying the dev build of the client. I rented out a 2 GB server and set up a mostly vanilla Tekkit server with the only extra plugin being Transporter. Client had issues since the server is still on 1.1 and the client was 1.2.5. Degraded my client to the recommended build and it worked. Set up Transporter and made successful link between my Bukkit server and the Tekkit server.

Now the project is on hold because unless I can find a development build of Tekkit the client will not be able to make the leap due to the 1.1 to 1.2.5 difference. The dev build of the client was able to work with regular Bukkit and the like servers with no problems, as long as you do not try to use materials native to Tekkit, which can be erased by Transporter so the inventory cannot travel to the other server. I can reproduce the patch for the client easily enough to make the versions work, but cannot get past the Minecraft version differences.

Link to comment
Share on other sites

  • 3 weeks later...

Ok, I have 3.0.4 server running and still trying to pick out where the guiDisconnected procedure went, for some reason the minecraft.jar in Tekkit does not match the one in Minecraft, I am assuming the obfuscation moved it. Still looking.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...