NetherGamesMC / PocketMine-MP

A multi protocol server software for Minecraft: Bedrock Edition in PHP
https://pmmp.io
GNU Lesser General Public License v3.0
81 stars 99 forks source link

Slowness effect crashes the server #460

Closed GameParrot closed 2 months ago

GameParrot commented 5 months ago
[10:23:52.955] [Server thread/EMERGENCY]: Crash occurred while handling a packet from session: GxmePqrrot
[10:23:52.955] [Server thread/CRITICAL]: InvalidArgumentException: "Default -3.74 is outside the range 0 - 3.4028234663853E+38" (EXCEPTION) in "pmsrc/src/entity/Attribute" at line 114
--- Stack trace ---
  #0 pmsrc/src/entity/Living(289): pocketmine\entity\Attribute->setDefaultValue(float -3.74)
  #1 pmsrc/src/entity/effect/SlownessEffect(31): pocketmine\entity\Living->setDefaultSpeed(float -3.74, true)
  #2 pmsrc/src/entity/effect/EffectManager(155): pocketmine\entity\effect\SlownessEffect->add(object xenonCore\Players\DivinityPlayer#138447, object pocketmine\entity\effect\EffectInstance#91338)
  #3 pmsrc/src/command/defaults/EffectCommand(115): pocketmine\entity\effect\EffectManager->add(object pocketmine\entity\effect\EffectInstance#91338)
  #4 pmsrc/src/command/SimpleCommandMap(212): pocketmine\command\defaults\EffectCommand->execute(object xenonCore\Players\DivinityPlayer#98540, string[6] effect, array[4])
  #5 pmsrc/src/Server(1475): pocketmine\command\SimpleCommandMap->dispatch(object xenonCore\Players\DivinityPlayer#98540, string[31] effect closetinq slowness 1 255)
  #6 pmsrc/src/player/Player(1521): pocketmine\Server->dispatchCommand(object xenonCore\Players\DivinityPlayer#98540, string[31] effect closetinq slowness 1 255)
  #7 pmsrc/src/network/mcpe/handler/InGamePacketHandler(864): pocketmine\player\Player->chat(string[32] /effect closetinq slowness 1 255)
  #8 pmsrc/vendor/gameparrot/bedrock-protocol/src/CommandRequestPacket(59): pocketmine\network\mcpe\handler\InGamePacketHandler->handleCommandRequest(object pocketmine\network\mcpe\protocol\CommandRequestPacket#191847)
  #9 pmsrc/src/network/mcpe/NetworkSession(534): pocketmine\network\mcpe\protocol\CommandRequestPacket->handle(object pocketmine\network\mcpe\handler\InGamePacketHandler#124802)
  #10 pmsrc/src/network/mcpe/NetworkSession(456): pocketmine\network\mcpe\NetworkSession->handleDataPacket(object pocketmine\network\mcpe\protocol\CommandRequestPacket#191847, string[53] M /effect closetinq slowness 1 255..O.7GuX~\.. ......)

This is because setDefaultSpeed is used instead of setMovementSpeed in https://github.com/NetherGamesMC/PocketMine-MP/blob/3ad627298812eae23beb7d4695d7c13c41c54231/src/entity/effect/SlownessEffect.php#L31

dries-c commented 5 months ago

Slowness 255 is very slow though, does this happen in default PM?

GameParrot commented 4 months ago

Slowness 255 is very slow though, does this happen in default PM?

This crash does not happen in default pm