diff --git a/src/main/ProjectSWG.java b/src/main/ProjectSWG.java index 9bae2ed9..36bef43c 100644 --- a/src/main/ProjectSWG.java +++ b/src/main/ProjectSWG.java @@ -69,6 +69,16 @@ public class ProjectSWG { return (long) server.manager.getCoreTime(); } + /** + * Returns the server's galaxy ID. This may be + * deprecated in the future if multiple servers are run + * at once. + * @return the server's galaxy ID + */ + public static final int getGalaxyId() { + return CoreManager.getGalaxyId(); + } + private ProjectSWG() { mainThread = Thread.currentThread(); shutdownRequested = false; diff --git a/src/services/CoreManager.java b/src/services/CoreManager.java index 7d7b3964..ad04e1fd 100644 --- a/src/services/CoreManager.java +++ b/src/services/CoreManager.java @@ -267,4 +267,8 @@ public class CoreManager extends Manager { return null; } + public static final int getGalaxyId() { + return galaxyId; + } + } diff --git a/src/services/player/LoginService.java b/src/services/player/LoginService.java index 157183b3..7a384365 100644 --- a/src/services/player/LoginService.java +++ b/src/services/player/LoginService.java @@ -94,8 +94,8 @@ public class LoginService extends Service { getUser = local.prepareStatement("SELECT * FROM users WHERE username = ?"); getUserInsensitive = local.prepareStatement("SELECT * FROM users WHERE username ilike ?"); getGalaxies = local.prepareStatement("SELECT * FROM galaxies"); - getCharacters = local.prepareStatement("SELECT * FROM characters WHERE userid = ?"); - deleteCharacter = local.prepareStatement("DELETE FROM CHARACTERS WHERE id = ?"); + getCharacters = local.prepareStatement("SELECT * FROM characters WHERE userid = ? AND galaxyid = ?"); + deleteCharacter = local.prepareStatement("DELETE FROM characters WHERE id = ?"); autoLogin = (getConfig(ConfigFile.NETWORK).getInt("AUTO-LOGIN", 0) == 1 ? true : false); return super.initialize(); } @@ -335,6 +335,7 @@ public class LoginService extends Service { private SWGCharacter [] getCharacters(int userId) throws SQLException { getCharacters.setInt(1, userId); + getCharacters.setInt(2, ProjectSWG.getGalaxyId()); ResultSet set = getCharacters.executeQuery(); List characters = new ArrayList(); try {