I'd like to propose the addition of the friend system to the lobby protocol. The addition of the lobby protocol would ease the implementation of a friend list on the client side as it removes the need to deal with renames and similar. It also allows the friend list to persist on different computers/lobbies.
This patch adds the ignore system functionality to the uberserver: https://github.com/spring/uberserver/pull/104
Minimal client implementation would involve sending FRIENDREQUEST userName=value msg=value, and responding to the corresponding requests with a ACCEPTFRIENDREQUEST userName=value and DECLINEFRIENDREQUEST userName=value.
Addition commands and functionality can be seen as outlined in these commands:
Legend:
>>> (from client)
<<< (from server)
>>> FRIENDREQUEST userName=value [msg=value]
Description: Tells the server to send a friend request to the user. Only one friend request may exist between two users at any time.
<<< FREINDREQUEST userName=value [msg=value]
Description: Tells the user he has received a friend request.
>>> ACCEPTFRIENDREQUEST userName=value
Description: Tells the server the user has accepted the friend request. If the request is valid, both users will receive an FRIEND command next.
>>> DECLINEFRIENDREQUEST userName=value
Description: Tells the server the user has declined the friend request.
<<< FRIEND userName=value
Description: Tells the client a user has been added to the friend list.
>>> UNFRIEND userName=value
Description: Tells the server to remove a user from the client's friend list. Both users will receive an UNFRIEND command.
<<< UNFRIEND userName=value
Description: Tells the client a user has been removed from the friend list.
>>> FRIENDREQUESTLIST
Description: Requests the client's friend request list from the server.
<<< FRIENDREQUESTLISTBEGIN
Description: Sent by the server when sending the friend request list to the client.
Response: 0 or more FRIENDREQUESTLIST commands and finally a FRIENDREQUESTLISTEND command.
<<< FRIENDREQUESTLIST userName=value
Description: Multiple commands of this kind may be sent after a FRIENDREQUESTLISTBEGIN command (or none, if the friend request list is empty).
<<< FRIENDREQUESTLISTEND
Description: Sent to a client who previously requested the friend request list, after a series of FRIENDREQUESTLIST commands.
>>> FRIENDLIST
Description: Requests the client's friend list from the server.
<<< FRIENDLISTBEGIN
Description: Sent by the server when sending the requested friend list to the client.
Response: 0 or more FRIENDLIST commands and finally a FRIENDLISTEND command.
<<< FRIENDLIST userName=value
Description: Multiple commands of this kind may be sent after a FRIENDLISTBEGIN command (or none, if the friend list is empty).
<<< FRIENDLISTEND
Description: Sent to a client who previously requested the friend list, after a series of FRIENDLIST commands.
FRIEND list lobby protocol extension
FRIEND list lobby protocol extension
For the discussion of infrastructure improvements and changes.
Moderator: Moderators
Post Reply
1 post
• Page 1 of 1
Return to “Infrastructure Development”
Jump to
- Community
- ↳ General Discussion
- ↳ Help & Bugs
- ↳ Ingame Community
- ↳ Spring Clans
- ↳ Tournaments
- ↳ Linux
- ↳ Mac OS X
- ↳ Off Topic Discussion
- Content Development
- ↳ Game Development
- ↳ Game Development Tutorials & Resources
- ↳ Game Releases
- ↳ Map Creation
- ↳ Map Tutorials & Resources
- ↳ Map Releases
- ↳ Lua Scripts
- ↳ Art & Modelling
- ↳ Modelling & Texturing Tutorials & Resources
- ↳ Sound Effects & Music
- ↳ Project Subforums
- ↳ Balanced Annihilation
- ↳ Balanced Annihilation Reloaded
- ↳ Conflict Terra
- ↳ The Cursed
- ↳ Evolution RTS
- ↳ Jauria RTS
- ↳ Kernel Panic
- ↳ Journeywar
- ↳ Ludum Dare
- ↳ MechCommander: Legacy
- ↳ Metal Factions
- ↳ MOSAIC
- ↳ NOTA
- ↳ Phoenix Annihilation
- ↳ SpringBoard
- ↳ Spring: 1944
- ↳ Star Wars: Imperial Winter
- ↳ TA Prime
- ↳ Tech Annihilation
- ↳ XTA
- ↳ Zero-K
- ↳ Project Archive
- ↳ Argh's Projects
- ↳ Caydr's Projects
- ↳ Damned
- ↳ Dune: Evolution
- ↳ Engines Of War
- ↳ Evolution RTS
- ↳ Progressive Annihilation
- ↳ Supreme Annihilation
- ↳ Spring Tanks
- ↳ PanzerStahl
- Development
- ↳ News
- ↳ Engine
- ↳ Dedicated Developer Discussion
- ↳ New Developer Discussion
- ↳ Meeting Minutes
- ↳ AI
- ↳ Lobby Clients & Server
- ↳ Infrastructure Development
- ↳ Lobby Meeting Minutes
- ↳ SPADS AutoHost
- ↳ SpringLobby Client
- ↳ Feature Requests
- ↳ Bounty Offers
- ↳ The Werewolf Game
- ↳ News Submissions
- Site content
- ↳ Community Blog
- ↳ Site content
- ↳ Banners
- ↳ Welcome images
- ↳ Videos
- ↳ Videos - contributions
- ↳ Screenshots
- ↳ Screenshots - contributions