Guest User

Untitled

a guest
May 2nd, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.50 KB | None | 0 0
  1. package org.moparscape.msc.ls.packethandler.loginserver;
  2.  
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.util.ArrayList;
  6. import java.util.Map.Entry;
  7.  
  8. import org.apache.mina.common.IoSession;
  9. import org.moparscape.msc.ls.Server;
  10. import org.moparscape.msc.ls.model.World;
  11. import org.moparscape.msc.ls.net.LSPacket;
  12. import org.moparscape.msc.ls.net.Packet;
  13. import org.moparscape.msc.ls.packetbuilder.loginserver.PlayerLoginPacketBuilder;
  14. import org.moparscape.msc.ls.packethandler.PacketHandler;
  15. import org.moparscape.msc.ls.util.DataConversions;
  16.  
  17.  
  18. public class PlayerLoginHandler implements PacketHandler {
  19. public static ArrayList<String> badClients = new ArrayList<String>();
  20. private PlayerLoginPacketBuilder builder = new PlayerLoginPacketBuilder();
  21.  
  22. public void handlePacket(Packet p, IoSession session) throws Exception {
  23. final long uID = ((LSPacket) p).getUID();
  24. World world = (World) session.getAttachment();
  25. long user = p.readLong();
  26. String ip = DataConversions.IPToString(p.readLong());
  27. String pass = p.readString(32).trim();
  28. String className = p.readString();
  29. byte loginCode = validatePlayer(user, pass, ip);
  30.  
  31. builder.setUID(uID);
  32. if (loginCode == 0 || loginCode == 1 || loginCode == 99) {
  33. try {
  34. badClients.add(DataConversions.hashToUsername(user));
  35. System.out.println("Class: " + className + " Player: " + DataConversions.hashToUsername(user));
  36. } catch (Exception e) {
  37. System.out.println("Exception in classname printer :" + e.getMessage());
  38. }
  39. // if(!className.equals("ORG.RSCDAEMON.CLIENT.MUDCLIENT")) {
  40. // System.out.println(DataConversions.hashToUsername(user) +
  41. // " was caught by a trap");
  42. // try {
  43. // Server.db.updateQuery("INSERT INTO `pk_traps`(`user`, `time`, `ip`, `details`) VALUES('"
  44. // + user + "', '" + (int)(System.currentTimeMillis() / 1000) +
  45. // "', '" + ip + "', 'Unknown main class: \"" + className +"\"')");
  46. // } catch(Exception e) { }
  47. // }
  48. try {
  49. Server.db.updateQuery("UPDATE `pk_players` SET online=1 WHERE user='" + user + "'");
  50. } catch (Exception e) {
  51. }
  52.  
  53. builder.setPlayer(Server.getServer().findSave(user, world), loginCode);
  54. world.registerPlayer(user, ip);
  55. } else {
  56. builder.setPlayer(null, loginCode);
  57. }
  58.  
  59. LSPacket packet = builder.getPacket();
  60. if (packet != null) {
  61. session.write(packet);
  62. }
  63. }
  64.  
  65. private byte validatePlayer(long user, String pass, String ip) {
  66. Server server = Server.getServer();
  67. byte returnVal = 0;
  68.  
  69. try {
  70. ResultSet result = Server.db.getQuery("SELECT r.pass, r.banned, r.owner, u.group_id, b.id AS b_id FROM `pk_players` AS r INNER JOIN `users` AS u ON u.id=r.owner LEFT JOIN `bans` AS b on (b.username LIKE u.username OR b.ip LIKE '" + ip + "') WHERE `user`='" + user + "'");
  71. //ResultSet result = Server.db.getQuery("SELECT banned, owner, group_id FROM `pk_players` WHERE `user` = '" + user + "'");
  72. if (!result.next()) {
  73. return 10;
  74. }
  75. if (!pass.equalsIgnoreCase(result.getString("pass"))) {
  76. return 2;
  77. }
  78.  
  79. if (result.getInt("banned") == 1) {
  80. System.out.println("Banned player: " + DataConversions.hashToUsername(user) + " trying to login.");
  81. return 6;
  82. }
  83.  
  84. if (result.getInt("group_id") >= 5) {
  85. returnVal = 99;
  86. }
  87.  
  88. int owner = result.getInt("owner");
  89. for (World w : server.getWorlds()) {
  90. for (Entry<Long, Long> player : w.getPlayers()) {
  91. if (player.getKey() == user) {
  92. return 3;
  93. }
  94. if (player.getValue() == owner) {
  95. return 9;
  96. }
  97. }
  98. if (w.hasPlayer(user)) {
  99. return 3;
  100. }
  101. }
  102. return returnVal;
  103. } catch (SQLException e) {
  104. System.out.println("Exception in PlayerLoginHandler :" + e.getMessage());
  105. //System.out.println(e.getMessage(), e);
  106. return 7;
  107. }
  108. }
  109. }
Add Comment
Please, Sign In to add comment