Archived
dbConnector y UserData.
Se ha creado y serializado el archivo de datos de conexión a BD. Se ha terminado de serializar el archivo de datos de usuario. Se han creado métodos para operar con estos datos. Varias correcciones y comentarios por ahí.
This commit is contained in:
@@ -113,3 +113,8 @@ Thumbs.db
|
|||||||
/ios/xcode/native/
|
/ios/xcode/native/
|
||||||
/ios/IOSLauncher.app
|
/ios/IOSLauncher.app
|
||||||
/ios/IOSLauncher.app.dSYM
|
/ios/IOSLauncher.app.dSYM
|
||||||
|
|
||||||
|
|
||||||
|
## Datos de guardado del juego.
|
||||||
|
/saves/
|
||||||
|
/gameData/
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
[
|
[datosString
|
||||||
{
|
{
|
||||||
"class": "uberelectron.gameSystems.Machine",
|
"class": "uberelectron.gameSystems.Machine",
|
||||||
"machineID": "base_raspi_mk1",
|
"machineID": "base_raspi_mk1",
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ public class GameManager
|
|||||||
{
|
{
|
||||||
private static GameManager instance;
|
private static GameManager instance;
|
||||||
|
|
||||||
private final String localSavePath = "save/";
|
private final String localSavePath = "saves/";
|
||||||
private final String localRoomSavePath = "save/Rooms/";
|
private final String localRoomSavePath = "saves/Rooms/";
|
||||||
private final String internalDataPath = "data/";
|
private final String internalDataPath = "data/";
|
||||||
private final String internalRoomDataPath = "data/";
|
private final String internalRoomDataPath = "data/";
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ package uberelectron.gameSystems;
|
|||||||
/**
|
/**
|
||||||
* Contiene los datos de inicio de sesión del usuario.
|
* Contiene los datos de inicio de sesión del usuario.
|
||||||
* Esta clase se serializa automáticamente a JSON en LoginSystem.
|
* Esta clase se serializa automáticamente a JSON en LoginSystem.
|
||||||
* @author Daniel García
|
|
||||||
*
|
*
|
||||||
|
* @author Daniel García
|
||||||
* @see LoginSystem
|
* @see LoginSystem
|
||||||
*/
|
*/
|
||||||
public class LoginData
|
public class LoginData
|
||||||
|
|||||||
@@ -1,5 +1,17 @@
|
|||||||
package uberelectron.gameSystems;
|
package uberelectron.gameSystems;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Gdx;
|
||||||
|
import com.badlogic.gdx.files.FileHandle;
|
||||||
|
import com.badlogic.gdx.utils.Json;
|
||||||
|
import com.badlogic.gdx.utils.JsonWriter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clase que realiza el inicio de sesión y autenticación del usuario.
|
||||||
|
* Toma los datos desde el archivo JSON y los verifica con la DB.
|
||||||
|
* También crea nuevos usuarios y permite saber si el usuario está autentificado.
|
||||||
|
*
|
||||||
|
* @author Daniel García.
|
||||||
|
*/
|
||||||
public class LoginSystem
|
public class LoginSystem
|
||||||
{
|
{
|
||||||
private LoginSystem() {}
|
private LoginSystem() {}
|
||||||
@@ -27,26 +39,91 @@ public class LoginSystem
|
|||||||
return datosUsuario.nickname;
|
return datosUsuario.nickname;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void CrearNuevoUsuario()
|
/**
|
||||||
|
* Comprueba en la BD si ese nick ya está ocupado.
|
||||||
|
* @param username Nombre de usuario a comprobar.
|
||||||
|
* @return True si el nick está disponible, False si está ocupado.
|
||||||
|
*/
|
||||||
|
public static boolean ComprobarNickDisponible(String username)
|
||||||
|
{
|
||||||
|
//TODO: dbConector.comprobarNick.
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Crea un nuevo usuario, lo guarda en un JSON y lo añade a la BD.
|
||||||
|
* @param username Nombre de usuario.
|
||||||
|
* @param password Contraseña.
|
||||||
|
*/
|
||||||
|
public static void CrearNuevoUsuario(String username, String password)
|
||||||
{
|
{
|
||||||
//Creará un nuevo LoginData:
|
//Creará un nuevo LoginData:
|
||||||
// Lo guardará como JSON.
|
// Lo guardará como JSON.
|
||||||
// Añadirá el usuario a la DB -> AddUserToDB
|
// Añadirá el usuario a la DB -> AddUserToDB
|
||||||
|
|
||||||
|
//Comprobamos si el nick está disponible. Si no lo está, cancelamos.
|
||||||
|
if(!ComprobarNickDisponible(username))
|
||||||
|
{
|
||||||
|
Gdx.app.log("LoginSystem", "El nombre " + username + " no está disponible.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Creamos el usuario.
|
||||||
|
//FIXME: No es demasiado bonito...
|
||||||
|
datosUsuario = new LoginData();
|
||||||
|
datosUsuario.nickname = username;
|
||||||
|
datosUsuario.password = password;
|
||||||
|
|
||||||
|
//Lo guardamos al JSON.
|
||||||
|
SaveToJSON();
|
||||||
|
|
||||||
|
//Lo añadimos a la DB.
|
||||||
|
AddUserToDB();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void LoadFromJSON()
|
/**
|
||||||
|
* Carga los datos de usuario desde un JSON de la ubicación por defecto.
|
||||||
|
*/
|
||||||
|
private static void LoadFromJSON()
|
||||||
{
|
{
|
||||||
//Carga el JSON desde la ubicación por defecto.
|
//Comprobamos si el archivo existe.
|
||||||
|
FileHandle file = Gdx.files.local(localDefaultSavePath + defaultFileName);
|
||||||
|
if(!file.exists())
|
||||||
|
{
|
||||||
|
Gdx.app.error("LoginSystem", "No se puede cargar el archivo de datos de usuario. " +
|
||||||
|
"El Archivo no existe");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Cargamos desde archivo.
|
||||||
|
Json json = new Json();
|
||||||
|
datosUsuario = json.fromJson(LoginData.class, file);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SaveToJSON()
|
/**
|
||||||
|
* Guarda los datos de usuario a un JSON en la ubicación por defecto.
|
||||||
|
*/
|
||||||
|
private static void SaveToJSON()
|
||||||
{
|
{
|
||||||
//Guarda el JSON en la ubicación por defecto.
|
//Creamos el JSON y lo generamos.
|
||||||
|
Json json = new Json(JsonWriter.OutputType.json);
|
||||||
|
String datos = json.toJson(datosUsuario);
|
||||||
|
|
||||||
|
//Abrimos el archivo y lo escribimos.
|
||||||
|
FileHandle file = Gdx.files.local(localDefaultSavePath + defaultFileName);
|
||||||
|
file.writeString(json.prettyPrint(datos), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddUserToDB()
|
/**
|
||||||
|
* Añade un usuario a la BD a partir de los datos de usuario.
|
||||||
|
*
|
||||||
|
* @see dbConnector
|
||||||
|
*/
|
||||||
|
private static void AddUserToDB()
|
||||||
{
|
{
|
||||||
//Inserta directamente a la DB.
|
//Inserta directamente a la DB.
|
||||||
|
//TODO: dbConector.adduser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -12,8 +12,6 @@ import java.util.Map;
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
ToDo:
|
ToDo:
|
||||||
- Cuestiones de "Privacidad" de variables.
|
|
||||||
- Revisar que los Ptrs son Ptrs.
|
|
||||||
- Comprobar que los archivos (los paths) existen.
|
- Comprobar que los archivos (los paths) existen.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -46,7 +44,7 @@ public class RoomLoader
|
|||||||
mcLoader = MachineLoader.getInstance();
|
mcLoader = MachineLoader.getInstance();
|
||||||
|
|
||||||
loaderJson = new Json();
|
loaderJson = new Json();
|
||||||
|
loaderJson.setOutputType(JsonWriter.OutputType.json);
|
||||||
loaderJson.setSerializer(Room.class, roomSerializer);
|
loaderJson.setSerializer(Room.class, roomSerializer);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -90,6 +88,7 @@ public class RoomLoader
|
|||||||
String data = loaderJson.toJson(rSave);
|
String data = loaderJson.toJson(rSave);
|
||||||
//FileHandle file = Gdx.files.local(path);
|
//FileHandle file = Gdx.files.local(path);
|
||||||
file.writeString(loaderJson.prettyPrint(data), false);
|
file.writeString(loaderJson.prettyPrint(data), false);
|
||||||
|
|
||||||
Gdx.app.log("RoomLoader", "Se ha guardado la room " + roomID + " en " + file);
|
Gdx.app.log("RoomLoader", "Se ha guardado la room " + roomID + " en " + file);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -155,13 +154,18 @@ public class RoomLoader
|
|||||||
return currentRoom;
|
return currentRoom;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Devuelve la Room con el RoomID indicado.
|
||||||
|
* @param roomID ID de la Room que se quiere.
|
||||||
|
* @return La room solicitada.
|
||||||
|
*/
|
||||||
public Room GetRoomByID(String roomID)
|
public Room GetRoomByID(String roomID)
|
||||||
{
|
{
|
||||||
return loadedRooms.get(roomID);
|
return loadedRooms.get(roomID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//DEBUG: Para hacer pruebas desde BackEndTest.java.
|
//FIXME DEBUG: Para hacer pruebas desde BackEndTest.java.
|
||||||
public void AddRoom(Room rToAdd)
|
public void AddRoom(Room rToAdd)
|
||||||
{
|
{
|
||||||
loadedRooms.put(rToAdd.roomName, rToAdd);
|
loadedRooms.put(rToAdd.roomName, rToAdd);
|
||||||
|
|||||||
@@ -5,6 +5,13 @@ import com.badlogic.gdx.files.FileHandle;
|
|||||||
import com.badlogic.gdx.utils.Json;
|
import com.badlogic.gdx.utils.Json;
|
||||||
import com.badlogic.gdx.utils.JsonWriter;
|
import com.badlogic.gdx.utils.JsonWriter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clase estática para la carga/guardado de datos de partida.
|
||||||
|
* Estos datos incluyen el dinero y las salas compradas, entre otros.
|
||||||
|
* Puede cargar/guardar desde JSON y desde DB.
|
||||||
|
*
|
||||||
|
* @author Daniel García.
|
||||||
|
*/
|
||||||
public class SaveLoader
|
public class SaveLoader
|
||||||
{
|
{
|
||||||
private SaveLoader() {}
|
private SaveLoader() {}
|
||||||
|
|||||||
@@ -1,29 +1,53 @@
|
|||||||
package uberelectron.gameSystems;
|
package uberelectron.gameSystems;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Gdx;
|
||||||
|
import com.badlogic.gdx.files.FileHandle;
|
||||||
|
import com.badlogic.gdx.utils.Json;
|
||||||
|
import com.badlogic.gdx.utils.JsonWriter;
|
||||||
import com.mysql.jdbc.Driver;
|
import com.mysql.jdbc.Driver;
|
||||||
import java.sql.DriverManager;
|
import java.sql.DriverManager;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.Statement;
|
import java.sql.Statement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clase estática que realiza todas las interacciones con la BD.
|
||||||
|
* Carga los datos de conexión desde un archivo JSON.
|
||||||
|
*
|
||||||
|
* @author Daniel García.
|
||||||
|
*/
|
||||||
public class dbConnector
|
public class dbConnector
|
||||||
{
|
{
|
||||||
private static Connection connect;
|
private static Connection connect = null;
|
||||||
private static dbData datosConexion;
|
private static dbData datosConexion = null;
|
||||||
|
|
||||||
private static final String localDefaultSavePath = "gameData/";
|
private static final String localDefaultSavePath = "gameData/";
|
||||||
private static final String defaultFileName = "dbData.json";
|
private static final String defaultFileName = "dbData.json";
|
||||||
|
|
||||||
private static final String mensajeErrorGenerico = "No se ha podido interactuar con la BD.";
|
private static final String mensajeErrorGenerico = "No se ha podido interactuar con la BD.";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inicializa la conexión con la BD.
|
||||||
|
* Utiliza los datos de conexión del fichero JSON.
|
||||||
|
*/
|
||||||
public static void InitDbConnection()
|
public static void InitDbConnection()
|
||||||
{
|
{
|
||||||
|
//Cargamos los datos de Acceso desde el JSON.
|
||||||
|
LoadConnectionDataFromJSON();
|
||||||
|
|
||||||
|
//Comprobamos que están cargados los datos de acceso.
|
||||||
|
if(datosConexion == null)
|
||||||
|
{
|
||||||
|
Gdx.app.error("dbConnector", "No se ha podido establecer conexión con la DB. " +
|
||||||
|
"No hay datos de conexión.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Realizamos la conexión.
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Class.forName("com.mysql.cj.jdbc.Driver");
|
Class.forName("com.mysql.cj.jdbc.Driver");
|
||||||
|
|
||||||
//Todo: Cargar datos de acceso desde dbData.
|
|
||||||
String url = "jdbc:mysql://" + datosConexion.hostname
|
String url = "jdbc:mysql://" + datosConexion.hostname
|
||||||
+ ":" + datosConexion.port
|
+ ":" + datosConexion.port
|
||||||
+ "/" + datosConexion.dbName;
|
+ "/" + datosConexion.dbName;
|
||||||
@@ -40,7 +64,7 @@ public class dbConnector
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
System.err.println("No ha sido posible comunicarse con la BD.");
|
Gdx.app.error("dbConnector", "No ha sido posible comunicarse con la BD.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,13 +72,55 @@ public class dbConnector
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
System.err.println("No se ha podido cargar el Driver de MySQL.");
|
Gdx.app.error("dbConnector", "No se ha podido cargar el Driver de MySQL.");
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Carga los datos desde el archivo JSON.
|
||||||
|
* Utiliza la ubicación por defecto definida en las variables de clase.
|
||||||
|
*/
|
||||||
private static void LoadConnectionDataFromJSON()
|
private static void LoadConnectionDataFromJSON()
|
||||||
|
{
|
||||||
|
//Obtenemos el archivo.
|
||||||
|
FileHandle file = Gdx.files.local(localDefaultSavePath + defaultFileName);
|
||||||
|
if(!file.exists())
|
||||||
|
{
|
||||||
|
Gdx.app.error("dbConnector", "El archivo de datos de conexión no está disponible.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Cargamos los datos desde el JSON.
|
||||||
|
Json json = new Json();
|
||||||
|
datosConexion = json.fromJson(dbData.class, file);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
FIXME: DEBUG
|
||||||
|
Genera un archivo JSON con los datos indicados.
|
||||||
|
*/
|
||||||
|
public static void SaveConnectionDataToJSON()
|
||||||
|
{
|
||||||
|
dbData data = new dbData();
|
||||||
|
data.hostname = "192.168.5.1";
|
||||||
|
data.port = "3306";
|
||||||
|
data.user = "root";
|
||||||
|
data.password = "password";
|
||||||
|
data.dbName = "pepeDB";
|
||||||
|
|
||||||
|
Json json = new Json(JsonWriter.OutputType.json);
|
||||||
|
String datosString = json.toJson(data);
|
||||||
|
FileHandle file = Gdx.files.local(localDefaultSavePath + defaultFileName);
|
||||||
|
file.writeString(json.prettyPrint(datosString), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//TODO: ¿Qué necesito? Creo que el ID de partida...
|
||||||
|
// ¿Dónde lo guardo?
|
||||||
|
public static void SaveRoomToDB()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ package uberelectron.gameSystems;
|
|||||||
/**
|
/**
|
||||||
* Contiene los datos necesarios para la conexión con la BD.
|
* Contiene los datos necesarios para la conexión con la BD.
|
||||||
* Esta clase se serializa automáticamente a JSON en DBConnector.
|
* Esta clase se serializa automáticamente a JSON en DBConnector.
|
||||||
|
*
|
||||||
|
* @author Daniel García.
|
||||||
*/
|
*/
|
||||||
public class dbData
|
public class dbData
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4,10 +4,7 @@ import com.badlogic.gdx.Gdx;
|
|||||||
import com.badlogic.gdx.Screen;
|
import com.badlogic.gdx.Screen;
|
||||||
import com.badlogic.gdx.files.FileHandle;
|
import com.badlogic.gdx.files.FileHandle;
|
||||||
import com.badlogic.gdx.utils.Json;
|
import com.badlogic.gdx.utils.Json;
|
||||||
import uberelectron.gameSystems.Machine;
|
import uberelectron.gameSystems.*;
|
||||||
import uberelectron.gameSystems.MachineLoader;
|
|
||||||
import uberelectron.gameSystems.Room;
|
|
||||||
import uberelectron.gameSystems.RoomLoader;
|
|
||||||
|
|
||||||
import java.io.Reader;
|
import java.io.Reader;
|
||||||
import java.util.logging.FileHandler;
|
import java.util.logging.FileHandler;
|
||||||
@@ -85,6 +82,14 @@ public class BackEndTest implements Screen
|
|||||||
// Gdx.app.log("Test", "Mensaje del LOG");
|
// Gdx.app.log("Test", "Mensaje del LOG");
|
||||||
// Gdx.app.error("Test", "Mensaje de ERROR");
|
// Gdx.app.error("Test", "Mensaje de ERROR");
|
||||||
// Gdx.app.debug("Test", "Mensaje de Debug");
|
// Gdx.app.debug("Test", "Mensaje de Debug");
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
Pruebas con DB
|
||||||
|
*/
|
||||||
|
dbConnector.SaveConnectionDataToJSON();
|
||||||
|
|
||||||
|
|
||||||
Gdx.app.log("BackEndTest", "Prueba completada.");
|
Gdx.app.log("BackEndTest", "Prueba completada.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user