Table of Contents

Enum GuildPermissions

Namespace
FishMMO.Shared
Assembly
FishMMO.Shared.dll

The individual powers a guild rank may hold.

[Flags]
public enum GuildPermissions : long

Fields

All = Invite | Kick | Promote | EditMessageOfTheDay | EditNotice | EditRanks | ManageBank | ManageApplications | Disband | EditRecruitment | ViewOfficerNotes | EditOfficerNotes | EditPublicNotes | TransferLeadership

Every currently defined permission.

Written out rather than as ~0. A stored -1 would 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.

Disband = 256

May disband the guild.

EditMessageOfTheDay = 8

May edit the message of the day.

EditNotice = 16

May edit the notice.

EditOfficerNotes = 2048

May write the officer-only note on a member.

EditPublicNotes = 4096

May write the public note on a member. Everyone may READ the public note.

EditRanks = 32

May rename ranks and change their permissions, below the holder's own rank.

EditRecruitment = 512

May edit the recruitment advertisement (blurb, tags, recruiting flag).

Invite = 1

May invite characters to the guild.

Kick = 2

May remove members ranked strictly below the holder.

ManageApplications = 128

May see and accept or decline recruitment applications.

ManageBank = 64

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.

None = 0

Holds nothing. The default rank's default.

Promote = 4

May move members between ranks strictly below the holder's own.

TransferLeadership = 8192

May hand leadership to another member. Costs the holder their own seat.

ViewOfficerNotes = 1024

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.