some bug fixes, updated engine with support for new .trn versions, refactored some code with new Java 8 syntax, changed compiler to java 8

This commit is contained in:
Light2
2014-03-25 20:08:01 +01:00
parent 0742c19af3
commit 3e265ed6c5
23 changed files with 476 additions and 361 deletions
+29 -21
View File
@@ -412,7 +412,13 @@ public class ObjectService implements INetworkDispatch {
}
});
objectList.remove(object.getObjectID());
core.simulationService.remove(object, object.getPosition().x, object.getPosition().y);
if(object.getContainer() != null) {
long parentId = object.getParentId();
object.getContainer()._remove(object);
object.setParentId(parentId);
} else {
core.simulationService.remove(object, object.getWorldPosition().x, object.getWorldPosition().z, true);
}
}
@@ -468,28 +474,30 @@ public class ObjectService implements INetworkDispatch {
return objectID;*/
long newId;
synchronized(objectMutex) {
newId = highestId.incrementAndGet();
}
PreparedStatement ps2;
try {
ps2 = databaseConnection.preparedStatement("UPDATE highestid SET id=" + newId + " WHERE id=" + (newId-1));
ps2.executeUpdate();
ps2.close();
} catch (SQLException e) {
e.printStackTrace();
}
if(getObject(newId) == null /*&& getCreatureFromDB(newId) == null*/ && !core.getObjectIdODB().contains(newId, Long.class, ObjectId.class))
return newId;
else {
System.out.println("Object ID already exists: " + newId);
return generateObjectID();
long newId = 0;
boolean found = false;
// stack overflow when using recursion
while(!found) {
synchronized(objectMutex) {
newId = highestId.incrementAndGet();
}
PreparedStatement ps2;
try {
ps2 = databaseConnection.preparedStatement("UPDATE highestid SET id=" + newId + " WHERE id=" + (newId-1));
ps2.executeUpdate();
ps2.close();
} catch (SQLException e) {
e.printStackTrace();
}
if(getObject(newId) != null || core.getObjectIdODB().contains(newId, Long.class, ObjectId.class))
found = false;
else
found = true;
}
return newId;
}