Enum GuildPermissions
The individual powers a guild rank may hold.
[Flags]
public enum GuildPermissions : long
Fields
Every currently defined permission.
Written out rather than as
~0. A stored-1would silently acquire every permission added afterwards, which is exactly the behaviour a leader wants and exactly the behaviour nobody else should get by accident — and it would also make an equality comparison against this constant fail the moment a flag is appended.May disband the guild.
May edit the message of the day.
May edit the notice.
May write the officer-only note on a member.
May write the public note on a member. Everyone may READ the public note.
May rename ranks and change their permissions, below the holder's own rank.
May edit the recruitment advertisement (blurb, tags, recruiting flag).
May invite characters to the guild.
May remove members ranked strictly below the holder.
May see and accept or decline recruitment applications.
May withdraw from and administer the guild bank.
Reserved. The guild bank (E9) is a separate agent's work and is blocked behind the item persistence rework; the flag is defined now so that the bank does not have to widen the permission mask — and therefore re-migrate every guild — when it lands.
Holds nothing. The default rank's default.
May move members between ranks strictly below the holder's own.
May hand leadership to another member. Costs the holder their own seat.
May read the officer-only note on a member.
Remarks
This replaces GuildRank as the thing every server-side permission check consults. The enum remains, but only as the identity of the three DEFAULT ranks a guild is seeded with — it no longer decides anything.
Stored as a 64-bit integer in guild_rank.permissions. The width is deliberate: a
32-bit mask would be two thirds spent already, and widening a column that every permission
check reads is not a migration anybody wants to run twice. Values are explicit rather than
1 << n so that reordering the members can never silently re-map a stored mask.
New flags must be APPENDED. A guild's stored mask is a set of bit positions, and inserting a value in the middle would hand every existing rank a permission its members never had.