From 23b62639bdcd93d9ec444ed3468d3f5a2ba544fd Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Fri, 29 Sep 2023 02:35:47 -0700 Subject: [PATCH] Handle `SetClientPausedCsReq` --- .../emu/lunarcore/game/player/Player.java | 4 ++++ .../recv/HandlerSetClientPausedCsReq.java | 21 +++++++++++++++++++ .../send/PacketSetClientPausedScRsp.java | 18 ++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 src/main/java/emu/lunarcore/server/packet/recv/HandlerSetClientPausedCsReq.java create mode 100644 src/main/java/emu/lunarcore/server/packet/send/PacketSetClientPausedScRsp.java diff --git a/src/main/java/emu/lunarcore/game/player/Player.java b/src/main/java/emu/lunarcore/game/player/Player.java index fc75631..73a2e29 100644 --- a/src/main/java/emu/lunarcore/game/player/Player.java +++ b/src/main/java/emu/lunarcore/game/player/Player.java @@ -32,6 +32,7 @@ import emu.lunarcore.server.packet.send.PacketSetHeroBasicTypeScRsp; import emu.lunarcore.util.Position; import lombok.Getter; +import lombok.Setter; @Entity(value = "players", useDiscriminator = false) @Getter @@ -60,6 +61,9 @@ public class Player { private int planeId; private int floorId; private int entryId; + + // Etc + @Setter private transient boolean paused; // Player managers private transient final AvatarStorage avatars; diff --git a/src/main/java/emu/lunarcore/server/packet/recv/HandlerSetClientPausedCsReq.java b/src/main/java/emu/lunarcore/server/packet/recv/HandlerSetClientPausedCsReq.java new file mode 100644 index 0000000..dbd2734 --- /dev/null +++ b/src/main/java/emu/lunarcore/server/packet/recv/HandlerSetClientPausedCsReq.java @@ -0,0 +1,21 @@ +package emu.lunarcore.server.packet.recv; + +import emu.lunarcore.proto.SetClientPausedCsReqOuterClass.SetClientPausedCsReq; +import emu.lunarcore.server.game.GameSession; +import emu.lunarcore.server.packet.CmdId; +import emu.lunarcore.server.packet.Opcodes; +import emu.lunarcore.server.packet.PacketHandler; +import emu.lunarcore.server.packet.send.PacketSetClientPausedScRsp; + +@Opcodes(CmdId.SetClientPausedCsReq) +public class HandlerSetClientPausedCsReq extends PacketHandler { + + @Override + public void handle(GameSession session, byte[] header, byte[] data) throws Exception { + var req = SetClientPausedCsReq.parseFrom(data); + + session.getPlayer().setPaused(req.getPaused()); + session.send(new PacketSetClientPausedScRsp(session.getPlayer())); + } + +} diff --git a/src/main/java/emu/lunarcore/server/packet/send/PacketSetClientPausedScRsp.java b/src/main/java/emu/lunarcore/server/packet/send/PacketSetClientPausedScRsp.java new file mode 100644 index 0000000..40e1c92 --- /dev/null +++ b/src/main/java/emu/lunarcore/server/packet/send/PacketSetClientPausedScRsp.java @@ -0,0 +1,18 @@ +package emu.lunarcore.server.packet.send; + +import emu.lunarcore.game.player.Player; +import emu.lunarcore.proto.SetClientPausedScRspOuterClass.SetClientPausedScRsp; +import emu.lunarcore.server.packet.BasePacket; +import emu.lunarcore.server.packet.CmdId; + +public class PacketSetClientPausedScRsp extends BasePacket { + + public PacketSetClientPausedScRsp(Player player) { + super(CmdId.SetClientPausedScRsp); + + var data = SetClientPausedScRsp.newInstance() + .setPaused(player.isPaused()); + + this.setData(data); + } +}