Laryagar Posted May 9, 2012 Posted May 9, 2012 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.
Forum Administrators sct Posted May 9, 2012 Forum Administrators Posted May 9, 2012 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.
Laryagar Posted May 9, 2012 Author Posted May 9, 2012 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.
Laryagar Posted May 9, 2012 Author Posted May 9, 2012 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.
Laryagar Posted May 10, 2012 Author Posted May 10, 2012 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.
freakachu Posted May 10, 2012 Posted May 10, 2012 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.
Sp0nge Posted May 10, 2012 Posted May 10, 2012 THIS is what you are looking for: http://www.mcportcentral.co.za/index.php?topic=929.0
Laryagar Posted May 11, 2012 Author Posted May 11, 2012 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.
Laryagar Posted May 11, 2012 Author Posted May 11, 2012 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.
freakachu Posted May 11, 2012 Posted May 11, 2012 try looking in modpack.jar and see what you come up with. no idea if that will actually help any, but it's worth a shot.
Laryagar Posted May 11, 2012 Author Posted May 11, 2012 I joined the Spout forums last night to see if anyone there could point me to the errant code.
Laryagar Posted May 12, 2012 Author Posted May 12, 2012 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.
Laryagar Posted May 12, 2012 Author Posted May 12, 2012 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.
Laryagar Posted May 13, 2012 Author Posted May 13, 2012 Actually, if I could find where the guiDisconnected.java was located in Tekkit, I could modify it with Transporter's code, it is only two lines that call in functions in a separate Transporter.java class.
Laryagar Posted May 16, 2012 Author Posted May 16, 2012 What would be the best method of decompiling the modpack.jar? I have MCP6.2 but is there a specific way to decompile the modpack.jar. Adding the patch to the minecraft.jar does nothing.
Laryagar Posted May 18, 2012 Author Posted May 18, 2012 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.
miniboxer Posted May 18, 2012 Posted May 18, 2012 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
Laryagar Posted May 20, 2012 Author Posted May 20, 2012 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.
Laryagar Posted May 20, 2012 Author Posted May 20, 2012 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.
Laryagar Posted May 24, 2012 Author Posted May 24, 2012 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.
Laryagar Posted June 9, 2012 Author Posted June 9, 2012 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now