From 85673ae9f884ec053eacf758f04f20cd858dd03a Mon Sep 17 00:00:00 2001 From: William Oldham Date: Sun, 22 Mar 2026 22:15:58 +0000 Subject: [PATCH] Revert "fix: resolve "Course data can't be loaded" on 3DS Recommended Courses (#21)" This reverts commit 12deaca1cfb92c04abec8234395e6e283f10cd6a. --- .../get_random_courses_with_limit.go | 15 ++++++++++----- .../ctr_pick_up_course_search_object.go | 9 +-------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/database/datastore/super-mario-maker/get_random_courses_with_limit.go b/database/datastore/super-mario-maker/get_random_courses_with_limit.go index 02fb39c..103bd5a 100644 --- a/database/datastore/super-mario-maker/get_random_courses_with_limit.go +++ b/database/datastore/super-mario-maker/get_random_courses_with_limit.go @@ -1,6 +1,7 @@ package datastore_smm_db import ( + "database/sql" "time" "github.com/PretendoNetwork/nex-go/v2" @@ -34,22 +35,26 @@ func GetRandomCoursesWithLimit(limit int) (types.List[datastore_super_mario_make object.tags, object.creation_date, object.update_date, - COALESCE(ranking.value, 0) + ranking.value FROM datastore.objects object - LEFT JOIN datastore.object_custom_rankings ranking + JOIN datastore.object_custom_rankings ranking ON object.data_id = ranking.data_id AND - ranking.application_id = 0 - WHERE object.upload_completed = TRUE AND object.deleted = FALSE AND - object.under_review = FALSE + object.under_review = FALSE AND + ranking.application_id = 0 ORDER BY RANDOM() LIMIT $1 `, limit) if err != nil { + if err == sql.ErrNoRows { + return nil, nex.NewError(nex.ResultCodes.DataStore.NotFound, "Object not found") + } + globals.Logger.Error(err.Error()) + // TODO - Send more specific errors? return nil, nex.NewError(nex.ResultCodes.DataStore.Unknown, err.Error()) } diff --git a/nex/datastore/super-mario-maker/ctr_pick_up_course_search_object.go b/nex/datastore/super-mario-maker/ctr_pick_up_course_search_object.go index 4157fd2..d3591c5 100644 --- a/nex/datastore/super-mario-maker/ctr_pick_up_course_search_object.go +++ b/nex/datastore/super-mario-maker/ctr_pick_up_course_search_object.go @@ -30,14 +30,7 @@ func CTRPickUpCourseSearchObject(err error, packet nex.PacketInterface, callID u // TODO - Research extraData // TODO - Use the offet? Real client never uses it, but might be nice for completeness sake? - length := int(param.ResultRange.Length) - maxLength := 25 - if length <= 0 || length > maxLength { - globals.Logger.Warningf("Limiting request to %d courses (was %d)", maxLength, length) - length = maxLength - } - - pRankingResults, nexError := datastore_smm_db.GetRandomCoursesWithLimit(length) + pRankingResults, nexError := datastore_smm_db.GetRandomCoursesWithLimit(int(param.ResultRange.Length)) if nexError != nil { return nil, nexError }