Files
Grasscutter/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetUgcReq.java
T
KingRainbow44 262ee38ded Create files from Grasscutter-Quests
these files are NOT directly compatible with Grasscutter, and require additional modifications to the codebase to work.
2023-03-31 23:58:12 -04:00

49 lines
1.6 KiB
Java

package emu.grasscutter.server.packet.recv;
import emu.grasscutter.game.activity.musicgame.MusicGameBeatmap;
import emu.grasscutter.net.packet.Opcodes;
import emu.grasscutter.net.packet.PacketHandler;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.RetcodeOuterClass;
import emu.grasscutter.net.proto.UgcTypeOuterClass;
import emu.grasscutter.server.game.GameSession;
import emu.grasscutter.server.packet.send.PacketGetUgcRsp;
import emu.grasscutter.net.proto.GetUgcReqOuterClass.GetUgcReq;
import lombok.val;
@Opcodes(PacketOpcodes.GetUgcReq)
public class HandlerGetUgcReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
val req = GetUgcReq.parseFrom(payload);
PacketGetUgcRsp rsp = null;
if(req.getUgcType() == UgcTypeOuterClass.UgcType.UGC_TYPE_MUSIC_GAME) {
val musicGameBeatmap = MusicGameBeatmap.getByShareId(req.getUgcGuid());
if (musicGameBeatmap != null) {
rsp = new PacketGetUgcRsp(
musicGameBeatmap.toBriefProto().build(),
musicGameBeatmap.toProto(),
req
);
} else {
rsp = new PacketGetUgcRsp(
RetcodeOuterClass.Retcode.RET_UGC_DATA_NOT_FOUND,
req
);
}
}else {
rsp = new PacketGetUgcRsp(
RetcodeOuterClass.Retcode.RET_UGC_DISABLED,
req
);
}
session.send(rsp);
}
}