Skip to content

feat(friends): add GetUserFriendsData rpc#19

Open
CaramelKat wants to merge 8 commits intomasterfrom
feat/friends-data
Open

feat(friends): add GetUserFriendsData rpc#19
CaramelKat wants to merge 8 commits intomasterfrom
feat/friends-data

Conversation

@CaramelKat
Copy link
Copy Markdown
Member

Resolves #XXX

Changes:

This adds an additional rpc for fetching your friends list data, with the main intention to get the online status and current title ID

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 26, 2026

The latest Buf updates on your PR. Results from workflow Validate Pull Request / check_buf (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed⏩ skipped✅ passed✅ passedApr 26, 2026, 6:30 PM

Copy link
Copy Markdown
Member

@DaniElectra DaniElectra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you! I have some suggestions that would be awesome to add here

Comment thread protobufs/friends/v2/friend_info.proto
Comment thread protobufs/friends/v2/friend_info.proto Outdated
Comment thread protobufs/friends/v2/friend_info.proto Outdated
uint64 message_updated_at = 9;
uint64 mii_modified_at = 10;
uint64 last_online = 11;
MiiV2 mii = 12;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The 3DS Mii holds more information alongside the name and the raw data, such as the character set and the profanity flag. Do we want to store that alongside the other fields too?

Alongside that, the raw data here is encrypted with AES-CCM with a twist. I'm not sure how feasible it would be to implement this on the Go side, but it would definitely be nice to support

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alongside that, the raw data here is encrypted with AES-CCM with a twist. I'm not sure how feasible it would be to implement this on the Go side, but it would definitely be nice to support

I guess what would you actually be looking to have included here? Would the thought be to have the friends server decrypt the data before sending it out?

Copy link
Copy Markdown
Member

@jonbarrow jonbarrow Apr 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest just duplicating the data. Send both the encrypted and decrypted versions. My gut tells me we'd never need to encrypted version, but given how weird some things are setup with NEX it's possible we may run into a situation where we need the original, encrypted, Mii data of a user as part of a game server. So just do both, to be safe

Either that or always send the encrypted data with a docs comment noting that it's encrypted, and expect the caller the decrypt it each time. But I suspect most of our use cases will need the decrypted version

Comment thread protobufs/friends/v2/friends_service.proto
Comment thread protobufs/friends/v2/friend_info.proto
Comment thread protobufs/friends/v2/friend_info.proto Outdated
Copy link
Copy Markdown
Member

@jonbarrow jonbarrow left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the only actual issue I can see, otherwise this looks great! Thanks

Comment thread protobufs/friends/v2/get_user_data_wiiu_rpc.proto
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants