fix testing
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good

This commit is contained in:
austin 2025-05-11 14:12:10 -04:00
parent fa4fd1e106
commit 3df3beafba
6 changed files with 45 additions and 7 deletions

View File

@ -1723,6 +1723,10 @@ Player characters not simulated at macro level
Macro simulation inventory utilities
Build structure goal properly working from macro sim
Repairability check when repairing structure
Fix viewport loading
Database warning handling
In memory database support
Fix test utils creating characters

Binary file not shown.

Binary file not shown.

View File

@ -15,6 +15,7 @@ import electrosphere.net.parser.net.message.TerrainMessage;
import electrosphere.net.server.player.Player;
import electrosphere.renderer.ui.elements.Window;
import electrosphere.server.db.DatabaseController;
import electrosphere.server.db.DatabaseUtils;
/**
* Loads the viewport
@ -41,7 +42,7 @@ public class ViewportLoading {
//
//connect client to server
LoggerInterface.loggerEngine.INFO("run server: " + Globals.RUN_SERVER + " run client: " + Globals.RUN_CLIENT);
Globals.dbController = new DatabaseController();
ViewportLoading.initInMemoryDB();
LoadingUtils.initAuthenticationManager(true);
Globals.clientUsername = "leveleditor";
Globals.clientPassword = AuthenticationManager.getHashedString("leveleditor");
@ -79,4 +80,13 @@ public class ViewportLoading {
ClientLoading.loadViewport(params);
}
/**
* Initializes an in-memory db
*/
private static void initInMemoryDB(){
Globals.dbController = new DatabaseController();
Globals.dbController.connect(DatabaseController.IN_MEMORY_PATH);
DatabaseUtils.runScript(Globals.dbController,"createTables.sql");
}
}

View File

@ -6,6 +6,7 @@ import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.SQLWarning;
import java.util.Properties;
/**
@ -18,6 +19,11 @@ public class DatabaseController {
*/
public static final String FILE_EXT = ".sqlite";
/**
* The in-memory path for database connections
*/
public static final String IN_MEMORY_PATH = ":memory:";
/**
* The database connection
*/
@ -39,8 +45,11 @@ public class DatabaseController {
try {
conn = DriverManager.getConnection(fullAddress, connectionProps);
} catch (SQLException ex) {
LoggerInterface.loggerFileIO.ERROR("Failure to connect to db", ex);
ex.printStackTrace();
String message = "" +
"Failure to connect to db\n" +
ex.getMessage() +
"";
throw new Error(message);
}
}
@ -51,6 +60,9 @@ public class DatabaseController {
* @return true if there is a result set, false if there is an update count or no result
*/
public boolean executePreparedStatement(String statementRaw, Object...arguments){
if(conn == null){
throw new Error("Connection not initialized!");
}
try {
PreparedStatement statement = conn.prepareStatement(statementRaw);
//Set arguments for prepared statements
@ -73,6 +85,10 @@ public class DatabaseController {
}
//actually execute
boolean result = statement.execute();
SQLWarning warning = statement.getWarnings();
if(warning != null){
LoggerInterface.loggerDB.WARNING(warning.toString());
}
statement.close();
return result;
} catch (SQLException ex) {
@ -90,8 +106,7 @@ public class DatabaseController {
public DatabaseResult executePreparedQuery(String statementRaw, Object...arguments){
DatabaseResult rVal = DatabaseResult.createQuery(statementRaw);
if(conn == null){
rVal.succeeded = false;
return rVal;
throw new Error("Connection not initialized!");
}
try {
PreparedStatement statement = conn.prepareStatement(statementRaw);
@ -116,6 +131,14 @@ public class DatabaseController {
}
//actually execute
ResultSet results = statement.executeQuery();
SQLWarning warning = results.getWarnings();
if(warning != null){
LoggerInterface.loggerDB.WARNING(warning.toString());
}
warning = statement.getWarnings();
if(warning != null){
LoggerInterface.loggerDB.WARNING(warning.toString());
}
if(results != null){
rVal.addResultSet(results);
}

View File

@ -14,9 +14,9 @@ import electrosphere.engine.loadingthreads.LoadingThread;
import electrosphere.entity.Entity;
import electrosphere.entity.types.creature.CreatureTemplate;
import electrosphere.net.server.ServerConnectionHandler;
import electrosphere.net.server.protocol.CharacterProtocol;
import electrosphere.server.datacell.utils.EntityLookupUtils;
import electrosphere.server.macro.character.PlayerCharacterCreation;
import electrosphere.server.macro.character.Character;
/**
* Utils for testing the engine
@ -164,7 +164,8 @@ public class TestEngineUtils {
CreatureTemplate creatureTemplate = CreatureTemplate.createDefault("human");
ServerConnectionHandler serverConnection = Globals.server.getFirstConnection();
serverConnection.setCreatureTemplate(creatureTemplate);
serverConnection.setCharacterId(CharacterProtocol.SPAWN_EXISTING_TEMPLATE);
Character chara = Globals.characterService.createCharacter(creatureTemplate, serverConnection.getPlayerId());
serverConnection.setCharacterId(chara.getId());
PlayerCharacterCreation.spawnPlayerCharacter(serverConnection);
}