Save offline traders in real time.
This commit is contained in:
@@ -44,6 +44,7 @@ import com.l2jserver.gameserver.LoginServerThread.SessionKey;
|
||||
import com.l2jserver.gameserver.ThreadPoolManager;
|
||||
import com.l2jserver.gameserver.datatables.CharNameTable;
|
||||
import com.l2jserver.gameserver.datatables.ClanTable;
|
||||
import com.l2jserver.gameserver.datatables.OfflineTradersTable;
|
||||
import com.l2jserver.gameserver.datatables.SecondaryAuthData;
|
||||
import com.l2jserver.gameserver.instancemanager.AntiFeedManager;
|
||||
import com.l2jserver.gameserver.model.CharSelectInfoPackage;
|
||||
@@ -804,6 +805,12 @@ public final class L2GameClient extends MMOClient<MMOConnection<L2GameClient>> i
|
||||
getActiveChar().setOfflineStartTime(System.currentTimeMillis());
|
||||
}
|
||||
|
||||
// Store trade on exit, if realtime saving is enabled.
|
||||
if (Config.STORE_OFFLINE_TRADE_IN_REALTIME)
|
||||
{
|
||||
OfflineTradersTable.onTransaction(getActiveChar(), false, true);
|
||||
}
|
||||
|
||||
final LogRecord record = new LogRecord(Level.INFO, "Entering offline mode");
|
||||
record.setParameters(new Object[]
|
||||
{
|
||||
|
@@ -24,6 +24,7 @@ import com.l2jserver.gameserver.cache.HtmCache;
|
||||
import com.l2jserver.gameserver.datatables.AdminTable;
|
||||
import com.l2jserver.gameserver.datatables.AnnouncementsTable;
|
||||
import com.l2jserver.gameserver.datatables.BeautyShopData;
|
||||
import com.l2jserver.gameserver.datatables.OfflineTradersTable;
|
||||
import com.l2jserver.gameserver.datatables.SkillTreesData;
|
||||
import com.l2jserver.gameserver.enums.Race;
|
||||
import com.l2jserver.gameserver.instancemanager.CHSiegeManager;
|
||||
@@ -575,6 +576,11 @@ public class EnterWorld extends L2GameClientPacket
|
||||
activeChar.sendPacket(ExNotifyPremiumItem.STATIC_PACKET);
|
||||
}
|
||||
|
||||
if ((Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) && Config.STORE_OFFLINE_TRADE_IN_REALTIME)
|
||||
{
|
||||
OfflineTradersTable.onTransaction(activeChar, true, false);
|
||||
}
|
||||
|
||||
activeChar.broadcastUserInfo();
|
||||
|
||||
if (BeautyShopData.getInstance().hasBeautyData(activeChar.getRace(), activeChar.getAppearance().getSexType()))
|
||||
|
@@ -22,6 +22,7 @@ import static com.l2jserver.gameserver.model.actor.L2Npc.INTERACTION_DISTANCE;
|
||||
import javolution.util.FastSet;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.OfflineTradersTable;
|
||||
import com.l2jserver.gameserver.enums.PrivateStoreType;
|
||||
import com.l2jserver.gameserver.model.ItemRequest;
|
||||
import com.l2jserver.gameserver.model.L2Object;
|
||||
@@ -153,6 +154,12 @@ public final class RequestPrivateStoreBuy extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
// Update offline trade record, if realtime saving is enabled
|
||||
if (Config.OFFLINE_TRADE_ENABLE && Config.STORE_OFFLINE_TRADE_IN_REALTIME && ((storePlayer.getClient() == null) || storePlayer.getClient().isDetached()))
|
||||
{
|
||||
OfflineTradersTable.onTransaction(storePlayer, storeList.getItemCount() == 0, false);
|
||||
}
|
||||
|
||||
if (storeList.getItemCount() == 0)
|
||||
{
|
||||
storePlayer.setPrivateStoreType(PrivateStoreType.NONE);
|
||||
|
@@ -21,6 +21,7 @@ package com.l2jserver.gameserver.network.clientpackets;
|
||||
import static com.l2jserver.gameserver.model.actor.L2Npc.INTERACTION_DISTANCE;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.OfflineTradersTable;
|
||||
import com.l2jserver.gameserver.enums.PrivateStoreType;
|
||||
import com.l2jserver.gameserver.model.ItemRequest;
|
||||
import com.l2jserver.gameserver.model.L2World;
|
||||
@@ -138,6 +139,12 @@ public final class RequestPrivateStoreSell extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
// Update offline trade record, if realtime saving is enabled
|
||||
if (Config.OFFLINE_TRADE_ENABLE && Config.STORE_OFFLINE_TRADE_IN_REALTIME && ((storePlayer.getClient() == null) || storePlayer.getClient().isDetached()))
|
||||
{
|
||||
OfflineTradersTable.onTransaction(storePlayer, storeList.getItemCount() == 0, false);
|
||||
}
|
||||
|
||||
if (storeList.getItemCount() == 0)
|
||||
{
|
||||
storePlayer.setPrivateStoreType(PrivateStoreType.NONE);
|
||||
|
Reference in New Issue
Block a user