Advertisement
Guest User

Untitled

a guest
Jun 30th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. package rsca.gs.phandler.client;
  2.  
  3. import java.net.InetSocketAddress;
  4.  
  5. import org.apache.mina.common.IoSession;
  6.  
  7. import rsca.config.Config;
  8. import rsca.gs.Instance;
  9. import rsca.gs.builders.RSCPacketBuilder;
  10. import rsca.gs.connection.Packet;
  11. import rsca.gs.model.Player;
  12. import rsca.gs.model.World;
  13. import rsca.gs.phandler.PacketHandler;
  14. import rsca.gs.util.Logger;
  15. import rsca.gs.util.RSA;
  16.  
  17. public class PlayerLogin implements PacketHandler {
  18.  
  19. /**
  20. * World instance
  21. */
  22. public static final World world = Instance.getWorld();
  23.  
  24. public void handlePacket(Packet p1, IoSession session) throws Exception {
  25.  
  26. Player player = (Player) session.getAttachment();
  27. final String ip = ((InetSocketAddress) session.getRemoteAddress()).getAddress().toString().replaceAll("/", "");
  28.  
  29. byte loginCode;
  30. try {
  31.  
  32. byte[] data = RSA.decrypt(p1.getData());
  33. Packet p = new Packet(session, data);
  34.  
  35. boolean reconnecting = (p.readByte() == 1);
  36.  
  37. int clientVersion = p.readInt();
  38.  
  39.  
  40. if(Config.SERVER_VERSION != clientVersion) {
  41. Logger.println("ip: " + ip + " | clientversion: " + clientVersion + " : " + Config.SERVER_VERSION);
  42. }
  43.  
  44. int[] sessionKeys = new int[4];
  45. for (int key = 0; key < sessionKeys.length; key++) {
  46. sessionKeys[key] = p.readInt();
  47. }
  48. String username = "";
  49. String password = "";
  50.  
  51. username = p.readString(20).trim();
  52. password = p.readString(20).trim();
  53.  
  54. if (world.countPlayers() >= Config.MAX_PLAYERS) {
  55. loginCode = 10;
  56. }
  57. else if (clientVersion < Config.SERVER_VERSION) {
  58. loginCode = 4;
  59. }
  60. else if (!player.setSessionKeys(sessionKeys)) {
  61. loginCode = 5;
  62. }
  63. else {
  64. player.load(username, password, 0, reconnecting);
  65. if (clientVersion < 39) {
  66. player.clientWarn(true);
  67. }
  68. return;
  69. }
  70. } catch (Exception e) {
  71. System.err.println("Login exception with: " + ip);
  72. e.printStackTrace();
  73. loginCode = 4;
  74. }
  75.  
  76. RSCPacketBuilder pb = new RSCPacketBuilder();
  77. pb.setBare(true);
  78. pb.addByte((byte) loginCode);
  79. session.write(pb.toPacket());
  80. player.destroy(true);
  81. }
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement