mrkirby153

Untitled

Jul 2nd, 2015
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.39 KB | None | 0 0
  1. package me.mrkirby153.quarxelnetwork.core.player;
  2.  
  3. import me.mrkirby153.quarxelnetwork.core.Core;
  4. import me.mrkirby153.quarxelnetwork.core.error.ErrorType;
  5. import me.mrkirby153.quarxelnetwork.core.rank.QuarxelRank;
  6. import me.mrkirby153.quarxelnetwork.core.virtualServer.VirtualServer;
  7. import org.bukkit.Bukkit;
  8. import org.bukkit.entity.Player;
  9.  
  10. import java.sql.PreparedStatement;
  11. import java.sql.ResultSet;
  12. import java.sql.SQLException;
  13. import java.util.UUID;
  14.  
  15. public class QuarxelPlayer {
  16.  
  17.     private String name;
  18.     private UUID playerUuid;
  19.     private int id = -1;
  20.     /**
  21.      * The server the player is currently on
  22.      */
  23.     private VirtualServer currentServer;
  24.  
  25.     private AccountData accountData;
  26.  
  27.     public QuarxelPlayer(Player player) {
  28.         this.name = player.getName();
  29.         this.playerUuid = player.getUniqueId();
  30.         if (PlayerHandler.playerExists(this)) {
  31.             load();
  32.         } else {
  33.             create();
  34.             load();
  35.         }
  36.         accountData = new AccountData(this);
  37.         accountData.load();
  38.     }
  39.  
  40.  
  41.     /**
  42.      * Loads the player's data from the database
  43.      */
  44.     public void load() {
  45.         PreparedStatement statement = Core.plugin().database.newStatement("SELECT * FROM `players` WHERE `uuid` = ?");
  46.         try {
  47.             statement.setString(1, this.playerUuid.toString());
  48.             ResultSet rs = Core.plugin().database.query(statement);
  49.             if(rs.next()) {
  50.                 this.id = rs.getInt("id");
  51.                 //TODO: Load last server id
  52.             }
  53.         } catch (SQLException e) {
  54.             Core.plugin().reporter.report("Error occurred when loading a player from the database", e, ErrorType.SQL);
  55.             getPlayer().kickPlayer("There was a problem loading your user data. Please contact an admin for help");
  56.         }
  57.     }
  58.  
  59.     /**
  60.      * Saves the player's data to the database
  61.      */
  62.     public void save() {
  63.         accountData.save();
  64.     }
  65.  
  66.     /**
  67.      * Handles the initial creation of the player
  68.      */
  69.     public void create() {
  70.         PreparedStatement statement = Core.plugin().database.newStatement("INSERT INTO `players` (`uuid`, `lastUsername`, `online`, `lastServer`, `lastNicks`) VALUES (?, ?, ?, ?, ?)");
  71.         try {
  72.             statement.setString(1, this.playerUuid.toString());
  73.             statement.setString(2, this.name);
  74.             statement.setBoolean(3, true);
  75.             statement.setInt(4, 0);
  76.             statement.setString(5, this.name);
  77.             statement.execute();
  78.         } catch (SQLException e) {
  79.             Core.plugin().reporter.report("Error occurred when creating a player", e, ErrorType.SQL);
  80.         }
  81.     }
  82.  
  83.     public Player getPlayer() {
  84.         return Bukkit.getPlayer(this.playerUuid);
  85.     }
  86.  
  87.     public int getId() {
  88.         return id;
  89.     }
  90.  
  91.     public AccountData getAccountData() {
  92.         return accountData;
  93.     }
  94.  
  95.     public void setAccountData(AccountData accountData) {
  96.         this.accountData = accountData;
  97.     }
  98.  
  99.     public String getDisplayName() {
  100.         QuarxelRank currentRank = getAccountData().rank();
  101.         return currentRank.getChatPrefix() + getPlayer().getName();
  102.     }
  103.  
  104.     public VirtualServer getCurrentServer() {
  105.         return currentServer;
  106.     }
  107.  
  108.     public void setCurrentServer(VirtualServer currentServer) {
  109.         this.currentServer = currentServer;
  110.     }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment