Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.dominion.worker;
- import java.security.SecureRandom;
- import java.util.LinkedList;
- import java.util.List;
- import org.dominion.login.LoginSession;
- import org.dominion.world.World;
- import org.jboss.netty.buffer.ChannelBuffer;
- import org.jboss.netty.buffer.ChannelBuffers;
- /**
- * The login worker.
- * @author Matt
- *
- */
- public class LoginWorker implements Runnable {
- /**
- * The qued logins.
- */
- private static final List<LoginSession> quedLogins = new LinkedList<LoginSession>();
- /**
- * On thread start.
- */
- @Override
- public void run() {
- for(LoginSession loginSession : quedLogins) {
- if(World.getSingleton().getPlayerSessions().containsKey(loginSession.getChannel())) {
- continue;
- }
- int opcode = loginSession.getBuffer().readByte();
- ChannelBuffer out = ChannelBuffers.dynamicBuffer(256);
- switch(opcode) {
- case 14:
- @SuppressWarnings("unused")
- int nameHash = loginSession.getBuffer().readUnsignedByte();
- SecureRandom s = new SecureRandom("response".getBytes());
- for(int i = 0; i < 9; i++) {
- out.writeByte((byte)0);
- }
- out.writeLong(s.nextLong());
- loginSession.getChannel().write(out);
- break;
- case 16:
- case 18:
- int packetSize = loginSession.getBuffer().readUnsignedByte();
- int byte255 = loginSession.getBuffer().readUnsignedByte();
- int short317 = loginSession.getBuffer().readUnsignedShort();
- int clientVersion = loginSession.getBuffer().readUnsignedByte();
- for(int i = 0; i < 9; i++) {
- loginSession.getBuffer().readInt();
- }
- int byte10 = loginSession.getBuffer().readUnsignedByte();
- long clientSessionKey = loginSession.getBuffer().readLong();
- long serverSessionKey = loginSession.getBuffer().readLong();
- int uid = loginSession.getBuffer().readInt();
- StringBuffer unBuffer = new StringBuffer();
- int read;
- while((read = loginSession.getBuffer().readUnsignedByte()) != 10) {
- unBuffer.append((char)read);
- }
- StringBuffer pwBuffer = new StringBuffer();
- while((read = loginSession.getBuffer().readUnsignedByte()) != 10) {
- pwBuffer.append((char)read);
- }
- String username = unBuffer.toString();
- String password = pwBuffer.toString();
- break;
- }
- }
- }
- /**
- * @return the quedlogins
- */
- public static List<LoginSession> getQuedlogins() {
- return quedLogins;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement