Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.dementhium.mysql.impl;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import org.dementhium.RS2ServerBootstrap;
- import org.dementhium.content.misc.PunishHandler;
- import org.dementhium.model.World;
- import org.dementhium.model.definition.PlayerDefinition;
- import org.dementhium.model.player.Player;
- import org.dementhium.mysql.DatabaseManager;
- import org.dementhium.mysql.VBIntegration;
- import org.dementhium.net.GameSession;
- import org.dementhium.util.Constants;
- import org.dementhium.util.Misc;
- /**
- *
- * @author 'Mystic Flow <Steven@rune-server.org>
- */
- public class PlayerLoader {
- public class PlayerLoadResult {
- private final Player player;
- private final int returnCode;
- private PlayerLoadResult(Player player, int returnCode) {
- this.returnCode = returnCode;
- this.player = player;
- }
- public Player getPlayer() {
- return player;
- }
- public int getReturnCode() {
- return returnCode;
- }
- }
- public static final String PLAYER_TABLE = "users";
- private DatabaseManager database;
- public PlayerLoader() {
- try {
- database = DatabaseManager.create("", "", "", "");
- database.establishConnection();
- } catch (SQLException e) {
- if (Misc.isWindows()) { //So it's only for Emperor.
- RS2ServerBootstrap.sqlDisabled = true;
- }
- e.printStackTrace();
- }
- }
- public PlayerLoadResult load(GameSession connection, PlayerDefinition def) {
- int code = 2;
- Player player = null;
- Player lobbyPlayer = World.getWorld()
- .getPlayerOutOfLobby(def.getName());
- if (World.getWorld().isOnList(def.getName()) && lobbyPlayer == null) {
- code = Constants.ALREADY_ONLINE;
- }
- if (!passwordMatch(def.getName(), def.getPassword())) {
- code = Constants.INVALID_PASSWORD;
- }
- if(lobbyPlayer != null) {
- if(code == 2) {
- lobbyPlayer.setConnection(connection);
- World.getWorld().getLobbyPlayers().remove(lobbyPlayer);
- }
- return new PlayerLoadResult(lobbyPlayer, code);
- }
- if (code == 2) {
- player = new Player(connection, def);
- }
- int count = 2;
- String ip = PunishHandler.formatIp(connection.getChannel().getRemoteAddress().toString());
- for (Player pl : World.getWorld().getPlayers()) {
- if (pl != null && pl.getLastConnectIp().equals(ip)) {
- if (--count == 0) {
- code = 9;
- }
- }
- }//im tracking through the program dude idk where it was so im looking
- }
- if (code == 2) {
- player = new Player(connection, def);
- if (player.getRights() != 2 && World.getWorld().getPunishHandler().isBanned(player)) {
- code = Constants.BANNED;
- }
- acquireRights(def);
- }
- if (RS2ServerBootstrap.getDBC().isBanned(def.getName())) {
- code = Constants.BANNED;
- }
- return new PlayerLoadResult(player, code);
- }
- private void acquireRights(PlayerDefinition def) {
- if (def.getName().equalsIgnoreCase("Tyluur")) {
- def.setRights(2);
- }
- if(RS2ServerBootstrap.getDBC().isForumGroup(def.getName(), 7) ||
- RS2ServerBootstrap.getDBC().isForumGroup(def.getName(), 28)
- || RS2ServerBootstrap.getDBC().isForumGroup(def.getName(), 10)
- || RS2ServerBootstrap.getDBC().isForumGroup(def.getName(), 5)) {
- def.setRights(1);
- }
- if (RS2ServerBootstrap.getDBC().isForumGroup(def.getName(), 9) && def.getRights() != 2) {
- def.setDonor(1);
- }
- }
- public boolean load(Player player) {
- ResultSet resultSet = null;
- try {
- resultSet = database.executeQuery("SELECT * FROM " + PLAYER_TABLE + " WHERE username='" + player.getUsername() + "' LIMIT 1");
- if (resultSet.next()) {
- player.loadSQL(resultSet);
- } else {
- System.err.println(""+Misc.formatPlayerNameForDisplay(player.getUsername())+" has created a new account!");
- database.executeUpdate("INSERT INTO `users` (`username`,`password`) VALUES ('" + player.getUsername() + "','" + player.getPassword() + "');");
- //player.saveSQL(PLAYER_TABLE, "INSERT INTO");
- }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- if (resultSet != null) {
- close(resultSet);
- }
- resultSet = null;
- }
- System.out.println("LOL?");
- return false;
- }
- public boolean save(Player player) {
- if (RS2ServerBootstrap.sqlDisabled) {
- return true;
- }
- if (player.getAttribute("dontSave") == Boolean.TRUE) {
- return true;
- }
- StringBuilder sb = player.saveSQL(PLAYER_TABLE, "UPDATE");
- String completeQuery = sb.toString();
- try {
- database.executeUpdate(completeQuery);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- }
- return false;
- }
- public boolean passwordMatch(String name, String password) {
- /*if (RS2ServerBootstrap.sqlDisabled) {
- return true;
- }
- try {
- ResultSet result = database.executeQuery("SELECT password FROM " + PLAYER_TABLE+ " WHERE username='" + name +"'");
- if (result.next()) {
- String passwordResult = result.getString("password");
- String encryptedPassword = MD5Encryption.encrypt(password);
- if (encryptedPassword.equals(passwordResult)) {
- return true;
- }
- }
- } catch (SQLException e) {
- //ignore
- }
- return false;*/
- return VBIntegration.verify(name, password, 0);
- }
- public void close(ResultSet resultSet) {
- try {
- resultSet.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
Add Comment
Please, Sign In to add comment