mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-05-12 06:56:02 +08:00
65 lines
2.7 KiB
Java
65 lines
2.7 KiB
Java
package emu.grasscutter.server.packet.recv;
|
|
|
|
import emu.grasscutter.game.activity.musicgame.MusicGameActivityHandler;
|
|
import emu.grasscutter.game.activity.musicgame.MusicGamePlayerData;
|
|
import emu.grasscutter.game.props.ActivityType;
|
|
import emu.grasscutter.game.props.WatcherTriggerType;
|
|
import emu.grasscutter.net.packet.Opcodes;
|
|
import emu.grasscutter.net.packet.PacketHandler;
|
|
import emu.grasscutter.net.packet.PacketOpcodes;
|
|
import emu.grasscutter.net.proto.MusicGameSettleReqOuterClass;
|
|
import emu.grasscutter.server.game.GameSession;
|
|
import emu.grasscutter.server.packet.send.PacketActivityInfoNotify;
|
|
import emu.grasscutter.server.packet.send.PacketMusicGameSettleRsp;
|
|
|
|
@Opcodes(PacketOpcodes.MusicGameSettleReq)
|
|
public class HandlerMusicGameSettleReq extends PacketHandler {
|
|
|
|
@Override
|
|
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
|
var req = MusicGameSettleReqOuterClass.MusicGameSettleReq.parseFrom(payload);
|
|
|
|
var playerData = session.getPlayer().getActivityManager().getPlayerActivityDataByActivityType(ActivityType.NEW_ACTIVITY_MUSIC_GAME);
|
|
if (playerData.isEmpty()) {
|
|
return;
|
|
}
|
|
var handler = (MusicGameActivityHandler) playerData.get().getActivityHandler();
|
|
boolean isNewRecord = false;
|
|
// check if custom beatmap
|
|
|
|
// TODO: PROTO IS OBFUSCATED, NEED TO GET PROPER VALUES.
|
|
// Discovered: 23/08/2022.
|
|
// Probably was an issue in 2.8 but was discovered in 3.0 port.
|
|
// - Benj
|
|
|
|
/*if (req.getMusicShareId() == 0) {
|
|
session.getPlayer().getActivityManager().triggerWatcher(
|
|
WatcherTriggerType.TRIGGER_FLEUR_FAIR_MUSIC_GAME_REACH_SCORE,
|
|
String.valueOf(req.getMusicBasicId()),
|
|
String.valueOf(req.getScore())
|
|
);
|
|
|
|
isNewRecord = handler.setMusicGameRecord(playerData.get(),
|
|
MusicGamePlayerData.MusicGameRecord.of()
|
|
.musicId(req.getMusicBasicId())
|
|
.maxCombo(req.getMaxCombo())
|
|
.maxScore(req.getScore())
|
|
.build());
|
|
|
|
// update activity info
|
|
session.send(new PacketActivityInfoNotify(handler.toProto(playerData.get())));
|
|
}else {
|
|
handler.setMusicGameCustomBeatmapRecord(playerData.get(),
|
|
MusicGamePlayerData.CustomBeatmapRecord.of()
|
|
.musicShareId(req.getMusicShareId())
|
|
.score(req.getMaxCombo())
|
|
.settle(req.getSuccess())
|
|
.build());
|
|
}
|
|
|
|
|
|
session.send(new PacketMusicGameSettleRsp(req.getMusicBasicId(), req.getMusicShareId(), isNewRecord));*/
|
|
}
|
|
|
|
}
|