Class AbstractPlayerStore
java.lang.Object
server.maps.MapleMapObject
server.shops.AbstractPlayerStore
- All Implemented Interfaces:
IMaplePlayerShop
- Direct Known Subclasses:
HiredMerchant, MapleMiniGame, MaplePlayerShop
玩家自設商店(個人商店、精靈商人、五目棋/翻牌)的抽象基底類別。
繼承自 MapleMapObject,並實作 IMaplePlayerShop;
提供所有商店類型共用的核心狀態與行為:
- 以
WeakReference陣列管理最多 N 個訪客槽(避免強參照洩漏)。 - 以
AtomicInteger安全維護累積楓幣(meso)。 MaplePlayerShopItem清單儲存上架道具;BoughtItem記錄成交記錄。saveItems()將精靈商人剩餘道具持久化至hiredmerch資料庫表, 透過ItemLoader.HIRED_MERCHANT序列化。broadcastToVisitors系列方法將封包廣播至所有在場訪客(可排除特定槽位)。
MaplePlayerShop、HiredMerchant 與 MapleMiniGame,
由 PlayerInteractionHandler 依 opcode 分派建立與操作。-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected booleanprotected List<AbstractPlayerStore.BoughtItem> protected intprotected WeakReference<MapleCharacter>[]protected Stringprotected intprotected List<MaplePlayerShopItem> protected intprotected AtomicIntegerprotected booleanprotected intprotected intprotected Stringprotected StringFields inherited from interface IMaplePlayerShop
HIRED_MERCHANT, MATCH_CARD, OMOK, PLAYER_SHOP -
Constructor Summary
ConstructorsConstructorDescriptionAbstractPlayerStore(MapleCharacter owner, int itemId, String desc, String pass, int slots) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddItem(MaplePlayerShopItem item) voidaddVisitor(MapleCharacter visitor) voidbroadcastToVisitors(byte[] packet) voidbroadcastToVisitors(byte[] packet, boolean owner) voidbroadcastToVisitors(byte[] packet, int exception) byteintintgetItems()getMap()intintgetMeso()intintintgetSize()getType()getVisitor(int num) bytegetVisitorSlot(MapleCharacter visitor) booleanbooleanisOpen()booleanisOwner(MapleCharacter chr) voidremoveAllVisitors(int error, int type) voidremoveFromSlot(int slot) booleanremoveItem(int item) voidremoveVisitor(MapleCharacter visitor) booleanvoidsendDestroyData(MapleClient client) voidsendSpawnData(MapleClient client) voidsetAvailable(boolean b) voidsetMeso(int meso) voidsetOpen(boolean open) voidupdate()Methods inherited from class MapleMapObject
getObjectId, getPosition, getRange, getTruePosition, setObjectId, setPositionMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface IMaplePlayerShop
buy, closeShop, getShopType
-
Field Details
-
open
protected boolean open -
available
protected boolean available -
ownerName
-
des
-
pass
-
ownerId
protected int ownerId -
owneraccount
protected int owneraccount -
itemId
protected int itemId -
channel
protected int channel -
map
protected int map -
meso
-
chrs
-
visitors
-
bought
-
items
-
-
Constructor Details
-
AbstractPlayerStore
-
-
Method Details
-
getMaxSize
public int getMaxSize()- Specified by:
getMaxSizein interfaceIMaplePlayerShop
-
getSize
public int getSize()- Specified by:
getSizein interfaceIMaplePlayerShop
-
broadcastToVisitors
public void broadcastToVisitors(byte[] packet) - Specified by:
broadcastToVisitorsin interfaceIMaplePlayerShop
-
broadcastToVisitors
public void broadcastToVisitors(byte[] packet, boolean owner) -
broadcastToVisitors
public void broadcastToVisitors(byte[] packet, int exception) -
getMeso
public int getMeso()- Specified by:
getMesoin interfaceIMaplePlayerShop
-
setMeso
public void setMeso(int meso) - Specified by:
setMesoin interfaceIMaplePlayerShop
-
setOpen
public void setOpen(boolean open) - Specified by:
setOpenin interfaceIMaplePlayerShop
-
isOpen
public boolean isOpen()- Specified by:
isOpenin interfaceIMaplePlayerShop
-
saveItems
public boolean saveItems() -
getVisitor
-
update
public void update()- Specified by:
updatein interfaceIMaplePlayerShop
-
addVisitor
- Specified by:
addVisitorin interfaceIMaplePlayerShop
-
removeVisitor
- Specified by:
removeVisitorin interfaceIMaplePlayerShop
-
getVisitorSlot
- Specified by:
getVisitorSlotin interfaceIMaplePlayerShop
-
removeAllVisitors
public void removeAllVisitors(int error, int type) - Specified by:
removeAllVisitorsin interfaceIMaplePlayerShop
-
getOwnerName
- Specified by:
getOwnerNamein interfaceIMaplePlayerShop
-
getOwnerId
public int getOwnerId()- Specified by:
getOwnerIdin interfaceIMaplePlayerShop
-
getOwnerAccId
public int getOwnerAccId()- Specified by:
getOwnerAccIdin interfaceIMaplePlayerShop
-
getDescription
- Specified by:
getDescriptionin interfaceIMaplePlayerShop
-
getVisitors
- Specified by:
getVisitorsin interfaceIMaplePlayerShop
-
getItems
- Specified by:
getItemsin interfaceIMaplePlayerShop
-
addItem
- Specified by:
addItemin interfaceIMaplePlayerShop
-
removeItem
public boolean removeItem(int item) - Specified by:
removeItemin interfaceIMaplePlayerShop
-
removeFromSlot
public void removeFromSlot(int slot) - Specified by:
removeFromSlotin interfaceIMaplePlayerShop
-
getFreeSlot
public byte getFreeSlot()- Specified by:
getFreeSlotin interfaceIMaplePlayerShop
-
getItemId
public int getItemId()- Specified by:
getItemIdin interfaceIMaplePlayerShop
-
isOwner
- Specified by:
isOwnerin interfaceIMaplePlayerShop
-
getPassword
- Specified by:
getPasswordin interfaceIMaplePlayerShop
-
sendDestroyData
- Specified by:
sendDestroyDatain classMapleMapObject
-
sendSpawnData
- Specified by:
sendSpawnDatain classMapleMapObject
-
getType
- Specified by:
getTypein classMapleMapObject
-
getMCOwnerWorld
-
getMCOwnerChannel
-
getMCOwner
-
getMap
-
getGameType
public int getGameType()- Specified by:
getGameTypein interfaceIMaplePlayerShop
-
isAvailable
public boolean isAvailable()- Specified by:
isAvailablein interfaceIMaplePlayerShop
-
setAvailable
public void setAvailable(boolean b) - Specified by:
setAvailablein interfaceIMaplePlayerShop
-
getBoughtItems
- Specified by:
getBoughtItemsin interfaceIMaplePlayerShop
-