mirror of
https://github.com/Rogiel/l2jserver2
synced 2025-12-05 23:22:47 +00:00
Fixed issue at character creation and OrientDB selectIDs query issue
This commit is contained in:
@@ -72,7 +72,7 @@ public class BitSetIDAllocator implements IDAllocator {
|
||||
@Override
|
||||
public void allocate(int id) {
|
||||
if (ids.get(id - FIRST_ID))
|
||||
throw new IDAllocatorException("ID not allocated");
|
||||
throw new IDAllocatorException("ID already allocated");
|
||||
log.debug("Allocating ID {}", id);
|
||||
lock.lock();
|
||||
try {
|
||||
|
||||
@@ -63,6 +63,7 @@ import com.mysema.query.sql.RelationalPathBase;
|
||||
import com.mysema.query.types.Path;
|
||||
import com.orientechnologies.orient.core.db.document.ODatabaseDocumentPool;
|
||||
import com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx;
|
||||
import com.orientechnologies.orient.core.intent.OIntentMassiveInsert;
|
||||
import com.orientechnologies.orient.core.metadata.schema.OClass;
|
||||
import com.orientechnologies.orient.core.metadata.schema.OClass.INDEX_TYPE;
|
||||
import com.orientechnologies.orient.core.metadata.schema.OProperty;
|
||||
@@ -214,7 +215,6 @@ public abstract class AbstractOrientDatabaseService extends AbstractService
|
||||
database = new ODatabaseDocumentTx(config.getUrl());
|
||||
if (!database.exists()) {
|
||||
database.create();
|
||||
|
||||
}
|
||||
}
|
||||
// database.getStorage().addUser();
|
||||
@@ -260,6 +260,7 @@ public abstract class AbstractOrientDatabaseService extends AbstractService
|
||||
final ODatabaseDocumentTx database = ODatabaseDocumentPool.global()
|
||||
.acquire(config.getUrl(), config.getUsername(),
|
||||
config.getPassword());
|
||||
database.declareIntent(new OIntentMassiveInsert());
|
||||
transaction.set(database);
|
||||
try {
|
||||
database.begin(OTransaction.TXTYPE.OPTIMISTIC);
|
||||
@@ -274,6 +275,7 @@ public abstract class AbstractOrientDatabaseService extends AbstractService
|
||||
throw new DatabaseException(e);
|
||||
} finally {
|
||||
transaction.set(null);
|
||||
database.declareIntent(null);
|
||||
database.close();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,8 +152,9 @@ public class CM_CHAR_CREATE extends AbstractClientPacket {
|
||||
@Override
|
||||
public void process(final Lineage2Client conn) {
|
||||
try {
|
||||
final L2Character character = characterService.create(name, sex,
|
||||
characterClass, hairStyle, hairColor, face);
|
||||
final L2Character character = characterService.create(name, conn
|
||||
.getSession().getAccountID(), sex, characterClass,
|
||||
hairStyle, hairColor, face);
|
||||
|
||||
if (character != null)
|
||||
conn.write(SM_CHAR_CREATE_OK.INSTANCE);
|
||||
|
||||
@@ -62,6 +62,6 @@ public class CM_GOTO_LOBBY extends AbstractClientPacket {
|
||||
final List<L2Character> chars = characterDao.selectByAccount(conn
|
||||
.getSession().getAccountID());
|
||||
conn.write(SM_CHAR_LIST.fromL2Session(conn.getSession(),
|
||||
chars.toArray(new L2Character[0])));
|
||||
chars.toArray(new L2Character[chars.size()])));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -169,7 +169,10 @@ public class CharacterTemplate extends ActorTemplate<L2Character> {
|
||||
|
||||
@Override
|
||||
protected L2Character createInstance() {
|
||||
return new L2Character(id);
|
||||
final L2Character character = new L2Character(id);
|
||||
character.setCharacterClass(getCharacterClass());
|
||||
character.setRace(getRace());
|
||||
return character;
|
||||
// character.setPosition(null); // TODO spawn location
|
||||
// return null;
|
||||
}
|
||||
|
||||
@@ -126,7 +126,7 @@ public class OrientDBCharacterDAO extends
|
||||
@Override
|
||||
protected OQueryContextNative query(
|
||||
OQueryContextNative record, QCharacter e) {
|
||||
return record;
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@ public class OrientDBCharacterFriendDAO extends
|
||||
@Override
|
||||
protected OQueryContextNative query(
|
||||
OQueryContextNative record, QCharacterFriend e) {
|
||||
return record;
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -95,7 +95,7 @@ public class OrientDBCharacterShortcutDAO extends
|
||||
@Override
|
||||
protected OQueryContextNative query(
|
||||
OQueryContextNative record, QCharacterShortcut e) {
|
||||
return record;
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ public class OrientDBChatMessageDAO extends
|
||||
@Override
|
||||
protected OQueryContextNative query(
|
||||
OQueryContextNative record, QLogChat e) {
|
||||
return record;
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@ public class OrientDBClanDAO extends AbstractOrientDBDAO<Clan, ClanID> implement
|
||||
@Override
|
||||
protected OQueryContextNative query(
|
||||
OQueryContextNative record, QClan e) {
|
||||
return record;
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ public class OrientDBItemDAO extends AbstractOrientDBDAO<Item, ItemID>
|
||||
@Override
|
||||
protected OQueryContextNative query(
|
||||
OQueryContextNative record, QItem e) {
|
||||
return record;
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@ public class OrientDBNPCDAO extends AbstractOrientDBDAO<NPC, NPCID> implements
|
||||
@Override
|
||||
protected OQueryContextNative query(OQueryContextNative record,
|
||||
QNPC e) {
|
||||
return record;
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package com.l2jserver.service.game.character;
|
||||
|
||||
import com.l2jserver.model.game.CharacterFriend;
|
||||
import com.l2jserver.model.id.AccountID;
|
||||
import com.l2jserver.model.template.actor.ActorSex;
|
||||
import com.l2jserver.model.template.character.CharacterClass;
|
||||
import com.l2jserver.model.world.Actor;
|
||||
@@ -49,6 +50,8 @@ public interface CharacterService extends Service {
|
||||
*
|
||||
* @param name
|
||||
* The name of the new character
|
||||
* @param accountID
|
||||
* the account ID to be used
|
||||
* @param sex
|
||||
* The sex of the new character
|
||||
* @param characterClass
|
||||
@@ -68,7 +71,7 @@ public interface CharacterService extends Service {
|
||||
* @throws CharacterNameAlreadyExistsException
|
||||
* the character name is already being used
|
||||
*/
|
||||
L2Character create(String name, ActorSex sex,
|
||||
L2Character create(String name, AccountID accountID, ActorSex sex,
|
||||
CharacterClass characterClass, CharacterHairStyle hairStyle,
|
||||
CharacterHairColor hairColor, CharacterFace face)
|
||||
throws CharacterInvalidNameException,
|
||||
|
||||
@@ -24,6 +24,7 @@ import com.google.inject.Inject;
|
||||
import com.l2jserver.model.dao.CharacterDAO;
|
||||
import com.l2jserver.model.dao.CharacterShortcutDAO;
|
||||
import com.l2jserver.model.dao.ItemDAO;
|
||||
import com.l2jserver.model.id.AccountID;
|
||||
import com.l2jserver.model.id.object.CharacterID;
|
||||
import com.l2jserver.model.id.object.provider.CharacterIDProvider;
|
||||
import com.l2jserver.model.id.template.CharacterTemplateID;
|
||||
@@ -169,7 +170,7 @@ public class CharacterServiceImpl extends AbstractService implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public L2Character create(String name, ActorSex sex,
|
||||
public L2Character create(String name, AccountID accountID, ActorSex sex,
|
||||
CharacterClass characterClass, CharacterHairStyle hairStyle,
|
||||
CharacterHairColor hairColor, CharacterFace face)
|
||||
throws CharacterInvalidNameException,
|
||||
@@ -212,8 +213,10 @@ public class CharacterServiceImpl extends AbstractService implements
|
||||
// set parameters
|
||||
character.setID(id);
|
||||
character.setName(name);
|
||||
character.setAccountID(accountID);
|
||||
|
||||
character.setSex(sex);
|
||||
character.setPoint(Point3D.fromXYZA(146783, 25808, -2008, 0));
|
||||
|
||||
character.getAppearance().setHairStyle(hairStyle);
|
||||
character.getAppearance().setHairColor(hairColor);
|
||||
|
||||
@@ -122,7 +122,7 @@ public class CachedWorldIDService extends AbstractService implements
|
||||
load(itemDao.selectIDs());
|
||||
load(npcDao.selectIDs());
|
||||
|
||||
log.debug("IDs loaded from database");
|
||||
log.info("{} IDs loaded from database");
|
||||
loaded = true;
|
||||
}
|
||||
|
||||
@@ -140,7 +140,7 @@ public class CachedWorldIDService extends AbstractService implements
|
||||
*/
|
||||
private void load(Collection<? extends ObjectID<?>> ids) {
|
||||
Preconditions.checkNotNull(ids, "ids");
|
||||
log.debug("Loading {} IDs", ids.size());
|
||||
log.info("Loading {} IDs", ids.size());
|
||||
for (final ObjectID<?> id : ids) {
|
||||
log.debug("Loading {}", id);
|
||||
allocator.allocate(id.getID());
|
||||
|
||||
Reference in New Issue
Block a user