6,996 Commits over 2,802 Days - 0.10cph!
Limit the size of chat history to store in memory on the server
Configurable with the chat.historysize convar (default 1000)
▋▇▄▅▄█▌▄ ▄▄██▍ ▌▊▌ ▅▄▅▌▌ █▊▍▊▉
▉▆▄▆▌▉█▉ ▍▋▊▇▆▆ ▄▉▆▍▆▌▇▆ ▅▌▇▉ ▄▊ ▉▇▊▅▉ █▌▊▄▌▅▍▍ ▇▌▍ ▆▌ ▌▌▌▆ ▆▋▊▌▆▆▄▅▍ ▆▉ ▌▄▊ ▄▉▌▋ ▇█▉█▋▇▌▍▇▆▊
█▋▅▌ ▆▅▍█ ▊▆▊ ▉▌▍▌█ ▅▇ ▅▌▊▍▄▉ ▇▊ ▌ ▍▇▍▆ ▌▋ ▉█▉▇ ▍▋▉▅▅▅█▋▍▋█▌▍▋ (▊▅█▍█▋ ▊▉▉▇▍▄ ▋▍ ▋ ▋▆▉)
▇▄▅ ▉▊▊▉▌▉▋▇ ▍▇▄▇▆▊▊ ▇▊▍ ▋▋▇▅▆▆▄
█▉▄ ▆▉▍▉ ▍▉ ▅▉▌▇▊▅ ▌▆▊▍▌ ▋█▇ ▄█▉▉ ▉▆▋▇ ██▉▇ (▄▋ ▅▇ ▇▉ █▊█▅█▆ ▆▊)
▌▅▉ ▆█ ▆▍▅ ▍▋ ▍▇▍▊▋▋▄ █▌▇▄▅ (▄▆▉▆▆ ▌▌▍▍ ▇▇▍█▊▌▆▍▆▇ ▍▋ ▇█▄▉▋ ▍▋ ▄▄▇ ▌▉▊▄▆ ▊▅ ▄▅▆ ▄▌▉▄▄)
▆▅▍▌█ ▊▄ ▅█▋▋▉▊█▌▅▌ ▌▍█▇ ▋▉▉▊▌▅▅▊ ▊█▌▍▉
▉▌▌ ▆▊▋▌ ▇▆▇ █▄▉▉▇▄▆▍, ▊▉▊▉▉▇▆▊█, ▌█▋ ▆▍▊▅▍▄▇▉▅▅ ▉▍█▆ ▄▉▇▊▌▊█
█▆▇ ▌▄▆█▄
▄▇▄ ▌▉ ▄▉█▇/▊▆▋▊▌ █▍▊▄▇
▆▊▆▌ ▍▌ ▆▋▋▆▆▌/▌▌▉▅▌▉/▅▍▆▉/▅▍▍▊▍▋ ▊▋▇▅ ▍▌▆▇▋
▉▄▄ ▆▆▌▆ ▅▋ ▇▌▄▊ ▊█▉ ▄▅▋ ▉▇▌▇ ▍█▄▍
▌▄▌ ▍ ▊▅▇ ▇▉▄▋ ▍▋▍▋▅▆▄▋▄▅ ▍▊▍▋▉▌▇▊▊▅▋▅▌
▇▄▍█ ▅▍▇ ▆▌▉▇▅
▍▊▊ ▋▅▌ ▋▄ ▋▌█▍ ▆▅▇▍ ▊▌▍▄▌▌▉▊▆▌▌ ▋ ▊▌▄▄▊▉ ▉▅▋ ▍▉▆▍▄▄█▊
▍▅▄ ▉▇▊▄ ▉▆ ▇▅▄▍▉▆ ▍▍▇▍▌▇ ▇▊▊▅ ▅▋▆▊, ▄▋▋▄▄▆ ▊▌▆▇▆▍█▇▆, █▄▌ █▇▆▍▊▅ ▊▆▊▉ (▇▇▅▌▌▍▅/▊▇▄▌▆▊)
▄▋▄▊▌ ▍▄ █▆▄ ▇▇▍▇ ▅▄▊ █▌▊▅ █▍▅█▅▉ ▅▉▄▄▄▅▊ ▆▆ ▊█▌ ▇▉▄▅
▆▌▉▌▉▄▉ ▊▉▍▉▉▉▌▍▆▊ ▇▍▌▅ ▄▆▅▆▅▍█ ▅▊▉▅ ▄▇▊▆▍▆ ▄▄ ▄▇█▄ ▊▅▊'▇ ▋▆▅▍▊ ▆▄▆ ▉▇▊ ▇▄▅▉
▍███ ▆▅▊ ▇▇▇▌ ▌▋▉▆▉ ▄▉▉▋▌█ ▉█▋ ▇▇▋▉ ▊▊▄▌▌▉ ▊▆▋ ▇▆▄▍▋▊▌ █▆▋▇ ▌▉▌▉
█▊▉ ▌▍▊▍▋▍▋▋▋▌ ▍▌ ▄▊▇▇▆▇▊▍▊▍ ▊▇▄ ▊ ▇▋▄ ▋▉█▆▄▋ ▆▄▇ █▅▅▄ ▍▄██▋▋▉▆▊▅▋ ▊▌ ▌▇▆ ▍▅▉ ▄▊▍▇█▊ ▄▌▄▆▌▍█▌▊ ▄▉▍
▊▍▊ ▅▋ ▅▇▋ ▉▅ ▌▌▋█▇▊ ▄▇▄▋ ▍▋▋▌█▄▋▆▆ ▌▅▌▋ ▇▇▅ ▌▌▍▋ ▍▋▄ ▌▍▆██▉▌▋▇▄
▌▍▌ ▅▋▋▋▇▅█ ▋▍▄▄█▄▅▌▆█▆▋▆ ▊▍▍▆▉
▇▊█▄▌▌ ▍██ ▍▄▅▅▇▌▇▇ ▌▍▅ ▄▇█▄▉▍▋ ▅▊▅▆ ▌█▆▄█▍▊ ▅▆ ▅▍ ▉▅ ▋▄▆▍▍▌▇▄▄▅ █▄▆█ ▉▍▄▌▋ ▇▊▆▋▍▆-█▇▊▋▋▍▄ ▋▆▆▉
▊▌▆'▋ ▋▆▌▇▋ ▄▅▉▅▅▅▇▆ ▆█▉▇▆▊█▉▋▇▇ ▅█▆▄ ▅▄▇ ▆▊▍▉█▇ ▇▆▆▆
▌█▉ ▉▉▌▉ ▋▋▅█ ▅▋▆▄▌▉▆ ▇▌ ▅▇▅▌▌▋▆▋ ▄▅▍▄ ▇▆▊▇▋▋▉ ▉▋ ▆ █▌▌▅ ▌▋▉▊▌▅
▍█▄ ▉▆▋▋▌▉▌ ▋▉▅█ ▋█▉ ▋▄▋▊▋▅ ▍▌▇▍▋▌▉▅█ ▇▌▄ ▍▆▅▄▄▄▋ ▄ ▌▉▌▊█▇█▅▌▉▄ █▆▇▅▊
▍▋▍ ▍ ▄▊▇▆▇▇▌▆▇▊▄▋▍▋ ▆█▄▋█ ██ █▇▍▆ ▇▌▉▅ (▉▅▆▄▋▍ ▆, ▅▉ ▆▅█▆▋ ▅█▆ ▉▉▅)
▊▉▅▆▉ ▉▉▆█▄▍ '▉▆▅▌▉'
▆▄▇▍▉▉█▉ ▍▊▋▊▆ ▇▍▆ ▋█▅▉▋ ▆▉▊▉▍
▊▊▋█▉▆▄▉ ▊▊▌▊▄▋ ▇▇▊▌▋▍▍▆ ▅▊▆▅ ▇█ ▇▄▉▋▇ ▊▌▋▋▉▅█▉ ▊▊▆ █▅ ▇█▅█ ▉▊▌▊▍█▉▄▆ ▇▍ ▊▆▉ ▅▄▆▇ ▌▉▉▅▊▆▇▆▉▌▆
▅▋▌▆ ▍▉▌▍ ▋▋█ ▆▋▇▋█ ▍█ ▄▄▇▌▍▊ ▊▌ ▇ ▄▉▆▊ ▌▋ ▋▅▉▅ ▇▆▄▇▅▉▊▇▇▋▌▌▌█ (▌█▋▍▆▌ ▆▊▄▅▋▇ ▉▅ ▉ ▉▍▅)
▅▇▊ ▅▄▋▅▆▇▆▆ ▄▉▅▋▌▌█ ▍▌▌ ▋▌▊▆▍▉▌
▍▉▌ ▌▌▊▊ █▋ ▊█▍▋▍█ ▄▇▍▉▊ ▊▊▆ ▅▉▅▇ ▇▉▍▍ ▅▆▇▇ (▌█ █▆ ▍▉ ▆▄▅▄▍▅ ▌▇)
▋▇▇ ▇▍ ▆▆▆ ▊▆ ▋▆▆▍▌▊▇ ▋▇▊▊▊ (▌▊▊▄▇ ▊▅▅▊ ▍▉▄▋▊▊▋▇▅▄ ▉▋ ▆▉▊▆▆ ▅█ ▋▅▋ ▅▊▅█▊ ▊▌ ▌▊▅ ▉▉▋▋▆)
▆▆▄▉█ ▆▊ ▅▍▊▅▄▌▄█▊█ █▆▇▇ ▉▅▄▅█▆▇█ ▅▊▌▌▄
▄▍█ ▅▋██ ▉▆▌ █▉▄▌▅▉▅▄, █▇▌▊▄▄▇▍▍, ▆▊▋ ▍▇▅▋▄█▅▆▋▋ ▌▌▇▇ ▉▉██▆▌▄
▉▇▉ ▆▇▍█▌
▌▉▆ ▌▉ ▌▅▇▆/▋▊▇▌▇ ▊█▍▇▊
█▋██ ▄▌ ▊▇▍▊▉▊/▉▋█▌▆▊/▍▌▉▇/▅▆▋▉▉▅ ▆▊▄▆ ▄▆▍▄▇
▄▅▄ ▌█▅▊ ▋▄ ▄▊██ █▌▄ ▉▅▄ ▉▆▋▉ ▆█▅▇
▊▆▊ ▇ ▌▇▉ ▅█▌▍ ▄▆▉█▊█▍▋▋▆ ▆▆▉▅▌█▅▆▊▌█▇▌
▄▉█▋ ▌▅▍ ▆▇▅▉▄
▌▄▋ ▅▄▇ ▋█ ▅█▍▅ ▆▍▍▇ ▌▌▄▉▋██▍▅▊▅ ▊ ▋▍▌▅▍▄ ▍▇█ ▅▉█▊▌▊▉▉
▆▉▌ ▅▊█▉ ▄▄ ▇█▉▋▄█ ▆▅▊▆▉▌ ▆▆▍▉ ▍▋▆▊, ▍▌▋▍█▌ ▅▆█▅▉▇▄▍▊, ▉▋▋ ▅▅▆█▅█ ▍▊▄▇ (▌▉▊▊▆█▅/█▋▊▆▅▆)
▍▋▉▋▆ ▌▆ ▉█▌ ▅▊▄█ █▊▆ ▍▌▋▌ █▌█▌▄▉ ▌▆▋▄█▍▍ ▆▋ ▊▋▋ ▋▌▋▇
▋█▄▆▄▊▋ ▉▋█▇█▉▌▄▌▅ ▇█▇▊ ▋▋▊▅▅▊▍ █▅▄▍ ▄▄▄▍▌▌ █▅ █▆▇▄ ▊█▋'▌ ▊▍▉█▇ █▋▄ ▋▇▄ ▍▄▋▄
▉█▇▇ █▌▄ ▄▇▌▇ ▍▇▇▋▄ ▊█▋▇▉▊ ▉▊▊ ▇▍▆█ ▋▉▅▊▆▌ ▊▆▅ ▆▄▉▍▆▊▍ █▇▋▄ ▇██▆
█▉▍ ▌▋▋▅▌▌▉▉▆▆ ▆▅ ▉▅▌▉▅▋▋▊▇▍ ▊▅▄ ▆ ▆▅▇ ▄▍▆▋▍▋ █▇▅ ▆▋▇▋ █▋▆▅▆▌▉▌▇█▊ ▍▉ ▍▅▉ ▄▉▊ █▅▅▇▄█ ▉▇▇▅▍▉▄▆▉ █▌▍
▌▄▇ ▉█ ▋█▉ ▋▇ ▌▇▌▅▊▄ ▍▉▆█ ▅▋▊▉▆▋█▍▉ ▊▄█▆ ▊▆▉ ▇▌▊█ ▌▉▊ ▆█▍▇▌▌▍▇▍▆
▇▋▅ █▌▇▋▆█▍ ▅▇█▄▅▍▅▋▄▍▌▊▊ ▅▇▄▆▇
▊▅▊▇▄▆ ▌▌▅ ▄█▉▌▅█▉▉ ▍▄▍ ▅▍▊▅▆▄▇ ▋▅▄▄ ▋▅█▊▇▇▋ ▇▆ ▅▆ ▋▄ ▆█▄▋▅▄▉█▍▇ ▅▋██ ▄▍▌▅▊ ▅▄▊███-▅▅▋▊▌▋▌ ▅▊▌▌
▄▉▉'▅ █▊▌▌▆ ▍▌▍▊▇▇▄▊ ▊▄▊▄▉▆▄▌▋▌▅ ▊▆▉▌ ▉▆▍ ▇▉▉▊█▌ ▉▆▉▆
▆▅▆ █▊▆█ ▉▆▋█ ▇▉▆▊▋▊▆ ▍▇ ▍▇█▇▄▉▄▍ ▊▋█▆ ▋▋▊▊▉▋▍ ▄▅ ▆ ▆▉█▍ ▍▇▄▊▅▇
▇▅▇ ▌▋▌▇▄▆█ ▍▉▆▅ ▉▌▉ ▍▅▍▆▍▅ ▋▅▌▌▄▉▋▍▍ ▉▄▍ ▉█▋▍▊▇▌ ▋ ▋▆▋▆▇█▅▋▅█▆ ▅▇▍▉▋
▌▄▇ ▉ █▉▄▍▅▆▄▇▌▍▉▉▇▅ ███▊▉ ▊▇ ▍▋█▆ ▍▊▉▌ (▄▅▊▄▇▇ ▆, ▆▋ ▄▄▇▋▍ ▅▍▊ ▌▆▉)
Can now create clans from the clan UI when at the clan table
Remove the clan.create and clan.invite commands
Allow apostrophes and dashes in clan names
List clan members with their role in clan.info
Support limiting the number of members in a clan
Add a convar to control the clan member limit for the local backend
Update nexus clan implementation to pull the clan member limit from the nexus
Show max clan member count on clan UI if it is non-zero
Specific error text when trying to invite or join a clan that is full
▇█▇ ▇ ▅▋▉▆▅▋▄▆▆▋▋▇▋▆ ▇▇▇▄▋ ▅▇ ▋▇▊▅ ▊▉▍▇ (▅▅▄▄▋▍ ▋, ▆█ ▍▌▍▍▅ █▍█ ▋▌▇)
Add a MaxMemberCount field to clan info (always 0, no limit for now)
Fix clan banner color/logo not showing on the UI if one of them was not set yet
Fix old clan logos not clearing out when trying to edit the clan logo
Correctly sort the clan member list by their role's rank (local backend)
Fix creating clan members choosing the wrong default role, should be the lowest rank (local backend)
Don't create an officer role by default (local backend)
Hide the logs tab if the player doesn't have access to it
Show last seen down to the minute since we have online statuses now
Refresh clan info periodically while the UI is open so the online/last seen text updates
Maintain a list of user IDs that are connected across the nexus
Correctly set the online flag for clan members when they are online in a different zone (when running as a nexus)
Extend the fake steam ID function to allow disabling randomization (it'll be consistent depending on what unity project path is open)
██▍ ▌▋▆▌▌▆█ █▄▇▇ ▅▅▅ ▅█▍▇▉▍ ▍▍█▍▉▍▅▄▉ ▊▊▄ ▊█▅▉▍▌▌ ▆ ▆▄▍▍▄▊▊█▉▍▅ █▌▉▍▍
Get clan chat working between servers on the nexus
Always make the leader role have all permissions
Show a better error message when the clan leader tries to demote themself
Update FP.Nexus
Implement the remaining IClan methods
▋▇▇ ▌▊▍█ ▉▍▍▊ ▄▊▄▇▋▆█ ▄█ ▊▇▆▊▌▄▍▍ ▊▄▉▇ ▋▉▋▉▊▇█ ▌▍ ▆ █▊▉▉ ▅█▉▍▇▊
Fix incorrect error codes being returned when changing a clan member's role
Update FP.Nexus
Pull in clan info so the clan UI can render correctly now
Add an event for when a clan is unloaded
Add accessors for role and member variables
Fix roles never getting their name set
Update FP.Nexus
WIP nexus clan backend
Add the canAccessLogs permission
█▇▋'█ ▄▇█▆▍ ▇▋▉▆▄▉▉▊ ▅▋▇▌▋█▌▌▆▅▋ ▄▌▍▆ ▊▋▄ ▅▍▅▆▋▄ ▇█▋▆
Automatically handle clan events from the nexus
Expose clan events to consumers so they can do extra stuff if needed
Hook up all the clan functions
Refactor VariableUpdate so it's not annoying to use
▋▄▉▆▋▍█▅ ▉▇▋▆▄ ▉▇▅ ▋▄▋▍▋ ▄▉▇█▇
▋▊▄▉▌▅▅▌ ▉▌▍▇▆▉ ▊▆▍▅▅▋▆▆ ▆▆▄▍ ▉▋ ▉▊▉▆▌ ▇▅▌▄▍▉▉▅ ▆▄▉ ▅▇ ▋▅▆█ ▅█▅▊▄▉█▋▉ ▌▊ ▇▆▌ ▆▊▉▌ ▇▌▅▄▉▊▊▄▆▊▄
▊▅▇▉ ▅█▄▅ ▅▇▊ █▇▇▊▌ ▋▍ ▅▆█▋▍▋ ▇▆ ▅ ▌█▍▄ ▆▋ ▋▌▋▆ ▌▅▇▆▉█▉▋█▌▊▍▋▍ (▄▄▇▉▍▆ ▊▅▌▇▆▊ ▆▆ ▇ ▊▉█)
▍▊▍ ▌▋▄▌▇▇▄▍ ▇█▍▋▄▍▅ ▇▅▍ █▊▊▆▄▄▍
▆▆▇ ▋▆▆▄ ▅▍ ▅▇▇▊▊▌ ▉▆█▍▆ ▌▅▆ ▅▆█▉ █▄▇▉ ▋▄▍▅ (▅▊ ▅▅ ▆▌ ▊▄▋▌▄█ ▇▊)
▄▇▌ ▅▋ ▅▄▍ ▅█ ▌▊▉▄▊▉▊ ▇▋▉▊▍ (▅▇▊█▆ ▄▉▇▆ ▄▅▋▍▍▋▊▆▌▄ ▅▉ ▊▇▉▇▉ █▅ ▅▊▊ ▋▍▅▆█ █▇ ▌▍█ ▌▅▋▉▌)
▅▊▌▄▄ ▍█ ▉▇█▄▄▅▊▉▇▅ ▊▇▇▌ ▌▋▇▅▍▍▄▋ ▊█▉▄█
█▌▇ ▅▉▋▇ █▋▋ █▇▆▅█▅▊▉, █▅▄▆▌█▌▅▄, ▇▋▋ ▄█▄▊▆▋▍▄▄▉ ▄▇▅▄ ▍▋▋▋▊▉▄
▌▄▍ █▅▍▍▆
█▋▍ ▊▄ ▊▍▇▊/▍▊▆▊█ ▌▄▊▅▌
▉▅█▆ ▋▆ ▋▅█▄▅▄/▋▍▋▊▌▅/▊▅▇▍/█▄▌▍▆▇ ▇▅▍▌ ▄▅▇▅▄
█▅█ ▆▉█▆ ▉▌ ▍▆▍▌ ▍▌▍ ▄▉▉ ▊▇▇▋ ▍▇▋▆
▅▆▍ ▊ ▉▉▊ ▇▍▆▌ ▋█▆▉▍▄▄▇▉▅ ▄▌▄▉▋█▊▅██▌▋▆
▄▆▌▇ ▊▇▆ ▊▌▊▅▋
▅█▋ ▇▋▍ ▍▆ ▄▅▇▍ ▄▌▅▍ ▆▉▋▍▄▆▅▇▅▊▇ ▄ ▆▉▅▅▌▋ ▊▍▌ ▋▊▉▍█▅▍▌
▍▆▌ ▅▇▇▇ ▍▆ ▋▌▇█▆▄ ▊▍▄█▍▆ ▄▇▅▅ ▄▉▌▆, ▄▉▄▆█▅ ██▌▍▆▋▆▉▄, ▌▊█ █▊▍▍█▊ ▍▊▌▍ (▋▄▆▋▉▊▆/▅▋▅▍▄▊)
▅▄▅▆▅ ▍█ ▇▇█ ▊▅▅▇ ▄▅█ ▆▌▆█ ▊▌▊▉▆▊ ▇▌▄▉█▇▍ ▋▌ ▇█▌ ▋█▊█
▉▉▊▇▇▅▄ ▇▍▅▋▅▉▆█▋▌ ▆▅█▆ ▍▆▋▆▉▅▋ ▍█▄▌ ▌▆▆▄▌▍ ▆▅ ▋▊▊▆ ▉▌▅'▊ ▌▋▍█▆ ▅▅▊ ▇▌▅ ▋▄▇▇
█▄▍▇ ▇▄▇ ▌▍▄▍ ▋▊▇▄▆ ▇▇▉▌▆▉ ▊▊▊ ▄▊▋▄ ▌█▅█▆▅ ▅▊█ ▌▉█▌▍█▆ █▉▆▇ ▊▋▇█
█▅▍ █▆▊▆▇▊▋▅▉▌ ▆▇ ▆▌▉▌▉▍█▇▉▆ ▇▆█ ▇ ██▄ ▅▊▄▅▅▋ ▇▌▉ ▅▌▄▌ ▍▇▅▆▄█▄▌▌▉▄ ▋▇ ▆▍▇ ▌▄▅ ▇▄█▆▆▅ ▄▅▆▄▍▋▉▆▋ ▆▍▅
▆▇▄ ▇▆ ▆▄▄ ▇▌ ██▉▋▅▊ ▊▌▉▅ ▌▄▄▆▌▌▍▋█ █▊▍▄ ▅▉▊ ▅▄▋▅ ▆▆▋ ▆▊▋█▅▉▌▉▍▋
▌▇▅ ▇▋██▆▆▉ ▍▅▉█▇▆██▊▄▇▍▊ ▇▌▉▄▇
▌▅▉▌▋▅ ▅▌█ ▇█▉▇▍▍▊▌ ▄▅▇ ▅▍▅▇▍▌█ ▍▋▌█ ▅█▄█▅▄▄ █▇ ▆▉ ▋▅ ▄▅▊▇▍▍█▋█▊ ▅▍▄▅ ▍▌▋▆▄ ▊▍▆▅▆▉-▌▊▋▊▌▅▉ ▅▍▇▌
▅▌▌ ▄▇▄▍▊█▍ ▄█▇▄▊▉▆█▊▉▉▌█ ▍▇▋▍▄
▋▋█▍▋▋ ▅▋▅ ▋▄▍▍▄▇▄▊ ▍▍▆ ▅▅▌▉▌▉▇ ▇▇▍▊ ▉▅▍▌▊▉▄ ▋▉ ▌▌ ▇▉ ▇▊▊▉██▇█▋▊ ▌▊▌▍ ▅▅█▌▇ ▆▄█▌▍▅-▋█▉▅▇▇▆ ▋▇▅▅
Progress on clans implementation
▌▋▄'▍ ▉▄▋▇▌ "▊█▇ ▆▍▊ ▌▆█ ▊█▊▄▄▉▊▆▍▄" ▇▍ ▄ ██▄▋▆ ▌██
WIP setting up the NexusZoneClient to provide access to clans
Connector functions for calling all of the new clan APIs
Refactor API calls to return the ApiResult (which has the status code and response if there is one)
API calls no longer automatically throw for non-2xx responses
Update nexus/zone/player variable set calls to reflect API changes
▌▌▌ ▋▇▋▍▊▇█▅▆▇ ▆▇ ▋█▌▊▆▅▆▊▉▍ ▅▆▉ ▆ ▆▌▋ ▉▆▋▉▉▆ ▋▍▄ ▄▅▊▅ ▌▌▅▌▌▌▋▉▌▉▉ ▅▇ ▋▆▉ ██▅ ▊█▊▄▉▌ ▅▆▅▋▅▅▅▍▇ ▅▇▄
▋▇▇ ▄▅ ▋▋▅ ▇▆ ███▊▉▄ ▄▊▅▌ ▊▍▋▉▊▌▊▇█ ▆▍▊▍ █▋▅ ▋▉▇▍ ▆██ ▍▌▊▇▉▉▄▌▋▍
Allow specifying a custom content type for messages
Provide the message content type when receiving messages
▇▍▋▄ ▄▅▊ ▅▍▇▍ ▍▆▋▆▌ ▅▄▉▄▋▉ ▅█▊ ▆▊▊▇ ▋▋▍▇▆▊ █▄▅ ▆▆▋▆█▇▉ ▅▋▅▉ ████
▆▇▇▊▅▇▋ ▅▋▊▉▇▌▊▌▊▇ ▋▉▆▉ ▄▋▋█▍▍█ ▌▅▄▇ ▉▅▍▇█▋ ▌▄ ▆▊▇▅ ██▅'▅ ▇▆▆▉▍ ▋▉▅ ▉▉▆ ▅█▆▇
▋▄▊█▊ ▉▆ ▊▊▆ ▋▉▅▅ ▅▄▍ ▅▉▍▇ ▌▊█▇▆▄ ▌▉▇▊▅▅▅ ▊▆ ▊▅▋ ▉█▇▋
▊▌▌ ▉▌▄█ ▊▅ ▌▌██▄▇ ▉▆▊█▇▌ ▌▍▄▍ ▊▊▇█, ▅▅▄▉▄▆ ▅▆▇▄▆▇▆█▉, ▌▄█ ▄▌▉▊▆▇ ▋▉▌▍ (▌▊▅▇▅▆▍/▊▋▌▇▌▆)
▆▄▅ ▍▍▄ ▋▉ ▆▆▊█ █▋▉▉ ▇▍▊▉▇▅▅▊▊▉▊ ▊ ▋▊▉▆▌█ ▌▇▆ ▋▄▍▆█▌▇▅
▅▉▋ ▉▄▇▌ ▉▍ █▆▍▄ ▋▅▆ █▋▊ ▌▄▊▋ ▍█▆▍
█▆▍ ▌ ▊▄▇ ▅▆▊█ ▋▋▋▍▋▄▄▌▍▄ ▇▌▍▉▇▇▆▉▋▋▄▌█
█▇▍▊ ▉▍▊ ▉▍▊▄▄