Advertisement
Guest User

Untitled

a guest
Aug 18th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. package org.stewie.net.login;
  2.  
  3. import org.jboss.netty.buffer.ChannelBuffer;
  4. import org.jboss.netty.channel.Channel;
  5. import org.jboss.netty.channel.ChannelHandlerContext;
  6. import org.jboss.netty.handler.codec.replay.ReplayingDecoder;
  7. import org.stewie.net.GameDecoder;
  8. import org.stewie.net.IoClient;
  9. import org.stewie.net.message.MessageBuilder;
  10.  
  11. /**
  12. * @author Stewie
  13. *
  14. */
  15. public class RS2LoginDecoder extends ReplayingDecoder<LoginStage> {
  16.  
  17. public RS2LoginDecoder(){
  18. checkpoint(LoginStage.READ);
  19. }
  20.  
  21. @Override
  22. protected Object decode(ChannelHandlerContext ctx, Channel channel,
  23. ChannelBuffer buffer, LoginStage state) throws Exception {
  24. IoClient client = new IoClient(channel);
  25. switch(state){
  26. case READ:
  27. buffer.skipBytes(1);
  28. checkpoint(LoginStage.CONNECT);
  29. break;
  30. case CONNECT:
  31. int read = buffer.readByte();//should be 10
  32. System.out.println("read = "+read);
  33. int[] keys = new int[4];
  34. for(int key : keys){
  35. key = buffer.readInt();
  36. }
  37. int uid = buffer.readByte();
  38. String user = readRS2String(buffer);
  39. String pass = readRS2String(buffer);
  40. checkpoint(LoginStage.LOGIN);
  41. break;
  42. case LOGIN:
  43. boolean reconnecting = (buffer.readByte() == 18 ? true : false);
  44. buffer.readByte();
  45. buffer.readByte();
  46. buffer.readShort();
  47. buffer.readByte();
  48. buffer.skipBytes(36);
  49. ctx.getPipeline().replace("decoder", "decoder", new GameDecoder(client));
  50. channel.write(new MessageBuilder().writeByte(2).writeByte(0).writeByte(0).toMessage());
  51. break;
  52. }
  53. return null;
  54. }
  55.  
  56. public static String readRS2String(ChannelBuffer buffer) {
  57. StringBuilder sb = new StringBuilder();
  58. byte b;
  59. while (buffer.readable() && (b = buffer.readByte()) != 0) {
  60. sb.append((char) b);
  61. }
  62. return sb.toString();
  63. }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement