mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-21 11:24:47 +01:00
Fix player pausing
This commit is contained in:
@@ -4,22 +4,25 @@ import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.PlayerSetPauseReqOuterClass.PlayerSetPauseReq;
|
||||
import emu.grasscutter.net.proto.RetcodeOuterClass.Retcode;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketPlayerSetPauseRsp;
|
||||
import emu.grasscutter.server.packet.send.PacketPlayerTimeNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketSceneTimeNotify;
|
||||
|
||||
@Opcodes(PacketOpcodes.PlayerSetPauseReq)
|
||||
public class HandlerPlayerSetPauseReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
PlayerSetPauseReq req = PlayerSetPauseReq.parseFrom(payload);
|
||||
var req = PlayerSetPauseReq.parseFrom(payload);
|
||||
var player = session.getPlayer();
|
||||
var world = player.getWorld();
|
||||
|
||||
session.send(new PacketPlayerSetPauseRsp());
|
||||
session.getPlayer().setPaused(req.getIsPaused());
|
||||
|
||||
session.send(new PacketPlayerTimeNotify(session.getPlayer()));
|
||||
session.send(new PacketSceneTimeNotify(session.getPlayer()));
|
||||
// Check if the player is in a multiplayer world.
|
||||
if (player.isInMultiplayer()) {
|
||||
session.send(new PacketPlayerSetPauseRsp(Retcode.RET_FAIL));
|
||||
} else {
|
||||
world.setPaused(req.getIsPaused());
|
||||
session.send(new PacketPlayerSetPauseRsp(Retcode.RET_SUCC));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,10 @@ import emu.grasscutter.net.proto.RetcodeOuterClass.Retcode;
|
||||
|
||||
public class PacketPlayerSetPauseRsp extends BasePacket {
|
||||
|
||||
public PacketPlayerSetPauseRsp() {
|
||||
public PacketPlayerSetPauseRsp(Retcode retcode) {
|
||||
super(PacketOpcodes.PlayerSetPauseRsp);
|
||||
|
||||
this.setData(PlayerSetPauseRsp.newBuilder().setRetcode(Retcode.RET_SUCC_VALUE));
|
||||
this.setData(PlayerSetPauseRsp.newBuilder()
|
||||
.setRetcode(retcode.getNumber()));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user