Advertisement
Guest User

Untitled

a guest
May 22nd, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.36 KB | None | 0 0
  1. package org.dominion.worker;
  2.  
  3. import java.security.SecureRandom;
  4. import java.util.LinkedList;
  5. import java.util.List;
  6.  
  7. import org.dominion.login.LoginSession;
  8. import org.dominion.world.World;
  9. import org.jboss.netty.buffer.ChannelBuffer;
  10. import org.jboss.netty.buffer.ChannelBuffers;
  11.  
  12. /**
  13.  * The login worker.
  14.  * @author Matt
  15.  *
  16.  */
  17. public class LoginWorker implements Runnable {
  18.    
  19.     /**
  20.      * The qued logins.
  21.      */
  22.     private static final List<LoginSession> quedLogins = new LinkedList<LoginSession>();
  23.  
  24.     /**
  25.      * On thread start.
  26.      */
  27.     @Override
  28.     public void run() {
  29.         for(LoginSession loginSession : quedLogins) {
  30.             if(World.getSingleton().getPlayerSessions().containsKey(loginSession.getChannel())) {
  31.                 continue;
  32.             }
  33.             int opcode = loginSession.getBuffer().readByte();
  34.             ChannelBuffer out = ChannelBuffers.dynamicBuffer(256);
  35.             switch(opcode) {
  36.             case 14:
  37.                 @SuppressWarnings("unused")
  38.                 int nameHash = loginSession.getBuffer().readUnsignedByte();
  39.                 SecureRandom s = new SecureRandom("response".getBytes());
  40.                 for(int i = 0; i < 9; i++) {
  41.                     out.writeByte((byte)0);
  42.                 }
  43.                 out.writeLong(s.nextLong());
  44.                 loginSession.getChannel().write(out);
  45.                 break;
  46.             case 16:
  47.             case 18:
  48.                 int packetSize = loginSession.getBuffer().readUnsignedByte();
  49.                 int byte255 = loginSession.getBuffer().readUnsignedByte();
  50.                 int short317 = loginSession.getBuffer().readUnsignedShort();
  51.                 int clientVersion = loginSession.getBuffer().readUnsignedByte();
  52.                 for(int i = 0; i < 9; i++) {
  53.                     loginSession.getBuffer().readInt();
  54.                 }
  55.                 int byte10 = loginSession.getBuffer().readUnsignedByte();
  56.                 long clientSessionKey = loginSession.getBuffer().readLong();
  57.                 long serverSessionKey = loginSession.getBuffer().readLong();
  58.                 int uid = loginSession.getBuffer().readInt();
  59.                 StringBuffer unBuffer = new StringBuffer();
  60.                 int read;
  61.                 while((read = loginSession.getBuffer().readUnsignedByte()) != 10) {
  62.                     unBuffer.append((char)read);
  63.                 }
  64.                 StringBuffer pwBuffer = new StringBuffer();
  65.                 while((read = loginSession.getBuffer().readUnsignedByte()) != 10) {
  66.                     pwBuffer.append((char)read);
  67.                 }
  68.                 String username = unBuffer.toString();
  69.                 String password = pwBuffer.toString();
  70.                 break;
  71.             }
  72.         }
  73.     }
  74.  
  75.     /**
  76.      * @return the quedlogins
  77.      */
  78.     public static List<LoginSession> getQuedlogins() {
  79.         return quedLogins;
  80.     }
  81.  
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement