pmmp / PocketMine-MP

A server software for Minecraft: Bedrock Edition in PHP
https://pmmp.io
GNU Lesser General Public License v3.0
3.27k stars 1.54k forks source link

addActorPacket Problem #3653

Closed irpanXstrome closed 4 years ago

irpanXstrome commented 4 years ago

Before Pocketmine Update to 3.13 addActorPacket No error, but why now an error

Error: Argument 1 passed to pocketmine\network\mcpe\NetworkBinaryStream::putString() must be of the type string, int given, called in phar:///root/pmmp/PocketMine-MP.phar/src/pocketmine/network/mcpe/protocol/AddActorPacket.php on line 211 File: src/pocketmine/network/mcpe/NetworkBinaryStream Line: 62 Type: TypeError

A PLUGIN WAS INVOLVED IN THIS CRASH BAD PLUGIN: BlockPets v1.1.2

Code: [53] class NetworkBinaryStream extends BinaryStream{ [54] [55] private const DAMAGE_TAG = "Damage"; //TAG_Int [56] private const DAMAGE_TAG_CONFLICT_RESOLUTION = "_DamageProtocolCollisionResolution"; [57] [58] public function getString() : string{ [59] return $this->get($this->getUnsignedVarInt()); [60] } [61] [62] public function putString(string $v) : void{ [63] $this->putUnsignedVarInt(strlen($v)); [64] ($this->buffer .= $v); [65] } [66] [67] public function getUUID() : UUID{ [68] //This is actually two little-endian longs: UUID Most followed by UUID Least [69] $part1 = ((\unpack("V", $this->get(4))[1] << 32 >> 32)); [70] $part0 = ((\unpack("V", $this->get(4))[1] << 32 >> 32)); [71] $part3 = ((\unpack("V", $this->get(4))[1] << 32 >> 32)); [72] $part2 = ((\unpack("V", $this->get(4))[1] << 32 >> 32));

Backtrace:

0 src/pocketmine/network/mcpe/protocol/AddActorPacket(211): pocketmine\network\mcpe\NetworkBinaryStream->putString(integer 105)

1 src/pocketmine/network/mcpe/protocol/DataPacket(127): pocketmine\network\mcpe\protocol\AddActorPacket->encodePayload()

2 src/pocketmine/network/mcpe/RakLibInterface(244): pocketmine\network\mcpe\protocol\DataPacket->encode()

3 src/pocketmine/Player(3283): pocketmine\network\mcpe\RakLibInterface->putPacket(object JackMD\NameSpaceRemover\CustomPlayer, object pocketmine\network\mcpe\protocol\AddActorPacket, boolean , boolean )

4 src/pocketmine/Player(3300): pocketmine\Player->sendDataPacket(object pocketmine\network\mcpe\protocol\AddActorPacket, boolean , boolean )

5 plugins/BlockPets_FixIrpan_v1.1.3.phar/src/BlockHorizons/BlockPets/pets/BasePet(249): pocketmine\Player->dataPacket(object pocketmine\network\mcpe\protocol\AddActorPacket)

6 src/pocketmine/entity/Entity(1948): BlockHorizons\BlockPets\pets\BasePet->sendSpawnPacket(object JackMD\NameSpaceRemover\CustomPlayer)

7 plugins/BlockPets_FixIrpan_v1.1.3.phar/src/BlockHorizons/BlockPets/pets/BasePet(235): pocketmine\entity\Entity->spawnTo(object JackMD\NameSpaceRemover\CustomPlayer)

8 src/pocketmine/entity/Entity(1958): BlockHorizons\BlockPets\pets\BasePet->spawnTo(object JackMD\NameSpaceRemover\CustomPlayer)

9 plugins/BlockPets_FixIrpan_v1.1.3.phar/src/BlockHorizons/BlockPets/pets/BasePet(486): pocketmine\entity\Entity->spawnToAll()

10 plugins/BlockPets_FixIrpan_v1.1.3.phar/src/BlockHorizons/BlockPets/pets/HoveringPet(21): BlockHorizons\BlockPets\pets\BasePet->initEntity()

11 src/pocketmine/entity/Entity(637): BlockHorizons\BlockPets\pets\HoveringPet->initEntity()

12 plugins/BlockPets_FixIrpan_v1.1.3.phar/src/BlockHorizons/BlockPets/pets/BasePet(116): pocketmine\entity\Entity->__construct(object pocketmine\level\Level, object pocketmine\nbt\tag\CompoundTag)

13 plugins/BlockPets_FixIrpan_v1.1.3.phar/src/BlockHorizons/BlockPets/pets/IrasciblePet(28): BlockHorizons\BlockPets\pets\BasePet->__construct(object pocketmine\level\Level, object pocketmine\nbt\tag\CompoundTag)

14 src/pocketmine/entity/Entity(380): BlockHorizons\BlockPets\pets\IrasciblePet->__construct(object pocketmine\level\Level, object pocketmine\nbt\tag\CompoundTag)

15 plugins/BlockPets_FixIrpan_v1.1.3.phar/src/BlockHorizons/BlockPets/Loader(429): pocketmine\entity\Entity::createEntity(string[6] VexPet, object pocketmine\level\Level, object pocketmine\nbt\tag\CompoundTag)

16 plugins/BlockPets_FixIrpan_v1.1.3.phar/src/BlockHorizons/BlockPets/commands/SpawnPetCommand(99): BlockHorizons\BlockPets\Loader->createPet(string[3] Vex, object JackMD\NameSpaceRemover\CustomPlayer, string[4] Test, double 2, boolean )

17 plugins/BlockPets_FixIrpan_v1.1.3.phar/src/BlockHorizons/BlockPets/commands/BaseCommand(81): BlockHorizons\BlockPets\commands\SpawnPetCommand->onCommand(object pocketmine\command\ConsoleCommandSender, string[8] spawnpet, array[5])

18 src/pocketmine/command/SimpleCommandMap(248): BlockHorizons\BlockPets\commands\BaseCommand->execute(object pocketmine\command\ConsoleCommandSender, string[8] spawnpet, array[5])

19 src/pocketmine/Server(1811): pocketmine\command\SimpleCommandMap->dispatch(object pocketmine\command\ConsoleCommandSender, string[30] spawnpet vex Test 2 false theb)

20 src/pocketmine/Server(1423): pocketmine\Server->dispatchCommand(object pocketmine\command\ConsoleCommandSender, string[30] spawnpet vex Test 2 false theb)

21 vendor/pocketmine/snooze/src/SleeperHandler(123): pocketmine\Server->pocketmine{closure}()

22 vendor/pocketmine/snooze/src/SleeperHandler(85): pocketmine\snooze\SleeperHandler->processNotifications()

23 src/pocketmine/Server(2157): pocketmine\snooze\SleeperHandler->sleepUntil(double 1593395381.0187)

24 src/pocketmine/Server(1994): pocketmine\Server->tickProcessor()

25 src/pocketmine/Server(1588): pocketmine\Server->start()

26 src/pocketmine/PocketMine(273): pocketmine\Server->__construct(object BaseClassLoader, object pocketmine\utils\MainLogger, string[11] /root/pmmp/, string[19] /root/pmmp/plugins/)

27 src/pocketmine/PocketMine(304): pocketmine\server()

28 (11): require(string[66] phar:///root/pmmp/PocketMine-MP.phar/src/pocketmine/PocketMine.php)

tomo0611 commented 4 years ago

The API about AddActorPacket has been changed in the latest version. Please check your code Creating AddActorPacket and setting params in BlockPets_FixIrpan_v1.1.3.phar/src/BlockHorizons/BlockPets/pets/BasePet.

So it's not server software problem.

support[bot] commented 4 years ago

Thanks, but this issue tracker is not intended for support requests. Please read the guidelines on submitting an issue.

Docs | Discord | Forums