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:
@@ -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());
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user