diff --git a/135-Protocol.mediawiki b/135-Protocol.mediawiki index 6dabbc8..f549a18 100644 --- a/135-Protocol.mediawiki +++ b/135-Protocol.mediawiki @@ -6,7 +6,123 @@ This page refers to the RSC #135 client revision. ? == '''Login''' == -? +(The login protocol documentation is currently a work in progress. Below you will find a partially refactored version of the login method found in the 135 client.) +
+try { + username = user; + user = jagex.Util.formatString(user, 20); + password = pass; + pass = jagex.Util.formatString(pass, 20); + if (user.trim().length() == 0) { + drawMessage(messageTable[0], messageTable[1]); + return; + } + if (reconnecting) + d(messageTable[2], messageTable[3]); + else + drawMessage(messageTable[6], messageTable[7]); + if (appletStarted()) + stream = new SocketStream(host, this, port); + else + stream = new SocketStream(host, null, port); + stream.oe = xc; + int ssk = stream.readInt32(); + serverSessionID = ssk; + System.out.println("Session id: " + ssk); + if (reconnecting) + stream.beginFrame(19); + else + stream.beginFrame(0); + stream.putInt16(wc); + stream.putInt64(jagex.Util.longForName(user)); + stream.putLineRSA(pass, ssk, pd, qd); + stream.putInt32(getSessionID()); + stream.flush(); + stream.read(); + int response = stream.read(); + System.out.println("Login response: " + response); + if (response == 0) { + ed = 0; + e_(); + return; + } + if (response == 1) { + ed = 0; + a(); + return; + } + if (reconnecting) { + user = ""; + pass = ""; + f(); + return; + } + if (response == 3) { + drawMessage(messageTable[10], messageTable[11]); + return; + } + if (response == 4) { + drawMessage(messageTable[4], messageTable[5]); + return; + } + if (response == 5) { + drawMessage(messageTable[16], messageTable[17]); + return; + } + if (response == 6) { + drawMessage(messageTable[18], messageTable[19]); + return; + } + if (response == 7) { + drawMessage(messageTable[20], messageTable[21]); + return; + } + if (response == 11) { + drawMessage(messageTable[22], messageTable[23]); + return; + } + if (response == 12) { + drawMessage(messageTable[24], messageTable[25]); + return; + } + if (response == 13) { + drawMessage(messageTable[14], messageTable[15]); + return; + } + if (response == 14) { + drawMessage(messageTable[8], messageTable[9]); + sd = 1500; + return; + } + if (response == 15) { + drawMessage(messageTable[26], messageTable[27]); + return; + } + if (response == 16) { + drawMessage(messageTable[28], messageTable[29]); + return; + } else { + drawMessage(messageTable[12], messageTable[13]); + return; + } + } catch (Exception exception) { + System.out.println(String.valueOf(exception)); + } + if (ed > 0) { + try { + Thread.sleep(5000L); + } catch (Exception _ex) { + } + ed--; + login(username, password, reconnecting); + } + if (reconnecting) { + username = ""; + password = ""; + f(); + } else { + drawMessage(messageTable[12], messageTable[13]); + }== '''Reference''' == A lot of times, Util.longForName is referenced in the packets following: