tedo0627 / RedstoneCircuit

This is the PocketMine plugin that implements the Redstone circuit.
GNU General Public License v3.0
84 stars 51 forks source link

Crash whit slime block #88

Closed MrBlasyMSK closed 2 years ago

MrBlasyMSK commented 2 years ago

Describe the bug When I activated the pistons with the slime block, the server was closed.

To Reproduce Steps to reproduce the behavior:

  1. Put a slime block with a piston or sticky piston.
  2. Activate it
  3. Crash

Screenshots or videos X

OS and versions (All info in crashdump)

Plugins

VanillaX, RedstoneCircuit Nop i didnt test it **Crashdump, backtrace or other files** ``` PocketMine-MP Crash Dump Thu Mar 31 14:28:34 UTC 2022 PocketMine-MP version: 4.2.5 [Protocol 486] Git commit: a6cb3313b05fa103ec0b85767e04a6ad9f693149 PHP version: 8.0.17 OS: Linux, linux THIS CRASH WAS CAUSED BY A PLUGIN BAD PLUGIN: RedstoneCircuit Error: Undefined array key 0 File: plugins/RedstoneCircuit_dev-78.phar/src/tedo0627/redstonecircuit/block/BlockTable Line: 92 Type: ErrorException Backtrace: #0 plugins/RedstoneCircuit_dev-78.phar/src/tedo0627/redstonecircuit/block/BlockTable(92): pocketmine\errorhandler\ErrorToExceptionHandler::handle(integer 2, string[21] Undefined array key 0, string[108] phar:///home/container/plugins/RedstoneCircuit_dev-78.phar/src/tedo0627/redstone, integer 92) #1 plugins/RedstoneCircuit_dev-78.phar/src/tedo0627/redstonecircuit/block/MovingBlockTrait(80): tedo0627\redstonecircuit\block\BlockTable->getStates(integer 5, integer 0) #2 plugins/RedstoneCircuit_dev-78.phar/src/tedo0627/redstonecircuit/block/mechanism/BlockPiston(160): tedo0627\redstonecircuit\block\mechanism\BlockMoving->setMovingBlock(object pocketmine\block\Planks#572734, NULL ) #3 plugins/RedstoneCircuit_dev-78.phar/src/tedo0627/redstonecircuit/block/mechanism/BlockPiston(107): tedo0627\redstonecircuit\block\mechanism\BlockPiston->push() #4 pmsrc/src/world/World(850): tedo0627\redstonecircuit\block\mechanism\BlockPiston->onScheduledUpdate() #5 pmsrc/src/world/World(807): pocketmine\world\World->actuallyDoTick(integer 36057) #6 pmsrc/src/world/WorldManager(362): pocketmine\world\World->doTick(integer 36057) #7 pmsrc/src/Server(1775): pocketmine\world\WorldManager->tick(integer 36057) #8 pmsrc/src/Server(1657): pocketmine\Server->tick() #9 pmsrc/src/Server(1046): pocketmine\Server->tickProcessor() #10 pmsrc/src/PocketMine(304): pocketmine\Server->__construct(object BaseClassLoader#2, object pocketmine\utils\MainLogger#3, string[16] /home/container/, string[24] /home/container/plugins/) #11 pmsrc/src/PocketMine(327): pocketmine\server() #12 pmsrc(11): require(string[60] phar:///home/container/PocketMine-MP.phar/src/PocketMine.php) ```
MrBlasyMSK commented 2 years ago
PocketMine-MP Crash Dump Thu Mar 31 14:39:41 UTC 2022

PocketMine-MP version: 4.2.5 [Protocol 486]
Git commit: a6cb3313b05fa103ec0b85767e04a6ad9f693149
PHP version: 8.0.17
OS: Linux, linux

THIS CRASH WAS CAUSED BY A PLUGIN
BAD PLUGIN: RedstoneCircuit

Error: Undefined array key 0
File: plugins/RedstoneCircuit_dev-78.phar/src/tedo0627/redstonecircuit/block/BlockTable
Line: 92
Type: ErrorException
Backtrace:
#0 plugins/RedstoneCircuit_dev-78.phar/src/tedo0627/redstonecircuit/block/BlockTable(92): pocketmine\errorhandler\ErrorToExceptionHandler::handle(integer 2, string[21] Undefined array key 0, string[108] phar:///home/container/plugins/RedstoneCircuit_dev-78.phar/src/tedo0627/redstone, integer 92)
#1 plugins/RedstoneCircuit_dev-78.phar/src/tedo0627/redstonecircuit/block/MovingBlockTrait(80): tedo0627\redstonecircuit\block\BlockTable->getStates(integer 5, integer 0)
#2 plugins/RedstoneCircuit_dev-78.phar/src/tedo0627/redstonecircuit/block/mechanism/BlockPiston(160): tedo0627\redstonecircuit\block\mechanism\BlockMoving->setMovingBlock(object pocketmine\block\Planks#620656, NULL )
#3 plugins/RedstoneCircuit_dev-78.phar/src/tedo0627/redstonecircuit/block/mechanism/BlockPiston(107): tedo0627\redstonecircuit\block\mechanism\BlockPiston->push()
#4 pmsrc/src/world/World(850): tedo0627\redstonecircuit\block\mechanism\BlockPiston->onScheduledUpdate()
#5 pmsrc/src/world/World(807): pocketmine\world\World->actuallyDoTick(integer 1676)
#6 pmsrc/src/world/WorldManager(362): pocketmine\world\World->doTick(integer 1676)
#7 pmsrc/src/Server(1775): pocketmine\world\WorldManager->tick(integer 1676)
#8 pmsrc/src/Server(1657): pocketmine\Server->tick()
#9 pmsrc/src/Server(1046): pocketmine\Server->tickProcessor()
#10 pmsrc/src/PocketMine(304): pocketmine\Server->__construct(object BaseClassLoader#2, object pocketmine\utils\MainLogger#3, string[16] /home/container/, string[24] /home/container/plugins/)
#11 pmsrc/src/PocketMine(327): pocketmine\server()
#12 pmsrc(11): require(string[60] phar:///home/container/PocketMine-MP.phar/src/PocketMine.php)

Happens whit a normal block too

tedo0627 commented 2 years ago

I can confirm this bug. I will fix it.

tedo0627 commented 2 years ago

I have fixed this bug. I was not able to reproduce this bug at first when I saw your method to reproduce it. I could not reproduce this bug because the problem is not with slime blocks but with oak wood, and the reproduction method does not mention oak wood. So please write as clearly as possible about how to reproduce it. For example, what other blocks are attached to the slime block and how to activate it. It is okay to put up images of the circuit, so please do so.

MrBlasyMSK commented 2 years ago

Is fixed in the last ver