Save offline traders in real time.

This commit is contained in:
mobius
2015-01-02 12:18:31 +00:00
parent 13dc95d50b
commit 0a69033fa0
8 changed files with 143 additions and 4 deletions

View File

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

View File

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

View File

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