Class MTSStorage
java.lang.Object
server.MTSStorage
楓之谷交易所(MTS)的全域在記憶體儲存層,管理所有上架商品與玩家購物車的讀寫與定期同步。
本類別為全域單例(getInstance()),在 CashShopServer 啟動時由 load()
初始化。核心資料結構:
buyNow(packageId →MTSStorage.MTSItemInfo):全伺服器立即購買清單, 以ReentrantReadWriteLock保護。idToCart(characterId →MTSCart):各玩家購物車快取, 以獨立的cart_mutex保護。
主要操作:addToBuyNow(MTSCart, Item, int, int, String, long) 上架商品、removeFromBuyNow(int, int, boolean) 購買/下架、
getCart(int) 取得或建立玩家購物車、saveBuyNow(boolean) 批次持久化(含清除到期商品並
退回轉移背包)、checkExpirations() 每小時觸發一次儲存。
封包組裝委由 tools.packet.MTSCSPacket;稅金計算使用
constants.ServerConstants 的 MTS_BASE 與 MTS_TAX。
靜態內部類 MTSStorage.MTSItemInfo 保存單筆上架商品(道具、售價、賣家、到期時間)。
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal voidaddToBuyNow(MTSCart cart, Item item, int price, int cid, String seller, long expiration) final booleancheck(int packageid) final booleancheckCart(int packageid, int charID) final voidgetBuyNow(int type) final MTSCartgetCart(int characterId) final byte[]getCurrentMTS(MTSCart cart) final byte[]getCurrentNotYetSold(MTSCart cart) final byte[]getCurrentTransfer(MTSCart cart, boolean changed) static final MTSStoragefinal List<MTSStorage.MTSItemInfo> getMultiItems(List<Integer> items, int pageNumber) final MTSStorage.MTSItemInfogetSingleItem(int packageid) static final voidload()final booleanremoveFromBuyNow(int id, int cidBought, boolean check) final voidsaveBuyNow(boolean isShutDown)
-
Constructor Details
-
MTSStorage
public MTSStorage()
-
-
Method Details
-
getInstance
-
load
public static final void load() -
check
public final boolean check(int packageid) -
checkCart
public final boolean checkCart(int packageid, int charID) -
getSingleItem
-
addToBuyNow
-
removeFromBuyNow
public final boolean removeFromBuyNow(int id, int cidBought, boolean check) -
saveBuyNow
public final void saveBuyNow(boolean isShutDown) -
checkExpirations
public final void checkExpirations() -
getCart
-
getCurrentMTS
-
getCurrentNotYetSold
-
getCurrentTransfer
-
getMultiItems
-
getBuyNow
-
getSearch
-