mirror of
https://github.com/Rogiel/l2jserver2
synced 2025-12-06 07:32:46 +00:00
Implements bulk and transactioned inserts, updates and deletes
This commit is contained in:
@@ -296,8 +296,8 @@ public abstract class JDBCCharacterDAO extends
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean insert(L2Character character) {
|
||||
return database.query(new InsertUpdateQuery<L2Character>(character) {
|
||||
public int insertObjects(L2Character... characters) {
|
||||
return database.query(new InsertUpdateQuery<L2Character>(characters) {
|
||||
@Override
|
||||
protected String query() {
|
||||
return "INSERT INTO `" + TABLE + "` (`" + CHAR_ID + "`,`"
|
||||
@@ -349,12 +349,12 @@ public abstract class JDBCCharacterDAO extends
|
||||
st.setString(i++, appearance.getHairColor().name());
|
||||
st.setString(i++, appearance.getFace().name());
|
||||
}
|
||||
}) > 0;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean update(L2Character character) {
|
||||
return database.query(new InsertUpdateQuery<L2Character>(character) {
|
||||
public int updateObjects(L2Character... characters) {
|
||||
return database.query(new InsertUpdateQuery<L2Character>(characters) {
|
||||
@Override
|
||||
protected String query() {
|
||||
return "UPDATE `" + TABLE + "` SET `" + ACCOUNT_ID + "` = ?,`"
|
||||
@@ -411,12 +411,12 @@ public abstract class JDBCCharacterDAO extends
|
||||
// WHERE
|
||||
st.setInt(i++, character.getID().getID());
|
||||
}
|
||||
}) > 0;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delete(L2Character character) {
|
||||
return database.query(new InsertUpdateQuery<L2Character>(character) {
|
||||
public int deleteObjects(L2Character... characters) {
|
||||
return database.query(new InsertUpdateQuery<L2Character>(characters) {
|
||||
@Override
|
||||
protected String query() {
|
||||
return "DELETE FROM `" + TABLE + "` WHERE `" + CHAR_ID
|
||||
@@ -428,6 +428,6 @@ public abstract class JDBCCharacterDAO extends
|
||||
L2Character character) throws SQLException {
|
||||
st.setInt(1, character.getID().getID());
|
||||
}
|
||||
}) > 0;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -168,8 +168,8 @@ public abstract class JDBCCharacterFriendDAO extends
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean insert(CharacterFriend friend) {
|
||||
return database.query(new InsertUpdateQuery<CharacterFriend>(friend) {
|
||||
public int insertObjects(CharacterFriend... friends) {
|
||||
return database.query(new InsertUpdateQuery<CharacterFriend>(friends) {
|
||||
@Override
|
||||
protected String query() {
|
||||
return "INSERT INTO `" + TABLE + "` (`" + CHAR_ID + "`,`"
|
||||
@@ -182,19 +182,19 @@ public abstract class JDBCCharacterFriendDAO extends
|
||||
st.setInt(1, friend.getCharacterID().getID());
|
||||
st.setInt(2, friend.getFriendID().getID());
|
||||
}
|
||||
}) > 0;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean update(CharacterFriend friend) {
|
||||
public int updateObjects(CharacterFriend... friends) {
|
||||
// it is not possible update friend objects, because they are only a ID
|
||||
// pair and IDs are immutable
|
||||
return false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delete(CharacterFriend friend) {
|
||||
return database.query(new InsertUpdateQuery<CharacterFriend>(friend) {
|
||||
public int deleteObjects(CharacterFriend... friends) {
|
||||
return database.query(new InsertUpdateQuery<CharacterFriend>(friends) {
|
||||
@Override
|
||||
protected String query() {
|
||||
return "DELETE FROM `" + TABLE + "` WHERE `" + CHAR_ID
|
||||
@@ -207,7 +207,7 @@ public abstract class JDBCCharacterFriendDAO extends
|
||||
st.setInt(1, friend.getCharacterID().getID());
|
||||
st.setInt(2, friend.getFriendID().getID());
|
||||
}
|
||||
}) > 0;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -169,8 +169,8 @@ public abstract class JDBCChatMessageDAO extends
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean insert(ChatMessage message) {
|
||||
return database.query(new InsertUpdateQuery<ChatMessage>(message) {
|
||||
public int insertObjects(ChatMessage... messages) {
|
||||
return database.query(new InsertUpdateQuery<ChatMessage>(messages) {
|
||||
@Override
|
||||
protected String query() {
|
||||
return "INSERT INTO `" + TABLE + "` (`" + TYPE + "`,`"
|
||||
@@ -200,18 +200,18 @@ public abstract class JDBCChatMessageDAO extends
|
||||
protected Mapper<ChatMessageID> keyMapper() {
|
||||
return primaryKeyMapper;
|
||||
}
|
||||
}) > 0;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean update(ChatMessage message) {
|
||||
public int updateObjects(ChatMessage... messages) {
|
||||
// cannot update chat message logs
|
||||
return false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delete(ChatMessage message) {
|
||||
return database.query(new InsertUpdateQuery<ChatMessage>(message) {
|
||||
public int deleteObjects(ChatMessage... messages) {
|
||||
return database.query(new InsertUpdateQuery<ChatMessage>(messages) {
|
||||
@Override
|
||||
protected String query() {
|
||||
return "DELETE FROM `" + TABLE + "` WHERE `" + MESSAGE_ID
|
||||
@@ -223,6 +223,6 @@ public abstract class JDBCChatMessageDAO extends
|
||||
throws SQLException {
|
||||
st.setInt(1, message.getID().getID());
|
||||
}
|
||||
}) > 0;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,12 +29,12 @@ import com.l2jserver.model.id.object.ClanID;
|
||||
import com.l2jserver.model.id.object.provider.CharacterIDProvider;
|
||||
import com.l2jserver.model.id.object.provider.ClanIDProvider;
|
||||
import com.l2jserver.model.world.Clan;
|
||||
import com.l2jserver.service.database.DatabaseService;
|
||||
import com.l2jserver.service.database.AbstractJDBCDatabaseService.CachedMapper;
|
||||
import com.l2jserver.service.database.AbstractJDBCDatabaseService.InsertUpdateQuery;
|
||||
import com.l2jserver.service.database.AbstractJDBCDatabaseService.Mapper;
|
||||
import com.l2jserver.service.database.AbstractJDBCDatabaseService.SelectListQuery;
|
||||
import com.l2jserver.service.database.AbstractJDBCDatabaseService.SelectSingleQuery;
|
||||
import com.l2jserver.service.database.DatabaseService;
|
||||
|
||||
/**
|
||||
* {@link CharacterDAO} implementation for JDBC
|
||||
@@ -137,8 +137,8 @@ public abstract class JDBCClanDAO extends AbstractJDBCDAO<Clan, ClanID>
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean insert(Clan clan) {
|
||||
return database.query(new InsertUpdateQuery<Clan>(clan) {
|
||||
public int insertObjects(Clan... clans) {
|
||||
return database.query(new InsertUpdateQuery<Clan>(clans) {
|
||||
@Override
|
||||
protected String query() {
|
||||
return "INSERT INTO `" + TABLE + "` (`" + CLAN_ID
|
||||
@@ -150,18 +150,18 @@ public abstract class JDBCClanDAO extends AbstractJDBCDAO<Clan, ClanID>
|
||||
throws SQLException {
|
||||
st.setInt(1, clan.getID().getID());
|
||||
}
|
||||
}) > 0;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean update(Clan clan) {
|
||||
// TODO Auto-generated method stub
|
||||
return false;
|
||||
public int updateObjects(Clan... clans) {
|
||||
// TODO implement clan update
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delete(Clan clan) {
|
||||
return database.query(new InsertUpdateQuery<Clan>(clan) {
|
||||
public int deleteObjects(Clan... clans) {
|
||||
return database.query(new InsertUpdateQuery<Clan>(clans) {
|
||||
@Override
|
||||
protected String query() {
|
||||
return "DELETE FROM `" + TABLE + "` WHERE `" + CLAN_ID
|
||||
@@ -173,6 +173,6 @@ public abstract class JDBCClanDAO extends AbstractJDBCDAO<Clan, ClanID>
|
||||
throws SQLException {
|
||||
st.setInt(1, clan.getID().getID());
|
||||
}
|
||||
}) > 0;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@ import com.l2jserver.model.world.character.CharacterInventory;
|
||||
import com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll;
|
||||
import com.l2jserver.model.world.character.CharacterInventory.ItemLocation;
|
||||
import com.l2jserver.service.database.AbstractJDBCDatabaseService.CachedMapper;
|
||||
import com.l2jserver.service.database.AbstractJDBCDatabaseService.DeleteQuery;
|
||||
import com.l2jserver.service.database.AbstractJDBCDatabaseService.InsertUpdateQuery;
|
||||
import com.l2jserver.service.database.AbstractJDBCDatabaseService.Mapper;
|
||||
import com.l2jserver.service.database.AbstractJDBCDatabaseService.SelectListQuery;
|
||||
@@ -239,8 +240,8 @@ public abstract class JDBCItemDAO extends AbstractJDBCDAO<Item, ItemID>
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean insert(Item item) {
|
||||
return database.query(new InsertUpdateQuery<Item>(item) {
|
||||
public int insertObjects(Item... items) {
|
||||
return database.query(new InsertUpdateQuery<Item>(items) {
|
||||
@Override
|
||||
protected String query() {
|
||||
return "INSERT INTO `" + TABLE + "` (`" + ITEM_ID + "`,`"
|
||||
@@ -276,12 +277,12 @@ public abstract class JDBCItemDAO extends AbstractJDBCDAO<Item, ItemID>
|
||||
st.setNull(i++, Types.INTEGER);
|
||||
}
|
||||
}
|
||||
}) > 0;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean update(Item item) {
|
||||
return database.query(new InsertUpdateQuery<Item>(item) {
|
||||
public int updateObjects(Item... items) {
|
||||
return database.query(new InsertUpdateQuery<Item>(items) {
|
||||
@Override
|
||||
protected String query() {
|
||||
return "UPDATE `" + TABLE + "` SET `" + CHAR_ID + "` = ?,`"
|
||||
@@ -318,12 +319,12 @@ public abstract class JDBCItemDAO extends AbstractJDBCDAO<Item, ItemID>
|
||||
// WHERE
|
||||
st.setInt(i++, item.getID().getID());
|
||||
}
|
||||
}) > 0;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delete(Item item) {
|
||||
return database.query(new InsertUpdateQuery<Item>(item) {
|
||||
public int deleteObjects(Item... items) {
|
||||
return database.query(new DeleteQuery<Item>(database, items) {
|
||||
@Override
|
||||
protected String query() {
|
||||
return "DELETE FROM `" + TABLE + "` WHERE `" + ITEM_ID
|
||||
@@ -335,6 +336,11 @@ public abstract class JDBCItemDAO extends AbstractJDBCDAO<Item, ItemID>
|
||||
throws SQLException {
|
||||
st.setInt(1, item.getID().getID());
|
||||
}
|
||||
}) > 0;
|
||||
|
||||
@Override
|
||||
protected void dispose(Item object) {
|
||||
idFactory.destroy(object.getID());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -217,8 +217,8 @@ public abstract class JDBCNPCDAO extends AbstractJDBCDAO<NPC, NPCID> implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean insert(NPC npc) {
|
||||
return database.query(new InsertUpdateQuery<NPC>(npc) {
|
||||
public int insertObjects(NPC... npcs) {
|
||||
return database.query(new InsertUpdateQuery<NPC>(npcs) {
|
||||
@Override
|
||||
protected String query() {
|
||||
return "INSERT INTO `" + TABLE + "` (`" + NPC_ID + "`,`"
|
||||
@@ -246,12 +246,12 @@ public abstract class JDBCNPCDAO extends AbstractJDBCDAO<NPC, NPCID> implements
|
||||
|
||||
st.setLong(i++, npc.getRespawnInterval());
|
||||
}
|
||||
}) > 0;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean update(NPC npc) {
|
||||
return database.query(new InsertUpdateQuery<NPC>(npc) {
|
||||
public int updateObjects(NPC... npcs) {
|
||||
return database.query(new InsertUpdateQuery<NPC>(npcs) {
|
||||
@Override
|
||||
protected String query() {
|
||||
return "UPDATE `" + TABLE + "` SET `" + NPC_TEMPLATE_ID
|
||||
@@ -282,12 +282,12 @@ public abstract class JDBCNPCDAO extends AbstractJDBCDAO<NPC, NPCID> implements
|
||||
// WHERE
|
||||
st.setInt(i++, npc.getID().getID());
|
||||
}
|
||||
}) > 0;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delete(NPC npc) {
|
||||
return database.query(new InsertUpdateQuery<NPC>(npc) {
|
||||
public int deleteObjects(NPC... npcs) {
|
||||
return database.query(new InsertUpdateQuery<NPC>(npcs) {
|
||||
@Override
|
||||
protected String query() {
|
||||
return "DELETE FROM `" + TABLE + "` WHERE `" + NPC_ID + "` = ?";
|
||||
@@ -298,6 +298,6 @@ public abstract class JDBCNPCDAO extends AbstractJDBCDAO<NPC, NPCID> implements
|
||||
throws SQLException {
|
||||
st.setInt(1, npc.getID().getID());
|
||||
}
|
||||
}) > 0;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -248,8 +248,8 @@ public class OrientDBCharacterDAO extends
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean insert(L2Character object) {
|
||||
return database.query(new InsertUpdateQuery<L2Character>(object) {
|
||||
public int insertObjects(L2Character... objects) {
|
||||
return database.query(new InsertUpdateQuery<L2Character>(objects) {
|
||||
@Override
|
||||
protected ONativeSynchQuery<ODocument, OQueryContextNativeSchema<ODocument>> createQuery(
|
||||
ODatabaseDocumentTx database, L2Character object) {
|
||||
@@ -301,12 +301,12 @@ public class OrientDBCharacterDAO extends
|
||||
|
||||
return document;
|
||||
}
|
||||
}) != 0;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean update(final L2Character character) {
|
||||
return database.query(new InsertUpdateQuery<L2Character>(character) {
|
||||
public int updateObjects(final L2Character... characters) {
|
||||
return database.query(new InsertUpdateQuery<L2Character>(characters) {
|
||||
@Override
|
||||
protected ONativeSynchQuery<ODocument, OQueryContextNativeSchema<ODocument>> createQuery(
|
||||
ODatabaseDocumentTx database, final L2Character character) {
|
||||
@@ -368,12 +368,12 @@ public class OrientDBCharacterDAO extends
|
||||
throws SQLException {
|
||||
return null;
|
||||
}
|
||||
}) != 0;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delete(L2Character object) {
|
||||
return database.query(new InsertUpdateQuery<L2Character>(object) {
|
||||
public int deleteObjects(L2Character... objects) {
|
||||
return database.query(new InsertUpdateQuery<L2Character>(objects) {
|
||||
@Override
|
||||
protected ONativeSynchQuery<ODocument, OQueryContextNativeSchema<ODocument>> createQuery(
|
||||
ODatabaseDocumentTx database, final L2Character character) {
|
||||
@@ -403,7 +403,7 @@ public class OrientDBCharacterDAO extends
|
||||
throws SQLException {
|
||||
return null;
|
||||
}
|
||||
}) != 0;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -45,7 +45,7 @@ import com.orientechnologies.orient.core.record.impl.ODocument;
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public abstract class OrientDBCharacterFriendDAO extends
|
||||
public class OrientDBCharacterFriendDAO extends
|
||||
AbstractOrientDBDAO<CharacterFriend, FriendID> implements
|
||||
CharacterFriendDAO {
|
||||
/**
|
||||
@@ -194,8 +194,8 @@ public abstract class OrientDBCharacterFriendDAO extends
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean insert(CharacterFriend friend) {
|
||||
return database.query(new InsertUpdateQuery<CharacterFriend>(friend) {
|
||||
public int insertObjects(CharacterFriend... friends) {
|
||||
return database.query(new InsertUpdateQuery<CharacterFriend>(friends) {
|
||||
@Override
|
||||
protected ONativeSynchQuery<ODocument, OQueryContextNativeSchema<ODocument>> createQuery(
|
||||
ODatabaseDocumentTx database, CharacterFriend object) {
|
||||
@@ -215,19 +215,19 @@ public abstract class OrientDBCharacterFriendDAO extends
|
||||
document.field(CHAR_ID_FRIEND, friend.getFriendID());
|
||||
return document;
|
||||
}
|
||||
}) > 0;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean update(CharacterFriend friend) {
|
||||
public int updateObjects(CharacterFriend... friends) {
|
||||
// it is not possible update friend objects, because they are only a ID
|
||||
// pair and IDs are immutable
|
||||
return false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delete(CharacterFriend friend) {
|
||||
return database.query(new InsertUpdateQuery<CharacterFriend>(friend) {
|
||||
public int deleteObjects(CharacterFriend... friends) {
|
||||
return database.query(new InsertUpdateQuery<CharacterFriend>(friends) {
|
||||
@Override
|
||||
protected ONativeSynchQuery<ODocument, OQueryContextNativeSchema<ODocument>> createQuery(
|
||||
ODatabaseDocumentTx database, final CharacterFriend friend) {
|
||||
@@ -259,7 +259,7 @@ public abstract class OrientDBCharacterFriendDAO extends
|
||||
CharacterFriend friend) throws SQLException {
|
||||
return null;
|
||||
}
|
||||
}) > 0;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -45,7 +45,7 @@ import com.orientechnologies.orient.core.record.impl.ODocument;
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public abstract class OrientDBChatMessageDAO extends
|
||||
public class OrientDBChatMessageDAO extends
|
||||
AbstractOrientDBDAO<ChatMessage, ChatMessageID> implements
|
||||
ChatMessageDAO {
|
||||
/**
|
||||
@@ -180,8 +180,8 @@ public abstract class OrientDBChatMessageDAO extends
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean insert(ChatMessage message) {
|
||||
return database.query(new InsertUpdateQuery<ChatMessage>(message) {
|
||||
public int insertObjects(ChatMessage... messages) {
|
||||
return database.query(new InsertUpdateQuery<ChatMessage>(messages) {
|
||||
@Override
|
||||
protected ONativeSynchQuery<ODocument, OQueryContextNativeSchema<ODocument>> createQuery(
|
||||
ODatabaseDocumentTx database, ChatMessage object) {
|
||||
@@ -212,18 +212,18 @@ public abstract class OrientDBChatMessageDAO extends
|
||||
|
||||
return document;
|
||||
}
|
||||
}) > 0;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean update(ChatMessage message) {
|
||||
public int updateObjects(ChatMessage... messages) {
|
||||
// cannot update chat message logs
|
||||
return false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delete(ChatMessage message) {
|
||||
return database.query(new InsertUpdateQuery<ChatMessage>(message) {
|
||||
public int deleteObjects(ChatMessage... messages) {
|
||||
return database.query(new InsertUpdateQuery<ChatMessage>(messages) {
|
||||
@Override
|
||||
protected ONativeSynchQuery<ODocument, OQueryContextNativeSchema<ODocument>> createQuery(
|
||||
ODatabaseDocumentTx database, final ChatMessage message) {
|
||||
@@ -254,6 +254,6 @@ public abstract class OrientDBChatMessageDAO extends
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
}) > 0;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ import com.orientechnologies.orient.core.record.impl.ODocument;
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public abstract class OrientDBClanDAO extends AbstractOrientDBDAO<Clan, ClanID>
|
||||
public class OrientDBClanDAO extends AbstractOrientDBDAO<Clan, ClanID>
|
||||
implements ClanDAO {
|
||||
/**
|
||||
* The {@link ChatMessageID} factory
|
||||
@@ -159,8 +159,8 @@ public abstract class OrientDBClanDAO extends AbstractOrientDBDAO<Clan, ClanID>
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean insert(Clan clan) {
|
||||
return database.query(new InsertUpdateQuery<Clan>(clan) {
|
||||
public int insertObjects(Clan... clans) {
|
||||
return database.query(new InsertUpdateQuery<Clan>(clans) {
|
||||
@Override
|
||||
protected ONativeSynchQuery<ODocument, OQueryContextNativeSchema<ODocument>> createQuery(
|
||||
ODatabaseDocumentTx database, Clan object) {
|
||||
@@ -180,18 +180,18 @@ public abstract class OrientDBClanDAO extends AbstractOrientDBDAO<Clan, ClanID>
|
||||
document.field(CHAR_ID_LEADER, clan.getLeaderID().getID());
|
||||
return document;
|
||||
}
|
||||
}) > 0;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean update(Clan clan) {
|
||||
public int updateObjects(Clan... clans) {
|
||||
// cannot update chat message logs
|
||||
return false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delete(Clan clan) {
|
||||
return database.query(new InsertUpdateQuery<Clan>(clan) {
|
||||
public int deleteObjects(Clan... clans) {
|
||||
return database.query(new InsertUpdateQuery<Clan>(clans) {
|
||||
@Override
|
||||
protected ONativeSynchQuery<ODocument, OQueryContextNativeSchema<ODocument>> createQuery(
|
||||
ODatabaseDocumentTx database, final Clan clan) {
|
||||
@@ -221,6 +221,6 @@ public abstract class OrientDBClanDAO extends AbstractOrientDBDAO<Clan, ClanID>
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
}) > 0;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,6 +44,7 @@ import com.l2jserver.service.game.spawn.SpawnPointNotFoundServiceException;
|
||||
import com.l2jserver.service.game.spawn.SpawnService;
|
||||
import com.l2jserver.service.game.world.WorldService;
|
||||
import com.l2jserver.service.game.world.event.WorldEventDispatcher;
|
||||
import com.l2jserver.util.ArrayUtils;
|
||||
import com.l2jserver.util.geometry.Point3D;
|
||||
|
||||
/**
|
||||
@@ -177,12 +178,8 @@ public class ItemServiceImpl extends AbstractService implements ItemService {
|
||||
item = stack(stackItems);
|
||||
Item[] removedItems = character.getInventory().remove(
|
||||
stackItems);
|
||||
for (final Item removeItem : removedItems) {
|
||||
if (!removeItem.equals(item)) {
|
||||
itemDao.delete(removeItem);
|
||||
itemIdProvider.destroy(removeItem.getID());
|
||||
}
|
||||
}
|
||||
Item[] databaseDeleteItems = ArrayUtils.copyArrayExcept(removedItems, item);
|
||||
itemDao.deleteObjects(databaseDeleteItems);
|
||||
character.getInventory().add(item);
|
||||
} catch (NonStackableItemsServiceException e) {
|
||||
character.getInventory().add(item);
|
||||
@@ -195,6 +192,9 @@ public class ItemServiceImpl extends AbstractService implements ItemService {
|
||||
this.items.remove(item);
|
||||
|
||||
itemDao.save(item);
|
||||
if (!item.equals(originalItem)) {
|
||||
itemDao.save(originalItem);
|
||||
}
|
||||
spawnService.unspawn(originalItem);
|
||||
eventDispatcher.dispatch(new ItemPickUpEvent(character,
|
||||
originalItem, item));
|
||||
|
||||
Reference in New Issue
Block a user