### JoinRoom Source: https://nicotine-plus.org/doc/SLSKPROTOCOL.html Used to join a chatroom. If the room does not exist, it is created. The server responds with room details and user information. ```APIDOC ## JoinRoom ### Description We send this message to the server when we want to join a room. If the room doesn’t exist, it is created. Server responds with this message when we join a room. Contains users list with data on everyone. As long as we’re in the room, the server will automatically send us status/stat updates for room users, including ourselves, in the form of GetUserStatus and GetUserStats messages. Room names must meet certain requirements, otherwise the server will send a MessageUser message containing an error message. Requirements include: * Non-empty string * Only ASCII characters * 24 characters or fewer * No leading or trailing spaces * No consecutive spaces ### Data Order * Send 1. **string** _room_ 2. **uint32** _private_ If the room doesn’t exist, should the new room be private? * Receive 1. **string** _room_ 2. **uint32** _number of users in room_ For private rooms, also contain owner and operators 3. Iterate for _number of users_ 1. **string** _username_ 4. **uint32** _number of statuses_ 5. Iterate for _number of statuses_ 1. **uint32** _status_ 6. **uint32** _number of user stats_ 7. Iterate for _number of user stats_ 1. **uint32** _avgspeed_ 2. **uint32** _uploadnum_ 3. **uint32** _unknown_ 4. **uint32** _files_ 5. **uint32** _dirs_ 8. **uint32** _number of slotsfull_ 9. Iterate for _number of slotsfull_ 1. **uint32** _slotsfull_ Boolean value `1` or `0`, see UploadSlotsFull 10. **uint32** _number of user countries_ 11. Iterate for _number of user countries_ 1. **string** _countrycode_ Uppercase country code 12. If private room 1. **string** _owner_ 2. **uint32** _number of operators in room_ 3. Iterate for _number of operators_ 1. **string** _operator_ ``` -------------------------------- ### GetUserStatus Source: https://nicotine-plus.org/doc/SLSKPROTOCOL.html The server informs clients about a user's online status (away or returned). ```APIDOC ## GetUserStatus ### Description The server tells us if a user has gone away or has returned. ### Data Order * Send 1. **string** _username_ * Receive 1. **string** _username_ 2. **uint32** _status_ See User Status Codes 3. **bool** _privileged_ ``` -------------------------------- ### SayChatroom Source: https://nicotine-plus.org/doc/SLSKPROTOCOL.html Allows users to send messages within a chatroom or relays messages sent by others. ```APIDOC ## SayChatroom ### Description Either we want to say something in the chatroom, or someone else did. ### Data Order * Send 1. **string** _room_ 2. **string** _message_ * Receive 1. **string** _room_ 2. **string** _username_ 3. **string** _message_ ``` -------------------------------- ### UnignoreUser Source: https://nicotine-plus.org/doc/SLSKPROTOCOL.html OBSOLETE: Used to indicate that a user is no longer being ignored. The server also notifies when a user is unignored. ```APIDOC ## UnignoreUser ### Description **OBSOLETE, no longer functional** We send this to the server to tell a user we are no longer ignoring them. The server tells us a user is no longer ignoring us. ### Data Order * Send 1. **string** _username_ * Receive 1. **string** _username_ ``` -------------------------------- ### IgnoreUser Source: https://nicotine-plus.org/doc/SLSKPROTOCOL.html OBSOLETE: Used to indicate that a user is being ignored. The server also notifies when a user is ignored. ```APIDOC ## IgnoreUser ### Description **OBSOLETE, no longer functional** We send this to the server to tell a user we have ignored them. The server tells us a user has ignored us. ### Data Order * Send 1. **string** _username_ * Receive 1. **string** _username_ ``` -------------------------------- ### UnwatchUser Source: https://nicotine-plus.org/doc/SLSKPROTOCOL.html Used to stop receiving status updates for a specific user. ```APIDOC ## UnwatchUser ### Description Used when we no longer want to be kept updated about a user’s status. ### Data Order * Send 1. **string** _username_ ``` -------------------------------- ### Soulseek Login Message Hex Stream Source: https://nicotine-plus.org/doc/SLSKPROTOCOL.html This is the raw hexadecimal representation of the login message sent to the server. It includes username, password, version information, and a hash of the credentials. ```hex 48 00 00 00 01 00 00 00 08 00 00 00 75 73 65 72 6e 61 6d 65 08 00 00 00 70 61 73 73 77 6f 72 64 b1 00 00 00 20 00 00 00 64 35 31 63 39 61 37 65 39 33 35 33 37 34 36 61 36 30 32 30 66 39 36 30 32 64 34 35 32 39 32 39 01 00 00 00 ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.