Skip to content

Commit

Permalink
Fixed bug wherein retrieving leaderboard score was not returning corr…
Browse files Browse the repository at this point in the history
…ect data.
  • Loading branch information
Ozzadar committed Aug 29, 2021
1 parent 69372d8 commit a95bb72
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 21 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -243,14 +243,14 @@ play_games_services.showAllLeaderBoards()
# LeaderboardCollection can be: COLLECTION_PUBLIC or COLLECTION_FRIENDS
play_games_services.retrieveLeaderboardScore("LEADERBOARD_ID", "ALL_TIME", "ALL")
func _on_leaderboard_score_retrieved(playerScore : String):
func _on_leaderboard_score_retrieved(leaderboardId : String, playerScore : String):
var score_dictionary: Dictionary = parse_json(playerScore)
# Using below keys you can retrieve data about a player’s in-game activity
score_dictionary["score"] # Player high score
score_dictionary["rank"] # Player rank
pass
func _on_leaderboard_score_retrieve_failed():
func _on_leaderboard_score_retrieve_failed(leaderboardId : String):
pass
```
#### Events
Expand Down
12 changes: 6 additions & 6 deletions app/src/main/java/io/cgisca/godot/gpgs/PlayGameServicesGodot.kt
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@ class PlayGameServicesGodot(godot: Godot) : GodotPlugin(godot), AchievementsList
SignalInfo("_on_achievement_steps_setting_failed", String::class.java)
val SIGNAL_ACHIEVEMENT_INFO_LOAD = SignalInfo("_on_achievement_info_loaded", String::class.java)
val SIGNAL_ACHIEVEMENT_INFO_LOAD_FAILED = SignalInfo("_on_achievement_info_load_failed", String::class.java)
val SIGNAL_LEADERBOARD_SCORE_RETRIEVED = SignalInfo("_on_leaderboard_score_retrieved", String::class.java)
val SIGNAL_LEADERBOARD_SCORE_RETRIEVED_FAILED = SignalInfo("_on_leaderboard_score_retrieve_failed")
val SIGNAL_LEADERBOARD_SCORE_RETRIEVED = SignalInfo("_on_leaderboard_score_retrieved", String::class.java, String::class.java)
val SIGNAL_LEADERBOARD_SCORE_RETRIEVED_FAILED = SignalInfo("_on_leaderboard_score_retrieve_failed", String::class.java)
val SIGNAL_LEADERBOARD_SCORE_SUBMITTED = SignalInfo("_on_leaderboard_score_submitted", String::class.java)
val SIGNAL_LEADERBOARD_SCORE_SUBMITTED_FAILED =
SignalInfo("_on_leaderboard_score_submitting_failed", String::class.java)
Expand Down Expand Up @@ -407,12 +407,12 @@ class PlayGameServicesGodot(godot: Godot) : GodotPlugin(godot), AchievementsList
emitSignal(SIGNAL_EVENTS_LOADED_FAILED.name)
}

override fun onCurrentPlayerLeaderBoardScoreLoadingFailed() {
emitSignal(SIGNAL_LEADERBOARD_SCORE_RETRIEVED_FAILED.name)
override fun onCurrentPlayerLeaderBoardScoreLoadingFailed(leaderboardId: String) {
emitSignal(SIGNAL_LEADERBOARD_SCORE_RETRIEVED_FAILED.name, leaderboardId)
}

override fun onCurrentPlayerLeaderBoardScoreLoaded(scoreJson: String) {
emitSignal(SIGNAL_LEADERBOARD_SCORE_RETRIEVED.name, scoreJson)
override fun onCurrentPlayerLeaderBoardScoreLoaded(leaderboardId: String, scoreJson: String) {
emitSignal(SIGNAL_LEADERBOARD_SCORE_RETRIEVED.name, leaderboardId, scoreJson)
}

override fun onLeaderBoardScoreSubmitted(leaderboardId: String) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package io.cgisca.godot.gpgs.leaderboards

interface LeaderBoardsListener {
fun onCurrentPlayerLeaderBoardScoreLoadingFailed()
fun onCurrentPlayerLeaderBoardScoreLoaded(scoreJson: String)
fun onCurrentPlayerLeaderBoardScoreLoadingFailed(leaderboardId: String)
fun onCurrentPlayerLeaderBoardScoreLoaded(leaderboardId: String, scoreJson: String)
fun onLeaderBoardScoreSubmitted(leaderboardId: String)
fun onLeaderBoardScoreSubmittingFailed(leaderboardId: String)
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,32 +45,32 @@ class LeaderboardsController(
Log.i("godot", "-------------------\n\n THE LEADERBOARD:\n ${leaderboardId}\n\n")

Games.getLeaderboardsClient(activity, googleSignInAccount)
.loadPlayerCenteredScores(leaderboardId, finalSpan, collection, 1)
.addOnSuccessListener { lbScores ->
.loadCurrentPlayerLeaderboardScore(leaderboardId, finalSpan, collection)
.addOnSuccessListener { lbScore ->
// val scores = lbScores.get();
// Log.i("godot", "-------------------\n\n THE RESULT:\n ${scores.scores[0].rank}\n\n")

val leaderboardScore = LeaderboardScore (
-1, 0, "Unknown"
)

if (lbScores != null) {
val scores = lbScores.get();
if (lbScore != null) {
val score = lbScore.get();
Log.i("godot", "-------------------\n\n THE RESULT:\n ${score.rank}\n\n")

if (scores != null && scores.scores.count != 0) {
leaderboardScore.rank = scores.scores[0].rank
leaderboardScore.score = scores.scores[0].rawScore
leaderboardScore.scoreHolder = scores.scores[0].scoreHolderDisplayName
if (score != null) {
leaderboardScore.rank = score.rank
leaderboardScore.score = score.rawScore
leaderboardScore.scoreHolder = score.scoreHolderDisplayName
}
}

leaderBoardsListener.onCurrentPlayerLeaderBoardScoreLoaded(Gson().toJson(leaderboardScore))
leaderBoardsListener.onCurrentPlayerLeaderBoardScoreLoaded(leaderboardId, Gson().toJson(leaderboardScore))
}
.addOnFailureListener {reason ->
Log.i("godot", "-------------------\n\n FAILURE REASON:\n ${reason}\n\n")
Log.i("godot", "-------------------\n\n FAILURE REASON:\n ${reason.message}\n\n")

leaderBoardsListener.onCurrentPlayerLeaderBoardScoreLoadingFailed()
leaderBoardsListener.onCurrentPlayerLeaderBoardScoreLoadingFailed(leaderboardId)
}

}
Expand Down

0 comments on commit a95bb72

Please sign in to comment.