Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- friendsServer.UpdateAndGetAllInformation(func(client *nex.Client, callID uint32, nnaInfo *nexproto.NNAInfo, presence *nexproto.NintendoPresenceV2, birthday *nex.DateTime) {
- comment := "Pretendo Online"
- datetime := nex.NewDateTime(0)
- rmcResponseStream := nex.NewStream()
- rmcResponseStream.Grow(int64(
- 3 + // PrincipalPreference
- 1 + 2 + len(comment) + 1 + 8 + // Comment
- 4 + // FriendInfo List length
- 4 + // PID
- 2 + 11 + 1 + // NNID
- 2 + 10 + 1 + // Mii Name
- 2 + // 2 bytes
- 4 + // Mii buffer
- 8 + // date
- 3 +
- 4 +
- 1 +
- 8 + // title id
- 2 + // title ver
- 1 +
- 2 + 12 + 1 +
- 29 +
- 2 + 16 + 1 +
- 32 +
- 4 + // FriendRequest (Sent) List length
- 4 + // FriendRequest (Received) List length
- 4 + // BlacklistedPrincipal List length
- 1 + // Unknown
- 4 + // PersistentNotification List length
- 1)) // Unknown
- // TODO: Make the following fields into structs and encode them
- //PrincipalPreference
- rmcResponseStream.WriteByteNext(0)
- rmcResponseStream.WriteByteNext(0)
- rmcResponseStream.WriteByteNext(0)
- //Comment
- rmcResponseStream.WriteByteNext(0)
- rmcResponseStream.WriteNEXStringNext(comment)
- rmcResponseStream.WriteU64LENext([]uint64{datetime.Now()})
- //List<FriendInfo>
- rmcResponseStream.WriteU32LENext([]uint32{1})
- // NNAInfo
- rmcResponseStream.WriteU32LENext([]uint32{1745583457})
- rmcResponseStream.WriteNEXStringNext("RamboLeBoss")
- rmcResponseStream.WriteNEXStringNext("RamboLeMii")
- rmcResponseStream.WriteByteNext(0)
- rmcResponseStream.WriteByteNext(0)
- rmcResponseStream.WriteU32LENext([]uint32{0}) // Mii buffer
- rmcResponseStream.WriteU64LENext([]uint64{datetime.Now()})
- rmcResponseStream.WriteByteNext(0)
- rmcResponseStream.WriteByteNext(0)
- rmcResponseStream.WriteByteNext(0)
- // Presence
- rmcResponseStream.WriteU32LENext([]uint32{4})
- rmcResponseStream.WriteByteNext(1)
- rmcResponseStream.WriteU64LENext([]uint64{0x000500010113400})
- rmcResponseStream.WriteByteNext(0x40)
- rmcResponseStream.WriteByteNext(0)
- rmcResponseStream.WriteByteNext(0)
- rmcResponseStream.WriteNEXStringNext("BO2 je crois")
- rmcResponseStream.WriteU32LENext([]uint32{0})
- rmcResponseStream.WriteByteNext(0)
- rmcResponseStream.WriteU32LENext([]uint32{0})
- rmcResponseStream.WriteU32LENext([]uint32{0})
- rmcResponseStream.WriteU32LENext([]uint32{1745583457})
- rmcResponseStream.WriteU32LENext([]uint32{0})
- rmcResponseStream.WriteU32LENext([]uint32{0})
- rmcResponseStream.WriteByteNext(0)
- rmcResponseStream.WriteByteNext(0)
- rmcResponseStream.WriteByteNext(0)
- // Comment
- rmcResponseStream.WriteByteNext(0)
- rmcResponseStream.WriteNEXStringNext("Still pretending")
- rmcResponseStream.WriteU64LENext([]uint64{datetime.Now()})
- // stuff
- rmcResponseStream.WriteU64LENext([]uint64{datetime.Now()})
- rmcResponseStream.WriteU64LENext([]uint64{datetime.Now()})
- rmcResponseStream.WriteU64LENext([]uint64{datetime.Now()})
- //List<FriendRequest> (Sent)
- rmcResponseStream.WriteU32LENext([]uint32{0})
- //List<FriendRequest> (Received)
- rmcResponseStream.WriteU32LENext([]uint32{0})
- //List<BlacklistedPrincipal>
- rmcResponseStream.WriteU32LENext([]uint32{0})
- //Unknown
- rmcResponseStream.WriteByteNext(0)
- //List<PersistentNotification>
- rmcResponseStream.WriteU32LENext([]uint32{0})
- //Unknown
- rmcResponseStream.WriteByteNext(0)
- rmcResponseBody := rmcResponseStream.Bytes()
- // Build response packet
- rmcResponse := nex.NewRMCResponse(nexproto.FriendsProtocolID, callID)
- rmcResponse.SetSuccess(nexproto.FriendsMethodUpdateAndGetAllInformation, rmcResponseBody)
- rmcResponseBytes := rmcResponse.Bytes()
- responsePacket := nex.NewPacketV0(client, nil)
- responsePacket.SetVersion(0)
- responsePacket.SetSource(0xA1)
- responsePacket.SetDestination(0xAF)
- responsePacket.SetType(nex.DataPacket)
- responsePacket.SetPayload(rmcResponseBytes)
- responsePacket.AddFlag(nex.FlagNeedsAck)
- responsePacket.AddFlag(nex.FlagReliable)
- nexServer.Send(responsePacket)
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement