Class BuddyList
java.lang.Object
client.BuddyList
- All Implemented Interfaces:
Serializable
角色好友清單的記憶體模型,負責管理好友集合與資料庫持久化。
以容量上限管理 BuddylistEntry 物件的 LinkedHashMap,
提供新增、移除、依 ID 或名稱查詢、待處理邀請(pending)佇列,以及 changed
旗標供存檔判斷。
主要協作關係:
- 由
MapleCharacter透過CharacterSocialManager持有一個實例。 loadFromDb(int)透過DatabaseConnection讀取buddies資料表;loadFromTransfer(java.util.Map)於頻道轉移(CharacterTransfer) 時從序列化資料還原。addBuddyRequest(MapleClient, int, String, int, int, int)呼叫BuddylistPacket發送封包通知客戶端。
列舉 BuddyOperation 表示好友清單操作類型(新增/刪除),
BuddyAddResult 表示新增結果(清單已滿/已在清單/成功)。
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumstatic enum -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddBuddyRequest(MapleClient c, int cidFrom, String nameFrom, int channelFrom, int levelFrom, int jobFrom) booleanchanged()booleancontains(int characterId) booleancontainsVisible(int characterId) get(int characterId) int[]bytebooleanisFull()voidloadFromDb(int characterId) voidloadFromTransfer(Map<CharacterNameAndId, Boolean> data) voidput(BuddylistEntry entry) voidremove(int characterId) voidsetCapacity(byte capacity) voidsetChanged(boolean v)
-
Constructor Details
-
BuddyList
public BuddyList(byte capacity)
-
-
Method Details
-
contains
public boolean contains(int characterId) -
containsVisible
public boolean containsVisible(int characterId) -
getCapacity
public byte getCapacity() -
setCapacity
public void setCapacity(byte capacity) -
get
-
get
-
put
-
remove
public void remove(int characterId) -
getBuddies
-
isFull
public boolean isFull() -
getBuddyIds
public int[] getBuddyIds() -
loadFromTransfer
-
loadFromDb
- Throws:
SQLException
-
addBuddyRequest
public void addBuddyRequest(MapleClient c, int cidFrom, String nameFrom, int channelFrom, int levelFrom, int jobFrom) -
setChanged
public void setChanged(boolean v) -
changed
public boolean changed()
-