Class MapleGuild
java.lang.Object
handling.world.guild.MapleGuild
- All Implemented Interfaces:
Serializable
公會的核心記憶體模型,負責成員管理、公會技能、BBS 討論串及資料庫持久化。
從 guilds 與 characters 資料表載入公會完整狀態,維護一份
CopyOnWriteArrayList 的 MapleGuildCharacter 成員清單,
以及公會技能(Map<Integer, MapleGuildSkill>)與 BBS 討論串(Map<Integer, MapleBBSThread>)。
- 成員加入/離開/踢出、公會徽章修改、公告更新、排名頭銜變更均在此處理,
並透過
World.Guild廣播封包給線上成員。 - 公會技能的購買與啟用由
MapleGuildSkill表示, 啟用時透過MapleCharacter套用MapleStatEffect。 writeToDB將公會狀態(包含成員階級、技能、BBS)批次寫回資料庫。- 聯盟所屬以
allianceid關聯至MapleGuildAlliance; 封包組裝委由GuildPacket及AlliancePacket。
以 ReentrantReadWriteLock 保護成員清單的並發存取;
由 GuildLoad 在啟動時並行建構,並由 World.Guild 以公會 ID 為鍵快取。
- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionMapleGuild(int guildid) MapleGuild(int guildid, Map<Integer, Map<Integer, MapleBBSThread.MapleBBSReply>> replies) -
Method Summary
Modifier and TypeMethodDescriptionbooleanactivateSkill(int skill, String name) final voidaddBBSReply(int localthreadid, String text, int posterID) final intaddBBSThread(String title, String text, int icon, boolean bNotice, int posterID) final intfinal intaddGuildMember(MapleGuildCharacter mgc, boolean show) final voidfinal voidallianceChat(String name, int cid, String msg) final voidbroadcast(byte[] packet) final voidbroadcast(byte[] packet, int exception) final voidbroadcast(byte[] packet, int exceptionId, handling.world.guild.MapleGuild.BCOp bcop) final intfinal voidfinal voidchangeARank(boolean leader) final voidchangeARank(int newRank) final booleanchangeARank(int cid, int newRank) final voidchangeGuildLeader(int cid) final booleanchangeRank(int cid, int newRank) final voidchangeRankTitle(String[] ranks) static final intcreateGuild(int leaderId, String name) final voiddeleteBBSReply(int localthreadid, int replyid, int posterID, int guildRank) final voiddeleteBBSThread(int localthreadid, int posterID, int guildRank) final voidfinal voideditBBSThread(int localthreadid, String title, String text, int icon, int posterID, int guildRank) final voidexpelMember(MapleGuildCharacter initiator, String name, int cid) final voidgainGP(int amount) final voidgainGP(int amount, boolean broadcast) final voidgainGP(int amount, boolean broadcast, int cid) intfinal List<MapleBBSThread> getBBS()final intfinal intgetGP()final intgetId()intfinal MapleCharacterfinal intintgetLevel()final intgetLogo()final intfinal intfinal intfinal MapleGuildCharactergetMGC(int cid) final StringgetName()final Stringfinal StringgetRankTitle(int rank) final intintgetSkillLevel(int sid) final voidbooleanhasSkill(int id) final booleanincreaseCapacity(boolean trueMax) final booleanisInit()booleanisProper()final voidstatic final voidloadAll()static final voidfinal voidbooleanpurchaseSkill(int skill, String name, int cid) static final MapleGuildResponsesendInvite(MapleClient c, String targetName) voidsetAllianceId(int a) final voidsetGuildEmblem(short bg, byte bgcolor, short logo, byte logocolor) final voidsetGuildNotice(String notice) voidsetInvitedId(int iid) final voidsetLogo(int l) final voidsetLogoBG(int bg) final voidsetLogoBGColor(int c) final voidsetLogoColor(int c) static voidsetOfflineGuildStatus(int guildid, byte guildrank, int contribution, byte alliancerank, int cid) final voidsetOnline(int cid, boolean online, int channel) final voidwriteToDB(boolean bDisband)
-
Field Details
-
serialVersionUID
public static final long serialVersionUID- See Also:
-
-
Constructor Details
-
MapleGuild
public MapleGuild(int guildid) -
MapleGuild
-
-
Method Details
-
isProper
public boolean isProper() -
loadAll
public static final void loadAll() -
loadAll
-
writeToDB
public final void writeToDB(boolean bDisband) -
getId
public final int getId() -
getLeaderId
public final int getLeaderId() -
getLeader
-
getGP
public final int getGP() -
getLogo
public final int getLogo() -
setLogo
public final void setLogo(int l) -
getLogoColor
public final int getLogoColor() -
setLogoColor
public final void setLogoColor(int c) -
getLogoBG
public final int getLogoBG() -
setLogoBG
public final void setLogoBG(int bg) -
getLogoBGColor
public final int getLogoBGColor() -
setLogoBGColor
public final void setLogoBGColor(int c) -
getNotice
-
getName
-
getCapacity
public final int getCapacity() -
getSignature
public final int getSignature() -
broadcast
public final void broadcast(byte[] packet) -
broadcast
public final void broadcast(byte[] packet, int exception) -
broadcast
public final void broadcast(byte[] packet, int exceptionId, handling.world.guild.MapleGuild.BCOp bcop) -
setOnline
public final void setOnline(int cid, boolean online, int channel) -
guildChat
-
allianceChat
-
getRankTitle
-
getAllianceId
public int getAllianceId() -
getInvitedId
public int getInvitedId() -
setInvitedId
public void setInvitedId(int iid) -
setAllianceId
public void setAllianceId(int a) -
createGuild
-
addGuildMember
-
addGuildMember
-
leaveGuild
-
expelMember
-
changeARank
public final void changeARank() -
changeARank
public final void changeARank(boolean leader) -
changeARank
public final void changeARank(int newRank) -
changeARank
public final boolean changeARank(int cid, int newRank) -
changeGuildLeader
public final void changeGuildLeader(int cid) -
changeRank
public final boolean changeRank(int cid, int newRank) -
setGuildNotice
-
memberLevelJobUpdate
-
changeRankTitle
-
disbandGuild
public final void disbandGuild() -
setGuildEmblem
public final void setGuildEmblem(short bg, byte bgcolor, short logo, byte logocolor) -
getMGC
-
increaseCapacity
public final boolean increaseCapacity(boolean trueMax) -
gainGP
public final void gainGP(int amount) -
gainGP
public final void gainGP(int amount, boolean broadcast) -
gainGP
public final void gainGP(int amount, boolean broadcast, int cid) -
getSkills
-
getSkillLevel
public int getSkillLevel(int sid) -
activateSkill
-
purchaseSkill
-
getLevel
public int getLevel() -
calculateLevel
public final int calculateLevel() -
addMemberData
-
sendInvite
-
getMembers
-
isInit
public final boolean isInit() -
getBBS
-
addBBSThread
-
editBBSThread
-
deleteBBSThread
public final void deleteBBSThread(int localthreadid, int posterID, int guildRank) -
addBBSReply
-
deleteBBSReply
public final void deleteBBSReply(int localthreadid, int replyid, int posterID, int guildRank) -
hasSkill
public boolean hasSkill(int id) -
setOfflineGuildStatus
public static void setOfflineGuildStatus(int guildid, byte guildrank, int contribution, byte alliancerank, int cid)
-