mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-07 04:17:07 +00:00
InGamePacketHandler: fixed missing synchronization of metadata when plugins cancel PlayerToggle*Event
This commit is contained in:
parent
e102339637
commit
a1d217e12b
@ -194,20 +194,16 @@ class InGamePacketHandler extends PacketHandler{
|
|||||||
$this->forceMoveSync = false;
|
$this->forceMoveSync = false;
|
||||||
|
|
||||||
$sneaking = $this->resolveOnOffInputFlags($packet, PlayerAuthInputFlags::START_SNEAKING, PlayerAuthInputFlags::STOP_SNEAKING);
|
$sneaking = $this->resolveOnOffInputFlags($packet, PlayerAuthInputFlags::START_SNEAKING, PlayerAuthInputFlags::STOP_SNEAKING);
|
||||||
if($sneaking !== null){
|
|
||||||
$this->player->toggleSneak($sneaking);
|
|
||||||
}
|
|
||||||
$sprinting = $this->resolveOnOffInputFlags($packet, PlayerAuthInputFlags::START_SPRINTING, PlayerAuthInputFlags::STOP_SPRINTING);
|
$sprinting = $this->resolveOnOffInputFlags($packet, PlayerAuthInputFlags::START_SPRINTING, PlayerAuthInputFlags::STOP_SPRINTING);
|
||||||
if($sprinting !== null){
|
|
||||||
$this->player->toggleSprint($sprinting);
|
|
||||||
}
|
|
||||||
$swimming = $this->resolveOnOffInputFlags($packet, PlayerAuthInputFlags::START_SWIMMING, PlayerAuthInputFlags::STOP_SWIMMING);
|
$swimming = $this->resolveOnOffInputFlags($packet, PlayerAuthInputFlags::START_SWIMMING, PlayerAuthInputFlags::STOP_SWIMMING);
|
||||||
if($swimming !== null){
|
|
||||||
$this->player->toggleSwim($swimming);
|
|
||||||
}
|
|
||||||
$gliding = $this->resolveOnOffInputFlags($packet, PlayerAuthInputFlags::START_GLIDING, PlayerAuthInputFlags::STOP_GLIDING);
|
$gliding = $this->resolveOnOffInputFlags($packet, PlayerAuthInputFlags::START_GLIDING, PlayerAuthInputFlags::STOP_GLIDING);
|
||||||
if($gliding !== null){
|
$mismatch =
|
||||||
$this->player->toggleGlide($gliding);
|
($sneaking !== null && !$this->player->toggleSneak($sneaking)) |
|
||||||
|
($sprinting !== null && !$this->player->toggleSprint($sprinting)) |
|
||||||
|
($swimming !== null && !$this->player->toggleSwim($swimming)) |
|
||||||
|
($gliding !== null && !$this->player->toggleGlide($gliding));
|
||||||
|
if((bool) $mismatch){
|
||||||
|
$this->player->sendData([$this->player]);
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: this packet has WAYYYYY more useful information that we're not using
|
//TODO: this packet has WAYYYYY more useful information that we're not using
|
||||||
|
Loading…
x
Reference in New Issue
Block a user