====== Types ====== This is a list of all data types that appear in Sock Chat packet fields. ===== bool ===== A value that indicates a true or a false state. ''%%0%%'' represents false and anything non-''%%0%%'' represents true, please stick to ''%%1%%'' for representing true though. ===== int ===== Any integer ranging from ''%%-9007199254740991%%'' to ''%%9007199254740991%%'', ''%%Number.MAX_SAFE_INTEGER%%'' and ''%%Number.MIN_SAFE_INTEGER%%'' in JavaScript. ===== string ===== Any UTF-8 codepoint, except ''%%\t%%'' which is used to separate packets. ===== collection ===== A set of [[#string|string]] values, separated by ''%%\f%%''. ===== timestamp ===== Extends [[#int|int]], contains the current UNIX timestamp as seconds since January 1st, 1970 0:00:00 UTC. ===== user name ===== A [[#string|string]] containing a user’s name. If the user currently has an AFK tag set through the ''%%/afk%%'', it is prefixed by ''%%<AFK>_%%''. The ''%%AFK%%'' text can be replaced by any text supplied to the ''%%/afk%%'' command as an argument, the original PHP Sock Chat and SharpChat force this text to uppercase and limit it to 5 unicode grapheme clusters. If prefixed by a ''%%~%%'', it is not the user’s actual name but a nick name. ===== channel name ===== A [[#string|string]] containing only alphanumeric characters (any case), ''%%-%%'' or ''%%_%%''. ===== colour ===== Any valid value for the CSS ''%%color%%'' property. Further documentation can be found [[https://developer.mozilla.org/en-US/docs/Web/CSS/color_value|on MDN]]. ===== message flags ===== Message flags alter how a message should be displayed to the client, these are all [[#bool|bool]] values. The parts are as follows: * Username should appear using a **bold** font. * Username should appear using a //cursive// font. * Username should appear __underlined__. * A colon ''%%:%%'' should be displayed between the username and the message. * The message was sent privately, directly to the current user. As an example, the most common message flagset is ''%%10010%%''. This indicates a bold username with a colon separator. ===== user perms ===== User permissions are a set of flags separated by either the form feed character (''%%\f%%'' / ''%%0x0C%%'') or a space (’ ’ / ''%%0x20%%''). The reason there are two options is due to a past mixup that we now have to live with. Which of the methods is used remains consistent per server however, so the result of a test can be cached. Note that this string MAY be empty if sent by the bot user (''%%-1%%''). ^ Type ^Description ^ | [[#int|int]] |Rank of the user. Used to determine what channels a user can access or what other users the user can moderate. | | [[#bool|bool]] |Indicates whether the user the ability kick/ban/unban others. | | [[#bool|bool]] |Indicates whether the user can access the logs. This should always be ''%%0%%'', unless the client has a dedicated log view that can be accessed without connecting to the chat server. | | [[#bool|bool]] |Indicates whether the user can set an alternate display name. | | [[#int|int]] |Indicates whether the user can create channel. If ''%%0%%'' the user cannot create channels, if ''%%1%%'' the user can create channels but they are to disappear when all users have left it and if ''%%2%%'' the user can create channels that permanently stay in the channel assortment.|