diff --git a/src/resources/objects/cell/CellObject.java b/src/resources/objects/cell/CellObject.java index 07665658..a01a4554 100644 --- a/src/resources/objects/cell/CellObject.java +++ b/src/resources/objects/cell/CellObject.java @@ -94,8 +94,12 @@ public class CellObject extends SWGObject implements Serializable { System.out.println("NULL session [permission]"); return; } + if (destination.getParent() == null) { + System.out.println("NULL parent [sendPermissionMessage]"); + return; + } - byte canEnter = (byte) (((BuildingObject) getContainer()).canEnter(destination.parent) ? 1 : 0); + byte canEnter = (byte) (((BuildingObject) getContainer()).canEnter(destination.getParent()) ? 1 : 0); destination.getSession().write(new UpdateCellPermissionMessage(canEnter, getObjectID()).serialize()); } diff --git a/src/services/CharacterService.java b/src/services/CharacterService.java index 78be6653..c75a9ad7 100644 --- a/src/services/CharacterService.java +++ b/src/services/CharacterService.java @@ -465,9 +465,12 @@ public class CharacterService implements INetworkDispatch { } + @Deprecated private String checkForReservedName(String firstName, String lastName) throws SQLException { - + /* + * This table has been removed. + * PreparedStatement psc = databaseConnection.preparedStatement("SELECT COUNT(*) FROM pg_tables WHERE \"tablename\"=?"); psc.setString(1, "reservednames"); ResultSet rsc = psc.executeQuery(); @@ -508,7 +511,7 @@ public class CharacterService implements INetworkDispatch { return resultSet.getString("type"); - } + }*/ return null; } diff --git a/src/services/LoginService.java b/src/services/LoginService.java index e98ae6b0..22a89812 100644 --- a/src/services/LoginService.java +++ b/src/services/LoginService.java @@ -318,6 +318,11 @@ public class LoginService implements INetworkDispatch{ while (resultSet.next() && !resultSet.isClosed()) { + if (core.objectService.getObject(resultSet.getLong("id")) == null) { + resultSet.deleteRow(); + continue; + } + //TODO: on creation just don't allow spaces in first or last name maybe? String characterName = resultSet.getString("firstName").replaceAll("\\s",""); ; String lastName = resultSet.getString("lastName").replaceAll("\\s",""); diff --git a/src/services/object/ObjectService.java b/src/services/object/ObjectService.java index 82734aad..f218d3c0 100644 --- a/src/services/object/ObjectService.java +++ b/src/services/object/ObjectService.java @@ -838,22 +838,23 @@ public class ObjectService implements INetworkDispatch { // stack overflow when using recursion long newId = 0; - try { + //try { synchronized(objectMutex) { - newId = highestId.get(); + newId = highestId.incrementAndGet(); ObjectDatabase objectIdODB = core.getObjectIdODB(); while (objectList.containsKey(newId) || objectIdODB.contains(newId)) { newId = highestId.incrementAndGet(); } + //System.out.println("Got an objid."); } - final String sql = "UPDATE highestid SET id=? WHERE id=(SELECT MAX(id) FROM highestid)"; + /*final String sql = "UPDATE highestid SET id=? WHERE id=(SELECT MAX(id) FROM highestid)"; final PreparedStatement ps2 = databaseConnection.preparedStatement(sql); ps2.setLong(1, newId); ps2.executeUpdate(); ps2.close(); } catch (SQLException e) { e.printStackTrace(); - } + }*/ return newId; }