mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-22 03:45:10 +01:00
Implement battle pass triggers/rewards
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.BuyBattlePassLevelReqOuterClass.BuyBattlePassLevelReq;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketBuyBattlePassLevelRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.BuyBattlePassLevelReq)
|
||||
public class HandlerBuyBattlePassLevelReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
BuyBattlePassLevelReq req = BuyBattlePassLevelReq.parseFrom(payload);
|
||||
|
||||
int buyLevel = session.getPlayer().getBattlePassManager().buyLevels(req.getBuyLevel());
|
||||
|
||||
session.send(new PacketBuyBattlePassLevelRsp(buyLevel));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.SetBattlePassViewedReqOuterClass.SetBattlePassViewedReq;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketSetBattlePassViewedRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.SetBattlePassViewedReq)
|
||||
public class HandlerSetBattlePassViewedReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
var req = SetBattlePassViewedReq.parseFrom(payload);
|
||||
|
||||
session.getPlayer().getBattlePassManager().updateViewed();
|
||||
session.send(new PacketSetBattlePassViewedRsp(req.getScheduleId()));
|
||||
}
|
||||
}
|
||||
@@ -1,13 +1,10 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.TakeBattlePassMissionPointReqOuterClass;
|
||||
import emu.grasscutter.net.proto.TakeBattlePassMissionPointReqOuterClass.TakeBattlePassMissionPointReq;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketBattlePassCurScheduleUpdateNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketBattlePassMissionUpdateNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketTakeBattlePassMissionPointRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.TakeBattlePassMissionPointReq)
|
||||
@@ -15,11 +12,10 @@ public class HandlerTakeBattlePassMissionPointReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
var req
|
||||
= TakeBattlePassMissionPointReqOuterClass.TakeBattlePassMissionPointReq.parseFrom(payload);
|
||||
var req = TakeBattlePassMissionPointReq.parseFrom(payload);
|
||||
|
||||
session.getPlayer().getBattlePassManager().takeMissionPoint(req.getMissionIdListList());
|
||||
|
||||
session.send(new PacketBattlePassMissionUpdateNotify(req.getMissionIdListList() , session));
|
||||
session.send(new PacketBattlePassCurScheduleUpdateNotify(session.getPlayer()));
|
||||
session.send(new PacketTakeBattlePassMissionPointRsp());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package emu.grasscutter.server.packet.recv;
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.TakeBattlePassRewardReqOuterClass;
|
||||
import emu.grasscutter.net.proto.TakeBattlePassRewardReqOuterClass.TakeBattlePassRewardReq;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketTakeBattlePassRewardRsp;
|
||||
|
||||
@@ -11,14 +11,8 @@ import emu.grasscutter.server.packet.send.PacketTakeBattlePassRewardRsp;
|
||||
public class HandlerTakeBattlePassRewardReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
var req
|
||||
= TakeBattlePassRewardReqOuterClass.TakeBattlePassRewardReq.parseFrom(payload);
|
||||
var req = TakeBattlePassRewardReq.parseFrom(payload);
|
||||
|
||||
//due to the list only have one element, so we can use get(0)
|
||||
session.send(new PacketTakeBattlePassRewardRsp(req.getTakeOptionListList() , session));
|
||||
|
||||
//update the awardTakenLevel
|
||||
req.getTakeOptionListList().forEach(battlePassRewardTakeOption ->
|
||||
session.getPlayer().getBattlePassManager().updateAwardTakenLevel(battlePassRewardTakeOption.getTag().getLevel()));
|
||||
session.getPlayer().getBattlePassManager().takeReward(req.getTakeOptionListList());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user