Guest User

Untitled

a guest
Apr 7th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.44 KB | None | 0 0
  1. package org.dementhium.mysql.impl;
  2.  
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5.  
  6. import org.dementhium.RS2ServerBootstrap;
  7. import org.dementhium.content.misc.PunishHandler;
  8. import org.dementhium.model.World;
  9. import org.dementhium.model.definition.PlayerDefinition;
  10. import org.dementhium.model.player.Player;
  11. import org.dementhium.mysql.DatabaseManager;
  12. import org.dementhium.mysql.VBIntegration;
  13. import org.dementhium.net.GameSession;
  14. import org.dementhium.util.Constants;
  15. import org.dementhium.util.Misc;
  16.  
  17.  
  18. /**
  19. *
  20. * @author 'Mystic Flow <Steven@rune-server.org>
  21. */
  22. public class PlayerLoader {
  23.  
  24. public class PlayerLoadResult {
  25.  
  26. private final Player player;
  27. private final int returnCode;
  28.  
  29. private PlayerLoadResult(Player player, int returnCode) {
  30. this.returnCode = returnCode;
  31. this.player = player;
  32. }
  33.  
  34. public Player getPlayer() {
  35. return player;
  36. }
  37.  
  38. public int getReturnCode() {
  39. return returnCode;
  40. }
  41.  
  42. }
  43.  
  44. public static final String PLAYER_TABLE = "users";
  45.  
  46. private DatabaseManager database;
  47.  
  48. public PlayerLoader() {
  49. try {
  50. database = DatabaseManager.create("", "", "", "");
  51. database.establishConnection();
  52. } catch (SQLException e) {
  53. if (Misc.isWindows()) { //So it's only for Emperor.
  54. RS2ServerBootstrap.sqlDisabled = true;
  55. }
  56. e.printStackTrace();
  57. }
  58. }
  59.  
  60.  
  61. public PlayerLoadResult load(GameSession connection, PlayerDefinition def) {
  62. int code = 2;
  63. Player player = null;
  64. Player lobbyPlayer = World.getWorld()
  65. .getPlayerOutOfLobby(def.getName());
  66. if (World.getWorld().isOnList(def.getName()) && lobbyPlayer == null) {
  67. code = Constants.ALREADY_ONLINE;
  68. }
  69. if (!passwordMatch(def.getName(), def.getPassword())) {
  70. code = Constants.INVALID_PASSWORD;
  71. }
  72. if(lobbyPlayer != null) {
  73. if(code == 2) {
  74. lobbyPlayer.setConnection(connection);
  75. World.getWorld().getLobbyPlayers().remove(lobbyPlayer);
  76. }
  77. return new PlayerLoadResult(lobbyPlayer, code);
  78. }
  79. if (code == 2) {
  80. player = new Player(connection, def);
  81. }
  82. int count = 2;
  83. String ip = PunishHandler.formatIp(connection.getChannel().getRemoteAddress().toString());
  84. for (Player pl : World.getWorld().getPlayers()) {
  85. if (pl != null && pl.getLastConnectIp().equals(ip)) {
  86. if (--count == 0) {
  87. code = 9;
  88. }
  89. }
  90. }//im tracking through the program dude idk where it was so im looking
  91. }
  92. if (code == 2) {
  93. player = new Player(connection, def);
  94. if (player.getRights() != 2 && World.getWorld().getPunishHandler().isBanned(player)) {
  95. code = Constants.BANNED;
  96. }
  97. acquireRights(def);
  98. }
  99. if (RS2ServerBootstrap.getDBC().isBanned(def.getName())) {
  100. code = Constants.BANNED;
  101. }
  102. return new PlayerLoadResult(player, code);
  103. }
  104.  
  105. private void acquireRights(PlayerDefinition def) {
  106. if (def.getName().equalsIgnoreCase("Tyluur")) {
  107. def.setRights(2);
  108. }
  109. if(RS2ServerBootstrap.getDBC().isForumGroup(def.getName(), 7) ||
  110. RS2ServerBootstrap.getDBC().isForumGroup(def.getName(), 28)
  111. || RS2ServerBootstrap.getDBC().isForumGroup(def.getName(), 10)
  112. || RS2ServerBootstrap.getDBC().isForumGroup(def.getName(), 5)) {
  113. def.setRights(1);
  114. }
  115. if (RS2ServerBootstrap.getDBC().isForumGroup(def.getName(), 9) && def.getRights() != 2) {
  116. def.setDonor(1);
  117. }
  118. }
  119.  
  120. public boolean load(Player player) {
  121. ResultSet resultSet = null;
  122. try {
  123. resultSet = database.executeQuery("SELECT * FROM " + PLAYER_TABLE + " WHERE username='" + player.getUsername() + "' LIMIT 1");
  124. if (resultSet.next()) {
  125. player.loadSQL(resultSet);
  126. } else {
  127. System.err.println(""+Misc.formatPlayerNameForDisplay(player.getUsername())+" has created a new account!");
  128. database.executeUpdate("INSERT INTO `users` (`username`,`password`) VALUES ('" + player.getUsername() + "','" + player.getPassword() + "');");
  129. //player.saveSQL(PLAYER_TABLE, "INSERT INTO");
  130. }
  131. return true;
  132. } catch (Exception e) {
  133. e.printStackTrace();
  134. } finally {
  135. if (resultSet != null) {
  136. close(resultSet);
  137. }
  138. resultSet = null;
  139. }
  140. System.out.println("LOL?");
  141. return false;
  142. }
  143.  
  144. public boolean save(Player player) {
  145. if (RS2ServerBootstrap.sqlDisabled) {
  146. return true;
  147. }
  148. if (player.getAttribute("dontSave") == Boolean.TRUE) {
  149. return true;
  150. }
  151. StringBuilder sb = player.saveSQL(PLAYER_TABLE, "UPDATE");
  152. String completeQuery = sb.toString();
  153. try {
  154. database.executeUpdate(completeQuery);
  155. return true;
  156. } catch (Exception e) {
  157. e.printStackTrace();
  158. }
  159. return false;
  160. }
  161.  
  162.  
  163. public boolean passwordMatch(String name, String password) {
  164. /*if (RS2ServerBootstrap.sqlDisabled) {
  165. return true;
  166. }
  167. try {
  168. ResultSet result = database.executeQuery("SELECT password FROM " + PLAYER_TABLE+ " WHERE username='" + name +"'");
  169. if (result.next()) {
  170. String passwordResult = result.getString("password");
  171. String encryptedPassword = MD5Encryption.encrypt(password);
  172. if (encryptedPassword.equals(passwordResult)) {
  173. return true;
  174. }
  175. }
  176. } catch (SQLException e) {
  177. //ignore
  178. }
  179. return false;*/
  180. return VBIntegration.verify(name, password, 0);
  181. }
  182.  
  183. public void close(ResultSet resultSet) {
  184. try {
  185. resultSet.close();
  186. } catch (SQLException e) {
  187. e.printStackTrace();
  188. }
  189. }
  190.  
  191. }
Add Comment
Please, Sign In to add comment