Fix cant claim beginner banner results and simplify newbie gacha flow

This commit is contained in:
Yostarcc authored and Melledy committed 2026-05-10 21:38:47 -07:00
1 parent 276c8b2ebd
commit 580a7a92e7
6 files changed
+70 -139

No files matched your search

@@ -13,15 +13,15 @@ public class HandlerGachaNewbieObtainReq extends NetHandler {
@Override
public byte[] handle(GameSession session, byte[] message) throws Exception {
var req = GachaNewbieObtainReq.parseFrom(message);
if (!req.hasId() || req.getId() < 0 || (req.hasIdx() && req.getIdx() < 0)) {
return session.encodeMsg(NetMsgId.gacha_newbie_obtain_failed_ack);
}
// req.getIdx() is optional, it always has a value
var change = Nebula.getGameContext().getGachaModule().obtainNewbie(session.getPlayer(), req.getId(), req.getIdx());
if (change == null) {
return session.encodeMsg(NetMsgId.gacha_newbie_obtain_failed_ack);
}
if (!change.isEmpty()) {
session.getPlayer().addNextPackage(NetMsgId.items_change_notify, change.toProto());
}
return session.encodeMsg(NetMsgId.gacha_newbie_obtain_succeed_ack, change.toProto());
}
@@ -14,8 +14,11 @@ public class HandlerGachaNewbieSaveReq extends NetHandler {
public byte[] handle(GameSession session, byte[] message) throws Exception {
var req = GachaNewbieSaveReq.parseFrom(message);
Integer index = req.hasIdx() ? req.getIdx() : null;
boolean succeeded = Nebula.getGameContext().getGachaModule().saveNewbie(session.getPlayer(), req.getId(), index);
if (!succeeded) {
if (!req.hasId() || req.getId() < 0 || (index != null && index < 0)) {
return session.encodeMsg(NetMsgId.gacha_newbie_save_failed_ack);
}
boolean newbieSaveResult = Nebula.getGameContext().getGachaModule().saveNewbie(session.getPlayer(), req.getId(), index);
if (!newbieSaveResult) {
return session.encodeMsg(NetMsgId.gacha_newbie_save_failed_ack);
}