Direct almost all chr saving through CharacterSaver

Client#disconnectInternal remains.
Had to remove some configurable save points to keep it simple.
This commit is contained in:
P0nk
2023-08-04 16:05:10 +02:00
parent e52f646558
commit 4e39142fb3
18 changed files with 122 additions and 152 deletions

View File

@@ -27,6 +27,7 @@ import client.inventory.Equip;
import client.inventory.Item;
import client.processor.action.BuybackProcessor;
import config.YamlConfig;
import database.character.CharacterSaver;
import net.AbstractPacketHandler;
import net.packet.InPacket;
import net.server.Server;
@@ -45,6 +46,12 @@ import java.util.List;
public final class EnterMTSHandler extends AbstractPacketHandler {
private final CharacterSaver chrSaver;
public EnterMTSHandler(CharacterSaver chrSaver) {
this.chrSaver = chrSaver;
}
@Override
public final void handlePacket(InPacket p, Client c) {
Character chr = c.getPlayer();
@@ -105,7 +112,7 @@ public final class EnterMTSHandler extends AbstractPacketHandler {
chr.forfeitExpirableQuests();
chr.cancelQuestExpirationTask();
chr.saveCharToDB();
chrSaver.save(chr);
c.getChannelServer().removePlayer(chr);
chr.getMap().removePlayer(c.getPlayer());
@@ -276,4 +283,4 @@ public final class EnterMTSHandler extends AbstractPacketHandler {
}
return items;
}
}
}