diff --git a/database/3ds/get_mii.go b/database/3ds/get_mii.go index 595e8cc..c4adcec 100644 --- a/database/3ds/get_mii.go +++ b/database/3ds/get_mii.go @@ -9,7 +9,7 @@ import ( ) // GetMii returns the Mii of a specified user -func GetMii(pid uint32) (friends_3ds_types.FriendMii, error) { +func GetMii(pid types.PID) (friends_3ds_types.FriendMii, error) { friendMii := friends_3ds_types.NewFriendMii() rows, err := database.Manager.QueryRow(` @@ -33,14 +33,11 @@ func GetMii(pid uint32) (friends_3ds_types.FriendMii, error) { } } - mii := friends_3ds_types.NewMii() - mii.Name = types.NewString(miiName) - mii.ProfanityFlag = types.NewBool(miiProfanity) - mii.CharacterSet = types.NewUInt8(miiCharacterSet) - mii.MiiData = types.NewBuffer(miiData) - friendMii.PID = types.NewPID(uint64(pid)) - friendMii.Mii = mii + friendMii.Mii.Name = types.NewString(miiName) + friendMii.Mii.ProfanityFlag = types.NewBool(miiProfanity) + friendMii.Mii.CharacterSet = types.NewUInt8(miiCharacterSet) + friendMii.Mii.MiiData = types.NewBuffer(miiData) friendMii.ModifiedAt = types.NewDateTime(changedTime) return friendMii, nil diff --git a/database/3ds/get_user_data.go b/database/3ds/get_user_data.go index a04540b..0e252d8 100644 --- a/database/3ds/get_user_data.go +++ b/database/3ds/get_user_data.go @@ -9,8 +9,8 @@ import ( ) // GetUserData returns a data for a specific user -func GetUserData(pid uint32) (friends_3ds_types.FriendPersistentInfo, error) { - userData := friends_3ds_types.NewFriendPersistentInfo() +func GetUserData(pid types.PID) (friends_3ds_types.FriendPersistentInfo, error) { + friendPersistentInfo := friends_3ds_types.NewFriendPersistentInfo() row, err := database.Manager.QueryRow(` SELECT pid, region, area, @@ -21,9 +21,9 @@ func GetUserData(pid uint32) (friends_3ds_types.FriendPersistentInfo, error) { `, pid) if err != nil { if err == sql.ErrNoRows { - return userData, database.ErrPIDNotFound + return friendPersistentInfo, database.ErrPIDNotFound } else { - return userData, err + return friendPersistentInfo, err } } @@ -31,11 +31,9 @@ func GetUserData(pid uint32) (friends_3ds_types.FriendPersistentInfo, error) { err = row.Scan(&pid, &relationshipType) if err != nil { - return userData, err + return friendPersistentInfo, err } - gameKey := friends_3ds_types.NewGameKey() - var region uint8 var area uint8 var language uint8 @@ -61,23 +59,21 @@ func GetUserData(pid uint32) (friends_3ds_types.FriendPersistentInfo, error) { &miiModifiedAtTime, ) if err != nil { - return userData, err + return friendPersistentInfo, err } - gameKey.TitleID = types.NewUInt64(titleID) - gameKey.TitleVersion = types.NewUInt16(titleVersion) + friendPersistentInfo.PID = types.NewPID(uint64(pid)) + friendPersistentInfo.Region = types.NewUInt8(region) + friendPersistentInfo.Country = types.NewUInt8(country) + friendPersistentInfo.Area = types.NewUInt8(area) + friendPersistentInfo.Language = types.NewUInt8(language) + friendPersistentInfo.Platform = types.NewUInt8(2) // * Always 3DS + friendPersistentInfo.GameKey.TitleID = types.NewUInt64(titleID) + friendPersistentInfo.GameKey.TitleVersion = types.NewUInt16(titleVersion) + friendPersistentInfo.Message = types.NewString(message) + friendPersistentInfo.MessageUpdatedAt = types.NewDateTime(msgUpdateTime) + friendPersistentInfo.MiiModifiedAt = types.NewDateTime(miiModifiedAtTime) + friendPersistentInfo.LastOnline = types.NewDateTime(lastOnlineTime) - userData.PID = types.NewPID(uint64(pid)) - userData.Region = types.NewUInt8(region) - userData.Country = types.NewUInt8(country) - userData.Area = types.NewUInt8(area) - userData.Language = types.NewUInt8(language) - userData.Platform = types.NewUInt8(2) // * Always 3DS - userData.GameKey = gameKey - userData.Message = types.NewString(message) - userData.MessageUpdatedAt = types.NewDateTime(msgUpdateTime) - userData.MiiModifiedAt = types.NewDateTime(miiModifiedAtTime) - userData.LastOnline = types.NewDateTime(lastOnlineTime) - - return userData, nil + return friendPersistentInfo, nil } diff --git a/database/wiiu/get_user_data.go b/database/wiiu/get_user_data.go index f62346b..5d80b76 100644 --- a/database/wiiu/get_user_data.go +++ b/database/wiiu/get_user_data.go @@ -10,7 +10,7 @@ import ( ) // GetUserData returns a data for a specific user -func GetUserData(pid uint32) (friends_wiiu_types.FriendInfo, error) { +func GetUserData(pid types.PID) (friends_wiiu_types.FriendInfo, error) { friendInfo := friends_wiiu_types.NewFriendInfo() row, err := database.Manager.QueryRow(` @@ -54,33 +54,19 @@ func GetUserData(pid uint32) (friends_wiiu_types.FriendInfo, error) { return friendInfo, err } - comment := friends_wiiu_types.NewComment() - comment.Unknown = types.NewUInt8(0) - comment.Contents = types.NewString(commentContents) - comment.LastChanged = types.NewDateTime(commentChanged) - - mii := friends_wiiu_types.NewMiiV2() - mii.Name = types.NewString(miiName) - mii.Unknown1 = types.NewUInt8(miiUnknown1) - mii.Unknown2 = types.NewUInt8(miiUnknown2) - mii.MiiData = types.NewBuffer(miiData) - mii.Datetime = types.NewDateTime(miiDatetime) - - principalBasicInfo := friends_wiiu_types.NewPrincipalBasicInfo() - principalBasicInfo.PID = types.NewPID(uint64(pid)) - principalBasicInfo.NNID = types.NewString(nnid) - principalBasicInfo.Unknown = types.NewUInt8(unknown) - principalBasicInfo.Mii = mii - - nnaInfo := friends_wiiu_types.NewNNAInfo() - nnaInfo.Unknown1 = types.NewUInt8(unknown1) - nnaInfo.Unknown2 = types.NewUInt8(unknown2) - nnaInfo.PrincipalBasicInfo = principalBasicInfo - - friendInfo.NNAInfo = nnaInfo + friendInfo.NNAInfo.Unknown1 = types.NewUInt8(unknown1) + friendInfo.NNAInfo.Unknown2 = types.NewUInt8(unknown2) + friendInfo.NNAInfo.PrincipalBasicInfo.PID = types.NewPID(uint64(pid)) + friendInfo.NNAInfo.PrincipalBasicInfo.NNID = types.NewString(nnid) + friendInfo.NNAInfo.PrincipalBasicInfo.Unknown = types.NewUInt8(unknown) + friendInfo.NNAInfo.PrincipalBasicInfo.Mii.Name = types.NewString(miiName) + friendInfo.NNAInfo.PrincipalBasicInfo.Mii.Unknown1 = types.NewUInt8(miiUnknown1) + friendInfo.NNAInfo.PrincipalBasicInfo.Mii.Unknown2 = types.NewUInt8(miiUnknown2) + friendInfo.NNAInfo.PrincipalBasicInfo.Mii.MiiData = types.NewBuffer(miiData) + friendInfo.NNAInfo.PrincipalBasicInfo.Mii.Datetime = types.NewDateTime(miiDatetime) lastOnline := types.NewDateTime(0).Now() - connectedUser, ok := globals.ConnectedUsers.Get(pid) + connectedUser, ok := globals.ConnectedUsers.Get(uint32(pid)) if ok && connectedUser != nil { // * Online friendInfo.Presence = connectedUser.PresenceV2.Copy().(friends_wiiu_types.NintendoPresenceV2) @@ -89,7 +75,9 @@ func GetUserData(pid uint32) (friends_wiiu_types.FriendInfo, error) { lastOnline = types.NewDateTime(lastOnlineTime) // TODO - Change this } - friendInfo.Status = comment + friendInfo.Status.Unknown = types.NewUInt8(0) + friendInfo.Status.Contents = types.NewString(commentContents) + friendInfo.Status.LastChanged = types.NewDateTime(commentChanged) friendInfo.BecameFriend = types.NewDateTime(date) friendInfo.LastOnline = lastOnline friendInfo.Unknown = types.NewUInt64(0)