Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.mrkirby153.quarxelnetwork.core.player;
- import me.mrkirby153.quarxelnetwork.core.Core;
- import me.mrkirby153.quarxelnetwork.core.error.ErrorType;
- import me.mrkirby153.quarxelnetwork.core.rank.QuarxelRank;
- import me.mrkirby153.quarxelnetwork.core.virtualServer.VirtualServer;
- import org.bukkit.Bukkit;
- import org.bukkit.entity.Player;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.UUID;
- public class QuarxelPlayer {
- private String name;
- private UUID playerUuid;
- private int id = -1;
- /**
- * The server the player is currently on
- */
- private VirtualServer currentServer;
- private AccountData accountData;
- public QuarxelPlayer(Player player) {
- this.name = player.getName();
- this.playerUuid = player.getUniqueId();
- if (PlayerHandler.playerExists(this)) {
- load();
- } else {
- create();
- load();
- }
- accountData = new AccountData(this);
- accountData.load();
- }
- /**
- * Loads the player's data from the database
- */
- public void load() {
- PreparedStatement statement = Core.plugin().database.newStatement("SELECT * FROM `players` WHERE `uuid` = ?");
- try {
- statement.setString(1, this.playerUuid.toString());
- ResultSet rs = Core.plugin().database.query(statement);
- if(rs.next()) {
- this.id = rs.getInt("id");
- //TODO: Load last server id
- }
- } catch (SQLException e) {
- Core.plugin().reporter.report("Error occurred when loading a player from the database", e, ErrorType.SQL);
- getPlayer().kickPlayer("There was a problem loading your user data. Please contact an admin for help");
- }
- }
- /**
- * Saves the player's data to the database
- */
- public void save() {
- accountData.save();
- }
- /**
- * Handles the initial creation of the player
- */
- public void create() {
- PreparedStatement statement = Core.plugin().database.newStatement("INSERT INTO `players` (`uuid`, `lastUsername`, `online`, `lastServer`, `lastNicks`) VALUES (?, ?, ?, ?, ?)");
- try {
- statement.setString(1, this.playerUuid.toString());
- statement.setString(2, this.name);
- statement.setBoolean(3, true);
- statement.setInt(4, 0);
- statement.setString(5, this.name);
- statement.execute();
- } catch (SQLException e) {
- Core.plugin().reporter.report("Error occurred when creating a player", e, ErrorType.SQL);
- }
- }
- public Player getPlayer() {
- return Bukkit.getPlayer(this.playerUuid);
- }
- public int getId() {
- return id;
- }
- public AccountData getAccountData() {
- return accountData;
- }
- public void setAccountData(AccountData accountData) {
- this.accountData = accountData;
- }
- public String getDisplayName() {
- QuarxelRank currentRank = getAccountData().rank();
- return currentRank.getChatPrefix() + getPlayer().getName();
- }
- public VirtualServer getCurrentServer() {
- return currentServer;
- }
- public void setCurrentServer(VirtualServer currentServer) {
- this.currentServer = currentServer;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment