From f61d40a4de819e395ec9c151592e519af7255dbe Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Sun, 8 Oct 2023 06:53:26 -0700 Subject: [PATCH] Implement `SpringTransferCsReq` --- .../recv/HandlerSpringTransferCsReq.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/main/java/emu/lunarcore/server/packet/recv/HandlerSpringTransferCsReq.java diff --git a/src/main/java/emu/lunarcore/server/packet/recv/HandlerSpringTransferCsReq.java b/src/main/java/emu/lunarcore/server/packet/recv/HandlerSpringTransferCsReq.java new file mode 100644 index 0000000..e85d192 --- /dev/null +++ b/src/main/java/emu/lunarcore/server/packet/recv/HandlerSpringTransferCsReq.java @@ -0,0 +1,32 @@ +package emu.lunarcore.server.packet.recv; + +import emu.lunarcore.game.scene.entity.EntityProp; +import emu.lunarcore.game.scene.entity.GameEntity; +import emu.lunarcore.proto.SpringTransferCsReqOuterClass.SpringTransferCsReq; +import emu.lunarcore.server.game.GameSession; +import emu.lunarcore.server.packet.CmdId; +import emu.lunarcore.server.packet.Opcodes; +import emu.lunarcore.server.packet.PacketHandler; + +@Opcodes(CmdId.SpringTransferCsReq) +public class HandlerSpringTransferCsReq extends PacketHandler { + + @Override + public void handle(GameSession session, byte[] header, byte[] data) throws Exception { + var req = SpringTransferCsReq.parseFrom(data); + + GameEntity entity = session.getPlayer().getScene().getEntityById(req.getPropEntityId()); + if (entity != null && entity instanceof EntityProp prop) { + var anchor = session.getPlayer().getScene().getFloorInfo().getAnchorInfo( + prop.getPropInfo().getAnchorGroupID(), + prop.getPropInfo().getAnchorID() + ); + if (anchor != null) { + session.getPlayer().moveTo(anchor.getPos()); + } + } + + session.send(CmdId.SpringTransferScRsp); + } + +}