BlockHorizons / BlockSniper

An advanced (brush) world editing plugin for PocketMine-MP
https://poggit.pmmp.io/p/BlockSniper/
Apache License 2.0
76 stars 41 forks source link

Incorrect behaviour from /clone and /paste commands #82

Closed 95CivicSi closed 6 years ago

95CivicSi commented 6 years ago

Description

Error Condition
When using /clone or /paste without arguments, the client receives an error message An unknown error occured while attempting to perform this command and the console / server log produces errors (listed below).

Expected Behavior
At minimum, a usage message is expected. Preferable response would be to present options for the user to modify the behaviors of clone and paste (eg, Save Air Blocks, Radius etc).

Versions

Crashdump and/or console errors

13.11 01:45:07 [Server] Server thread/CRITICAL ErrorException: "Undefined offset: 0" (EXCEPTION) in "BlockSniper_dev-292.phar/src/BlockHorizons/BlockSniper/commands/cloning/CloneCommand" at line 37
13.11 01:45:07 [Server] Server thread/DEBUG #0 BlockSniper_dev-292.phar/src/BlockHorizons/BlockSniper/commands/cloning/CloneCommand(37): pocketmine\error_handler(integer 8, string Undefined offset: 0, string phar:///plugins/BlockSniper_dev-292.phar/src/BlockHorizons/BlockSniper/commands/cloning/CloneCommand.php, integer 37, array Array())
13.11 01:45:07 [Server] Server thread/DEBUG #1 src/pocketmine/command/SimpleCommandMap(258): BlockHorizons\BlockSniper\commands\cloning\CloneCommand->execute(pocketmine\Player object, string clone, array Array())
13.11 01:45:07 [Server] Server thread/DEBUG #2 src/pocketmine/Server(1984): pocketmine\command\SimpleCommandMap->dispatch(pocketmine\Player object, string clone)
13.11 01:45:07 [Server] Server thread/DEBUG #3 src/pocketmine/Player(2126): pocketmine\Server->dispatchCommand(pocketmine\Player object, string clone)
13.11 01:45:07 [Server] Server thread/DEBUG #4 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(220): pocketmine\Player->chat(string /clone)
13.11 01:45:07 [Server] Server thread/DEBUG #5 src/pocketmine/network/mcpe/protocol/CommandRequestPacket(47): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleCommandRequest(pocketmine\network\mcpe\protocol\CommandRequestPacket object)
13.11 01:45:07 [Server] Server thread/DEBUG #6 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(92): pocketmine\network\mcpe\protocol\CommandRequestPacket->handle(pocketmine\network\mcpe\PlayerNetworkSessionAdapter object)
13.11 01:45:07 [Server] Server thread/DEBUG #7 src/pocketmine/network/mcpe/protocol/BatchPacket(115): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(pocketmine\network\mcpe\protocol\CommandRequestPacket object)
13.11 01:45:07 [Server] Server thread/DEBUG #8 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(92): pocketmine\network\mcpe\protocol\BatchPacket->handle(pocketmine\network\mcpe\PlayerNetworkSessionAdapter object)
13.11 01:45:07 [Server] Server thread/DEBUG #9 src/pocketmine/Player(3011): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(pocketmine\network\mcpe\protocol\BatchPacket object)
13.11 01:45:07 [Server] Server thread/DEBUG #10 src/pocketmine/network/mcpe/RakLibInterface(143): pocketmine\Player->handleDataPacket(pocketmine\network\mcpe\protocol\BatchPacket object)
13.11 01:45:07 [Server] Server thread/DEBUG #11 src/raklib/server/ServerHandler(97): pocketmine\network\mcpe\RakLibInterface->handleEncapsulated(string 66.26.150.23:60211, raklib\protocol\EncapsulatedPacket object, integer 0)
13.11 01:45:07 [Server] Server thread/DEBUG #12 src/pocketmine/network/mcpe/RakLibInterface(82): raklib\server\ServerHandler->handlePacket()
13.11 01:45:07 [Server] Server thread/DEBUG #13 src/pocketmine/network/Network(89): pocketmine\network\mcpe\RakLibInterface->process()
13.11 01:45:07 [Server] Server thread/DEBUG #14 src/pocketmine/Server(2518): pocketmine\network\Network->processInterfaces()
13.11 01:45:07 [Server] Server thread/DEBUG #15 src/pocketmine/Server(2274): pocketmine\Server->tick()
13.11 01:45:07 [Server] Server thread/DEBUG #16 src/pocketmine/Server(2149): pocketmine\Server->tickProcessor()
13.11 01:45:07 [Server] Server thread/DEBUG #17 src/pocketmine/Server(1731): pocketmine\Server->start()
13.11 01:45:07 [Server] Server thread/DEBUG #18 src/pocketmine/PocketMine(564): pocketmine\Server->__construct(BaseClassLoader object, pocketmine\utils\MainLogger object, string phar:///jar/PocketMine-MP.phar/, string /, string /plugins/)
13.11 01:45:07 [Server] Server thread/DEBUG #19 /jar/PocketMine-MP.phar(1): require(string phar:///jar/PocketMine-MP.phar/src/pocketmine/PocketMine.php)

