mirror of
https://github.com/Melledy/Nebula.git
synced 2025-12-16 22:34:41 +01:00
Implement boss blitz server leaderboard
This commit is contained in:
@@ -16,6 +16,29 @@ public class HandlerScoreBossRankReq extends NetHandler {
|
||||
var rsp = ScoreBossRankInfo.newInstance()
|
||||
.setLastRefreshTime(Nebula.getCurrentTime());
|
||||
|
||||
// Get self
|
||||
var self = session.getPlayer().getScoreBossManager().getRanking();
|
||||
|
||||
if (self != null) {
|
||||
rsp.setSelf(self.toProto());
|
||||
}
|
||||
|
||||
// Get ranking
|
||||
var ranking = Nebula.getGameContext().getScoreBossModule().getRanking();
|
||||
|
||||
for (var entry : ranking) {
|
||||
// Check self
|
||||
if (self != null && self.getPlayerUid() == entry.getId()) {
|
||||
rsp.getMutableSelf().setRank(entry.getRank());
|
||||
}
|
||||
|
||||
// Add to ranking
|
||||
rsp.addRank(entry);
|
||||
}
|
||||
|
||||
// Set total
|
||||
rsp.setTotal(ranking.size());
|
||||
|
||||
// Encode and send
|
||||
return session.encodeMsg(NetMsgId.score_boss_rank_succeed_ack, rsp);
|
||||
}
|
||||
|
||||
@@ -16,7 +16,11 @@ public class HandlerScoreBossSettleReq extends NetHandler {
|
||||
var req = ScoreBossSettleReq.parseFrom(message);
|
||||
|
||||
// Settle
|
||||
session.getPlayer().getScoreBossManager().settle(req.getStar(), req.getScore());
|
||||
boolean success = session.getPlayer().getScoreBossManager().settle(req.getStar(), req.getScore());
|
||||
|
||||
if (success == false) {
|
||||
return session.encodeMsg(NetMsgId.score_boss_settle_failed_ack);
|
||||
}
|
||||
|
||||
// Build response
|
||||
var rsp = ScoreBossSettleResp.newInstance();
|
||||
|
||||
Reference in New Issue
Block a user