Skip to main content
Version: 5.16.0

GetOtherUserLeaderboardPlace

public BackendUserLeaderboardReturnObject GetOtherUserLeaderboardPlace(string leaderboardUuid, string userInDate);\ public BackendUserLeaderboardReturnObject GetOtherUserLeaderboardPlace(string leaderboardUuid, string userInDate, int gap);

Parameters

ValueTypeDescriptionDefault
leaderboardUuidstringuuid of the leaderboard to look up-
userIndatestringinDate of the user to look up-
gapintNumber of rank holders above/below to be looked up together(0 - 25)0

leaderboardUuid 값은 아래 방법을 통해 확인할 수 있습니다.

userIndate 값은 아래 방법을 통해 확인할 수 있습니다.

  • Check the inDate of your friend
  • Check the inDate of a guild member
  • public 테이블의 owner_inDate 컬럼을 통해 확인
  • Check by sharing the inDate of a user

Description

uuid 값과 userIndate를 이용하여 해당 리더보드에서 해당 유저의 리더보드을 조회합니다.

  • If there is a tie between users (with the same rank), users with the same ranks may be returned when the gap method is used for the lookup.
  • This method cannot be called using SendQueue.

BackendUserLeaderboardReturnObject

namespace BackEnd.Leaderboard
{
public class UserLeaderboardItem
{
public string gamerInDate;
public string nickname = string.Empty;
public string score;
public string index;
public string rank;
public string extraData = string.Empty;
public string extraName = string.Empty;
}

public class BackendUserLeaderboardReturnObject : BackendReturnObject
{
public long GetTotalCount();
public List<UserLeaderboardItem> GetUserLeaderboardList();
}
}

Example

Synchronous

BackEnd.Leaderboard.BackendUserLeaderboardReturnObject bro = null;

// 해당 유저의 리더보드만 조회
bro = Backend.Leaderboard.User.GetOtherUserLeaderboardPlace("leaderboardUuid", "userIndate");

// 위아래 3명의 유저를 포함하여 리더보드 조회
// 해당 유저가 4등인 경우 1 ~ 7등 유저가 조회됨
bro = Backend.Leaderboard.User.GetOtherUserLeaderboardPlace("leaderboardUuid", "userIndate", 3);

if(bro.IsSuccess() == false) {
return;
}

Debug.Log("리더보드 총 유저 등록 수 : " + bro.GetTotalCount());

foreach(BackEnd.Leaderboard.UserLeaderboardItem item in bro.GetUserLeaderboardList())
{
Debug.Log($"{item.rank}위 : {item.nickname}");
Debug.Log(item.ToString());
}

Asynchronous

// 해당 유저의 리더보드만 조회
Backend.Leaderboard.User.GetOtherUserLeaderboardPlace("leaderboardUuid", "userIndate", callback => {
if(bro.IsSuccess() == false) {
return;
}

Debug.Log("리더보드 총 유저 등록 수 : " + callback.GetTotalCount());

foreach(BackEnd.Leaderboard.UserLeaderboardItem item in callback.GetUserLeaderboardList())
{
Debug.Log($"{item.rank}위 : {item.nickname}");
Debug.Log(item.ToString());
}
});

// 위아래 3명의 유저를 포함하여 리더보드 조회
// 해당 유저가 4등인 경우 1 ~ 9등 유저가 조회됨
Backend.Leaderboard.User.GetOtherUserLeaderboardPlace("leaderboardUuid", "userIndate", 5, callback => {
// 이후 처리
});

ReturnCase

Success cases

When the user is in the leaderboard\ statusCode : 200\ message : Success\ returnValue : Refer to GetReturnValuetoJSON

Error cases

When uuid is null or string.Empty\ statusCode : 400\ errorCode : ValidationException\ message : leaderboardUuid is null or empty

존재하지 않는 uuid로 조회를 시도한 경우\ StatusCode : 404\ ErrorCode : NotFoundException\ Message : leaderboard not found, leaderboard을(를) 찾을 수 없습니다

존재하지 않는 유저의 userIndate로 조회를 시도할 경우\ statusCode : 404\ errorCode : NotFoundException\ message : gamer not found, gamer을(를) 찾을 수 없습니다

해당 유저가 리더보드에 존재하지 않는 경우\ statusCode : 404\ errorCode : NotFoundException\ message : userRank not found, userRank을(를) 찾을 수 없습니다

GetReturnValuetoJSON

gap이 0인 경우

{
"rows": [
{
"gamerInDate": "2024-05-08T07:17:20.455Z",
"nickname": "user4",
"rank": 5,
"index": 4,
"score": "5"
}
],
"totalCount": 10
}

gap이 1 인 경우(2024-05-08T07:17:20.455Z 기준)

{
"rows": [
{
"gamerInDate": "2024-05-08T07:17:20.928Z",
"nickname": "user5",
"rank": 4,
"index": 3,
"score": "6"
},
{
"gamerInDate": "2024-05-08T07:17:20.455Z",
"nickname": "user4",
"rank": 5,
"index": 4,
"score": "5"
},
{
"gamerInDate": "2024-05-08T07:17:19.951Z",
"nickname": "user3",
"rank": 6,
"index": 5,
"score": "4"
}
],
"totalCount": 10
}