Class MapleFamily

java.lang.Object
handling.world.family.MapleFamily
All Implemented Interfaces:
Serializable

public class MapleFamily extends Object implements Serializable
家族(Family)系統的核心資料模型與持久化管理器。

一個家族由一位隊長(leaderid)與至少兩名成員組成, 成員以角色 ID 對應 MapleFamilyCharacter 存放於執行緒安全的 ConcurrentHashMap 中。 主要職責:

  • 從資料庫 familiescharacters 表載入家族結構,並修正孤立的 senior/junior 關係。
  • 持久化:writeToDB(boolean) 更新公告或在解散時刪除家族記錄; setOfflineFamilyStatusdatabase.Db 更新離線成員的家族欄位。
  • 成員管理:addFamilyMemberleaveFamilysplitFamilymergeFamily 處理成員加入/退出及家族分裂/合併,並透過 handling.world.World.Family 同步全局狀態。
  • 廣播:broadcast 透過 World.Broadcast.sendFamilyPacket 送達在線成員, 封包由 tools.packet.FamilyPackettools.packet.CWvsContext 組裝。
  • 聲望(Rep):setRep 對成員的 currentrep/totalrep 做等級加成計算後更新。

啟動時由 FamilyLoad 多執行緒並行建構; 家族 buff 由 MapleFamilyBuff 套用至成員。

See Also:
  • Field Details

  • Constructor Details

    • MapleFamily

      public MapleFamily(int fid)
  • Method Details

    • resetPedigree

      public void resetPedigree()
    • resetDescendants

      public void resetDescendants()
    • isProper

      public boolean isProper()
    • loadAll

      public static final void loadAll()
    • loadAll

      public static final void loadAll(Object toNotify)
    • writeToDB

      public final void writeToDB(boolean bDisband)
    • getId

      public final int getId()
    • getLeaderId

      public final int getLeaderId()
    • getNotice

      public final String getNotice()
    • getLeaderName

      public final String getLeaderName()
    • broadcast

      public final void broadcast(byte[] packet, List<Integer> cids)
    • broadcast

      public final void broadcast(byte[] packet, int exception, List<Integer> cids)
    • broadcast

      public final void broadcast(byte[] packet, int exceptionId, MapleFamily.FCOp bcop, List<Integer> cids)
    • setOnline

      public final void setOnline(int cid, boolean online, int channel)
    • setRep

      public final int setRep(int cid, int addrep, int oldLevel, String oldName)
    • addFamilyMemberInfo

      public final MapleFamilyCharacter addFamilyMemberInfo(MapleCharacter mc, int seniorid, int junior1, int junior2)
    • addFamilyMember

      public final int addFamilyMember(MapleFamilyCharacter mgc)
    • leaveFamily

      public final void leaveFamily(int id)
    • leaveFamily

      public final void leaveFamily(MapleFamilyCharacter mgc, boolean skipLeader)
    • setNotice

      public final void setNotice(String notice)
    • memberLevelJobUpdate

      public final void memberLevelJobUpdate(MapleCharacter mgc)
    • disbandFamily

      public final void disbandFamily()
    • getMFC

      public final MapleFamilyCharacter getMFC(int cid)
    • getMemberSize

      public int getMemberSize()
    • setOfflineFamilyStatus

      public static void setOfflineFamilyStatus(int familyid, int seniorid, int junior1, int junior2, int currentrep, int totalrep, int cid)
    • createFamily

      public static int createFamily(int leaderId)
    • mergeFamily

      public static void mergeFamily(MapleFamily newfam, MapleFamily oldfam)
    • splitFamily

      public boolean splitFamily(int splitId, MapleFamilyCharacter def)