1
0
mirror of https://github.com/Rogiel/l2jserver2 synced 2025-12-06 07:32:46 +00:00

Adds asynchronous database save to ItemService and CharacterService

This commit is contained in:
2011-12-18 22:53:27 -02:00
parent 9e144ec9e1
commit e66ccd45ae
3 changed files with 15 additions and 11 deletions

View File

@@ -48,7 +48,9 @@ public class SM_NPC_INFO extends AbstractServerPacket {
buffer.writeInt(npc.getID().getID()); buffer.writeInt(npc.getID().getID());
buffer.writeInt(template.getID().getID() + 1000000); // npctype id 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().getX());
buffer.writeInt(npc.getPoint().getY()); buffer.writeInt(npc.getPoint().getY());
buffer.writeInt(npc.getPoint().getZ()); buffer.writeInt(npc.getPoint().getZ());

View File

@@ -249,7 +249,7 @@ public class CharacterServiceImpl extends AbstractService implements
eventDispatcher.dispatch(new CharacterEnterWorldEvent(character)); eventDispatcher.dispatch(new CharacterEnterWorldEvent(character));
// update character // update character
characterDao.save(character); characterDao.saveObjectsAsync(character);
} }
@Override @Override
@@ -263,7 +263,7 @@ public class CharacterServiceImpl extends AbstractService implements
eventDispatcher.dispatch(new CharacterLeaveWorldEvent(character)); eventDispatcher.dispatch(new CharacterLeaveWorldEvent(character));
character.setOnline(false); character.setOnline(false);
characterDao.save(character); characterDao.saveObjectsAsync(character);
} }
@Override @Override
@@ -328,7 +328,7 @@ public class CharacterServiceImpl extends AbstractService implements
} else { } else {
throw new ActorIsNotAttackableServiceException(); throw new ActorIsNotAttackableServiceException();
} }
characterDao.save(character); characterDao.saveObjectsAsync(character);
} }
@Override @Override
@@ -366,7 +366,7 @@ public class CharacterServiceImpl extends AbstractService implements
// notify the client. // notify the client.
eventDispatcher.dispatch(new CharacterStartMovingEvent(character, eventDispatcher.dispatch(new CharacterStartMovingEvent(character,
coordinate.toPoint())); coordinate.toPoint()));
characterDao.save(character); characterDao.saveObjectsAsync(character);
} }
@Override @Override
@@ -403,6 +403,8 @@ public class CharacterServiceImpl extends AbstractService implements
// TODO dispatch stop event // TODO dispatch stop event
} }
} }
characterDao.saveObjectsAsync(character);
} }
@Override @Override

View File

@@ -163,11 +163,11 @@ public class ItemServiceImpl extends AbstractService implements ItemService {
throws NotEnoughItemsServiceException { throws NotEnoughItemsServiceException {
synchronized (item) { synchronized (item) {
Item destroyItem = split(item, count); Item destroyItem = split(item, count);
itemDao.delete(destroyItem); itemDao.deleteObjectsAsync(destroyItem);
if (destroyItem.getOwnerID() != null) if (destroyItem.getOwnerID() != null)
destroyItem.getOwner().getInventory().remove(destroyItem); destroyItem.getOwner().getInventory().remove(destroyItem);
if (!destroyItem.equals(item)) if (!destroyItem.equals(item))
itemDao.save(item); itemDao.saveObjectsAsync(item);
return destroyItem.equals(item); return destroyItem.equals(item);
} }
} }
@@ -218,9 +218,9 @@ public class ItemServiceImpl extends AbstractService implements ItemService {
character.getInventory().add(item); character.getInventory().add(item);
this.items.remove(item); this.items.remove(item);
itemDao.save(item); itemDao.saveObjectsAsync(item);
if (!item.equals(originalItem)) { if (!item.equals(originalItem)) {
itemDao.save(originalItem); itemDao.saveObjectsAsync(originalItem);
} }
spawnService.unspawn(originalItem); spawnService.unspawn(originalItem);
eventDispatcher.dispatch(new ItemPickEvent(character, 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)) { if (!item.equals(sourceItem)) {
itemDao.save(sourceItem); itemDao.saveObjectsAsync(sourceItem);
} }
items.add(item); items.add(item);