1
0
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:
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(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());

View File

@@ -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

View File

@@ -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);