mirror of
https://github.com/Rogiel/l2jserver2
synced 2025-12-05 23:22:47 +00:00
Adds asynchronous database save to ItemService and CharacterService
This commit is contained in:
@@ -48,7 +48,9 @@ public class SM_NPC_INFO extends AbstractServerPacket {
|
||||
|
||||
buffer.writeInt(npc.getID().getID());
|
||||
buffer.writeInt(template.getID().getID() + 1000000); // npctype id
|
||||
buffer.writeInt((template.isAttackable() ? 0x01 : 0x00)); // attackable
|
||||
//buffer.writeInt((template.isAttackable() ? 0x01 : 0x00)); // attackable
|
||||
//FIXME unhard code it
|
||||
buffer.writeInt(0x00); // attackable
|
||||
buffer.writeInt(npc.getPoint().getX());
|
||||
buffer.writeInt(npc.getPoint().getY());
|
||||
buffer.writeInt(npc.getPoint().getZ());
|
||||
|
||||
@@ -249,7 +249,7 @@ public class CharacterServiceImpl extends AbstractService implements
|
||||
eventDispatcher.dispatch(new CharacterEnterWorldEvent(character));
|
||||
|
||||
// update character
|
||||
characterDao.save(character);
|
||||
characterDao.saveObjectsAsync(character);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -263,7 +263,7 @@ public class CharacterServiceImpl extends AbstractService implements
|
||||
eventDispatcher.dispatch(new CharacterLeaveWorldEvent(character));
|
||||
character.setOnline(false);
|
||||
|
||||
characterDao.save(character);
|
||||
characterDao.saveObjectsAsync(character);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -328,7 +328,7 @@ public class CharacterServiceImpl extends AbstractService implements
|
||||
} else {
|
||||
throw new ActorIsNotAttackableServiceException();
|
||||
}
|
||||
characterDao.save(character);
|
||||
characterDao.saveObjectsAsync(character);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -366,7 +366,7 @@ public class CharacterServiceImpl extends AbstractService implements
|
||||
// notify the client.
|
||||
eventDispatcher.dispatch(new CharacterStartMovingEvent(character,
|
||||
coordinate.toPoint()));
|
||||
characterDao.save(character);
|
||||
characterDao.saveObjectsAsync(character);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -403,6 +403,8 @@ public class CharacterServiceImpl extends AbstractService implements
|
||||
// TODO dispatch stop event
|
||||
}
|
||||
}
|
||||
|
||||
characterDao.saveObjectsAsync(character);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -163,11 +163,11 @@ public class ItemServiceImpl extends AbstractService implements ItemService {
|
||||
throws NotEnoughItemsServiceException {
|
||||
synchronized (item) {
|
||||
Item destroyItem = split(item, count);
|
||||
itemDao.delete(destroyItem);
|
||||
itemDao.deleteObjectsAsync(destroyItem);
|
||||
if (destroyItem.getOwnerID() != null)
|
||||
destroyItem.getOwner().getInventory().remove(destroyItem);
|
||||
if (!destroyItem.equals(item))
|
||||
itemDao.save(item);
|
||||
itemDao.saveObjectsAsync(item);
|
||||
return destroyItem.equals(item);
|
||||
}
|
||||
}
|
||||
@@ -218,9 +218,9 @@ public class ItemServiceImpl extends AbstractService implements ItemService {
|
||||
character.getInventory().add(item);
|
||||
this.items.remove(item);
|
||||
|
||||
itemDao.save(item);
|
||||
itemDao.saveObjectsAsync(item);
|
||||
if (!item.equals(originalItem)) {
|
||||
itemDao.save(originalItem);
|
||||
itemDao.saveObjectsAsync(originalItem);
|
||||
}
|
||||
spawnService.unspawn(originalItem);
|
||||
eventDispatcher.dispatch(new ItemPickEvent(character, originalItem,
|
||||
@@ -254,9 +254,9 @@ public class ItemServiceImpl extends AbstractService implements ItemService {
|
||||
}
|
||||
}
|
||||
|
||||
itemDao.save(item);
|
||||
itemDao.saveObjectsAsync(item);
|
||||
if (!item.equals(sourceItem)) {
|
||||
itemDao.save(sourceItem);
|
||||
itemDao.saveObjectsAsync(sourceItem);
|
||||
}
|
||||
items.add(item);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user