Error from paste command:

13.11 01:46:32 [Server] Server thread/CRITICAL ErrorException: "Undefined offset: 0" (EXCEPTION) in "BlockSniper_dev-292.phar/src/BlockHorizons/BlockSniper/commands/cloning/PasteCommand" at line 35
13.11 01:46:32 [Server] Server thread/DEBUG #0 BlockSniper_dev-292.phar/src/BlockHorizons/BlockSniper/commands/cloning/PasteCommand(35): pocketmine\error_handler(integer 8, string Undefined offset: 0, string phar:///plugins/BlockSniper_dev-292.phar/src/BlockHorizons/BlockSniper/commands/cloning/PasteCommand.php, integer 35, array Array())
13.11 01:46:32 [Server] Server thread/DEBUG #1 src/pocketmine/command/SimpleCommandMap(258): BlockHorizons\BlockSniper\commands\cloning\PasteCommand->execute(pocketmine\Player object, string paste, array Array())
13.11 01:46:32 [Server] Server thread/DEBUG #2 src/pocketmine/Server(1984): pocketmine\command\SimpleCommandMap->dispatch(pocketmine\Player object, string paste)
13.11 01:46:32 [Server] Server thread/DEBUG #3 src/pocketmine/Player(2126): pocketmine\Server->dispatchCommand(pocketmine\Player object, string paste)
13.11 01:46:32 [Server] Server thread/DEBUG #4 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(220): pocketmine\Player->chat(string /paste)
13.11 01:46:32 [Server] Server thread/DEBUG #5 src/pocketmine/network/mcpe/protocol/CommandRequestPacket(47): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleCommandRequest(pocketmine\network\mcpe\protocol\CommandRequestPacket object)
13.11 01:46:32 [Server] Server thread/DEBUG #6 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(92): pocketmine\network\mcpe\protocol\CommandRequestPacket->handle(pocketmine\network\mcpe\PlayerNetworkSessionAdapter object)
13.11 01:46:32 [Server] Server thread/DEBUG #7 src/pocketmine/network/mcpe/protocol/BatchPacket(115): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(pocketmine\network\mcpe\protocol\CommandRequestPacket object)
13.11 01:46:32 [Server] Server thread/DEBUG #8 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(92): pocketmine\network\mcpe\protocol\BatchPacket->handle(pocketmine\network\mcpe\PlayerNetworkSessionAdapter object)
13.11 01:46:32 [Server] Server thread/DEBUG #9 src/pocketmine/Player(3011): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(pocketmine\network\mcpe\protocol\BatchPacket object)
13.11 01:46:32 [Server] Server thread/DEBUG #10 src/pocketmine/network/mcpe/RakLibInterface(143): pocketmine\Player->handleDataPacket(pocketmine\network\mcpe\protocol\BatchPacket object)
13.11 01:46:32 [Server] Server thread/DEBUG #11 src/raklib/server/ServerHandler(97): pocketmine\network\mcpe\RakLibInterface->handleEncapsulated(string 66.26.150.23:60211, raklib\protocol\EncapsulatedPacket object, integer 0)
13.11 01:46:32 [Server] Server thread/DEBUG #12 src/pocketmine/network/mcpe/RakLibInterface(82): raklib\server\ServerHandler->handlePacket()
13.11 01:46:32 [Server] Server thread/DEBUG #13 src/pocketmine/network/Network(89): pocketmine\network\mcpe\RakLibInterface->process()
13.11 01:46:32 [Server] Server thread/DEBUG #14 src/pocketmine/Server(2518): pocketmine\network\Network->processInterfaces()
13.11 01:46:32 [Server] Server thread/DEBUG #15 src/pocketmine/Server(2274): pocketmine\Server->tick()
13.11 01:46:32 [Server] Server thread/DEBUG #16 src/pocketmine/Server(2149): pocketmine\Server->tickProcessor()
13.11 01:46:32 [Server] Server thread/DEBUG #17 src/pocketmine/Server(1731): pocketmine\Server->start()
13.11 01:46:32 [Server] Server thread/DEBUG #18 src/pocketmine/PocketMine(564): pocketmine\Server->__construct(BaseClassLoader object, pocketmine\utils\MainLogger object, string phar:///jar/PocketMine-MP.phar/, string /, string /plugins/)
13.11 01:46:32 [Server] Server thread/DEBUG #19 /jar/PocketMine-MP.phar(1): require(string phar:///jar/PocketMine-MP.phar/src/pocketmine/PocketMine.php)
Sandertv commented 6 years ago

Fixed in the latest commit. (and poggit release)