From d72a28f6163ae15c168f9584aa87915846b88bde Mon Sep 17 00:00:00 2001 From: Rogiel Date: Mon, 26 Dec 2011 14:03:21 -0200 Subject: [PATCH] Fixed issue at character creation and OrientDB selectIDs query issue --- .../model/id/object/allocator/BitSetIDAllocator.java | 2 +- .../database/orientdb/AbstractOrientDatabaseService.java | 4 +++- .../com/l2jserver/game/net/packet/client/CM_CHAR_CREATE.java | 5 +++-- .../com/l2jserver/game/net/packet/client/CM_GOTO_LOBBY.java | 2 +- .../model/template/character/CharacterTemplate.java | 5 ++++- .../service/database/dao/orientdb/OrientDBCharacterDAO.java | 2 +- .../database/dao/orientdb/OrientDBCharacterFriendDAO.java | 2 +- .../database/dao/orientdb/OrientDBCharacterShortcutDAO.java | 2 +- .../database/dao/orientdb/OrientDBChatMessageDAO.java | 2 +- .../service/database/dao/orientdb/OrientDBClanDAO.java | 2 +- .../service/database/dao/orientdb/OrientDBItemDAO.java | 2 +- .../service/database/dao/orientdb/OrientDBNPCDAO.java | 2 +- .../l2jserver/service/game/character/CharacterService.java | 5 ++++- .../service/game/character/CharacterServiceImpl.java | 5 ++++- .../l2jserver/service/game/world/CachedWorldIDService.java | 4 ++-- 15 files changed, 29 insertions(+), 17 deletions(-) diff --git a/l2jserver2-common/src/main/java/com/l2jserver/model/id/object/allocator/BitSetIDAllocator.java b/l2jserver2-common/src/main/java/com/l2jserver/model/id/object/allocator/BitSetIDAllocator.java index ed65a0d16..e35ba8d7f 100644 --- a/l2jserver2-common/src/main/java/com/l2jserver/model/id/object/allocator/BitSetIDAllocator.java +++ b/l2jserver2-common/src/main/java/com/l2jserver/model/id/object/allocator/BitSetIDAllocator.java @@ -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 { diff --git a/l2jserver2-common/src/main/java/com/l2jserver/service/database/orientdb/AbstractOrientDatabaseService.java b/l2jserver2-common/src/main/java/com/l2jserver/service/database/orientdb/AbstractOrientDatabaseService.java index 4ac3136d8..b12571ea4 100644 --- a/l2jserver2-common/src/main/java/com/l2jserver/service/database/orientdb/AbstractOrientDatabaseService.java +++ b/l2jserver2-common/src/main/java/com/l2jserver/service/database/orientdb/AbstractOrientDatabaseService.java @@ -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(); } } diff --git a/l2jserver2-gameserver/src/main/java/com/l2jserver/game/net/packet/client/CM_CHAR_CREATE.java b/l2jserver2-gameserver/src/main/java/com/l2jserver/game/net/packet/client/CM_CHAR_CREATE.java index ad2483a46..5fd4cfbaa 100644 --- a/l2jserver2-gameserver/src/main/java/com/l2jserver/game/net/packet/client/CM_CHAR_CREATE.java +++ b/l2jserver2-gameserver/src/main/java/com/l2jserver/game/net/packet/client/CM_CHAR_CREATE.java @@ -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); diff --git a/l2jserver2-gameserver/src/main/java/com/l2jserver/game/net/packet/client/CM_GOTO_LOBBY.java b/l2jserver2-gameserver/src/main/java/com/l2jserver/game/net/packet/client/CM_GOTO_LOBBY.java index 9d9fa7c96..225cd91b9 100644 --- a/l2jserver2-gameserver/src/main/java/com/l2jserver/game/net/packet/client/CM_GOTO_LOBBY.java +++ b/l2jserver2-gameserver/src/main/java/com/l2jserver/game/net/packet/client/CM_GOTO_LOBBY.java @@ -62,6 +62,6 @@ public class CM_GOTO_LOBBY extends AbstractClientPacket { final List 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()]))); } } diff --git a/l2jserver2-gameserver/src/main/java/com/l2jserver/model/template/character/CharacterTemplate.java b/l2jserver2-gameserver/src/main/java/com/l2jserver/model/template/character/CharacterTemplate.java index 573d9e5d7..fcd33c874 100644 --- a/l2jserver2-gameserver/src/main/java/com/l2jserver/model/template/character/CharacterTemplate.java +++ b/l2jserver2-gameserver/src/main/java/com/l2jserver/model/template/character/CharacterTemplate.java @@ -169,7 +169,10 @@ public class CharacterTemplate extends ActorTemplate { @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; } diff --git a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBCharacterDAO.java b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBCharacterDAO.java index 76b3d5900..fea2ae79d 100644 --- a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBCharacterDAO.java +++ b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBCharacterDAO.java @@ -126,7 +126,7 @@ public class OrientDBCharacterDAO extends @Override protected OQueryContextNative query( OQueryContextNative record, QCharacter e) { - return record; + return null; } }); } diff --git a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBCharacterFriendDAO.java b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBCharacterFriendDAO.java index 4cc5c3674..e33431454 100644 --- a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBCharacterFriendDAO.java +++ b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBCharacterFriendDAO.java @@ -101,7 +101,7 @@ public class OrientDBCharacterFriendDAO extends @Override protected OQueryContextNative query( OQueryContextNative record, QCharacterFriend e) { - return record; + return null; } }); } diff --git a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBCharacterShortcutDAO.java b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBCharacterShortcutDAO.java index 7ad23add0..85baf6841 100644 --- a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBCharacterShortcutDAO.java +++ b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBCharacterShortcutDAO.java @@ -95,7 +95,7 @@ public class OrientDBCharacterShortcutDAO extends @Override protected OQueryContextNative query( OQueryContextNative record, QCharacterShortcut e) { - return record; + return null; } }); } diff --git a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBChatMessageDAO.java b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBChatMessageDAO.java index 3b8301fbd..9a24ea520 100644 --- a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBChatMessageDAO.java +++ b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBChatMessageDAO.java @@ -78,7 +78,7 @@ public class OrientDBChatMessageDAO extends @Override protected OQueryContextNative query( OQueryContextNative record, QLogChat e) { - return record; + return null; } }); } diff --git a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBClanDAO.java b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBClanDAO.java index 26623f193..6efd3d238 100644 --- a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBClanDAO.java +++ b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBClanDAO.java @@ -76,7 +76,7 @@ public class OrientDBClanDAO extends AbstractOrientDBDAO implement @Override protected OQueryContextNative query( OQueryContextNative record, QClan e) { - return record; + return null; } }); } diff --git a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBItemDAO.java b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBItemDAO.java index 1fcf36da1..0e544a329 100644 --- a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBItemDAO.java +++ b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBItemDAO.java @@ -107,7 +107,7 @@ public class OrientDBItemDAO extends AbstractOrientDBDAO @Override protected OQueryContextNative query( OQueryContextNative record, QItem e) { - return record; + return null; } }); } diff --git a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBNPCDAO.java b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBNPCDAO.java index 8a2875851..f050a4400 100644 --- a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBNPCDAO.java +++ b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/dao/orientdb/OrientDBNPCDAO.java @@ -102,7 +102,7 @@ public class OrientDBNPCDAO extends AbstractOrientDBDAO implements @Override protected OQueryContextNative query(OQueryContextNative record, QNPC e) { - return record; + return null; } }); } diff --git a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/game/character/CharacterService.java b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/game/character/CharacterService.java index dab2877cd..1fe97f9de 100644 --- a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/game/character/CharacterService.java +++ b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/game/character/CharacterService.java @@ -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, diff --git a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/game/character/CharacterServiceImpl.java b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/game/character/CharacterServiceImpl.java index a91a8de61..4a3b2a899 100644 --- a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/game/character/CharacterServiceImpl.java +++ b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/game/character/CharacterServiceImpl.java @@ -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); diff --git a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/game/world/CachedWorldIDService.java b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/game/world/CachedWorldIDService.java index fd4bf160c..3a8608bf4 100644 --- a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/game/world/CachedWorldIDService.java +++ b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/game/world/CachedWorldIDService.java @@ -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> 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());