Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Driller crashes the server #389

Open
ZexKenden opened this issue May 28, 2022 · 0 comments
Open

Driller crashes the server #389

ZexKenden opened this issue May 28, 2022 · 0 comments
Assignees

Comments

@ZexKenden
Copy link

This Crashed Everytime when use Driller Enchant

Link to crashdump:

PocketMine-MP Crash Dump Sat May 28 00:42:31 UTC 2022

PocketMine-MP version: 4.3.1 [Protocol 503]
Git commit: f7dce4af8802ce28a8286e1c8002af19cf986c62
PHP version: 8.0.17
OS: Linux, linux

THIS CRASH WAS CAUSED BY A PLUGIN
BAD PLUGIN: PiggyCustomEnchants

Error: Trying to access array offset on value of type null
File: plugins/PiggyCustomEnchants_v3.0.1/src/DaPigGuy/PiggyCustomEnchants/enchants/tools/DrillerEnchant
Line: 44
Type: ErrorException
Backtrace:
#0 plugins/PiggyCustomEnchants_v3.0.1/src/DaPigGuy/PiggyCustomEnchants/enchants/tools/DrillerEnchant(44): pocketmine\errorhandler\ErrorToExceptionHandler::handle(integer 2, string[51] Trying to access array offset on value of type null, string[117] /home/container/plugins/PiggyCustomEnchants_v3.0.1/src/DaPigGuy/PiggyCustomEncha, integer 44)
#1 plugins/PiggyCustomEnchants_v3.0.1/src/DaPigGuy/PiggyCustomEnchants/enchants/miscellaneous/RecursiveEnchant(22): DaPigGuy\PiggyCustomEnchants\enchants\tools\DrillerEnchant->safeReact(object pocketmine\player\Player#103889, object pocketmine\item\Pickaxe#155197, object pocketmine\inventory\PlayerInventory#103725, integer 6, object pocketmine\event\block\BlockBreakEvent#158634, integer 5, integer 5)
#2 plugins/PiggyCustomEnchants_v3.0.1/src/DaPigGuy/PiggyCustomEnchants/enchants/traits/ReactiveTrait(48): DaPigGuy\PiggyCustomEnchants\enchants\miscellaneous\RecursiveEnchant->react(object pocketmine\player\Player#103889, object pocketmine\item\Pickaxe#155197, object pocketmine\inventory\PlayerInventory#103725, integer 6, object pocketmine\event\block\BlockBreakEvent#158634, integer 5, integer 5)
#3 plugins/PiggyCustomEnchants_v3.0.1/src/DaPigGuy/PiggyCustomEnchants/enchants/traits/ReactiveTrait(134): DaPigGuy\PiggyCustomEnchants\enchants\ReactiveEnchantment->onReaction(object pocketmine\player\Player#103889, object pocketmine\item\Pickaxe#155197, object pocketmine\inventory\PlayerInventory#103725, integer 6, object pocketmine\event\block\BlockBreakEvent#158634, integer 5, integer 5)
#4 plugins/PiggyCustomEnchants_v3.0.1/src/DaPigGuy/PiggyCustomEnchants/EventListener(68): DaPigGuy\PiggyCustomEnchants\enchants\ReactiveEnchantment::attemptReaction(object pocketmine\player\Player#103889, object pocketmine\event\block\BlockBreakEvent#158634)
#5 pmsrc/src/event/RegisteredListener(75): DaPigGuy\PiggyCustomEnchants\EventListener->onBreak(object pocketmine\event\block\BlockBreakEvent#158634)
#6 pmsrc/src/event/Event(62): pocketmine\event\RegisteredListener->callEvent(object pocketmine\event\block\BlockBreakEvent#158634)
#7 pmsrc/src/world/World(1750): pocketmine\event\Event->call()
#8 pmsrc/src/player/Player(1646): pocketmine\world\World->useBreakOn(object pocketmine\math\Vector3#158494, object pocketmine\item\Pickaxe#158127, object pocketmine\player\Player#103889, true)
#9 pmsrc/src/network/mcpe/handler/InGamePacketHandler(453): pocketmine\player\Player->breakBlock(object pocketmine\math\Vector3#157927)
#10 pmsrc/src/network/mcpe/handler/InGamePacketHandler(304): pocketmine\network\mcpe\handler\InGamePacketHandler->handleUseItemTransaction(object pocketmine\network\mcpe\protocol\types\inventory\UseItemTransactionData#158114)
#11 pmsrc/vendor/pocketmine/bedrock-protocol/src/InventoryTransactionPacket(105): pocketmine\network\mcpe\handler\InGamePacketHandler->handleInventoryTransaction(object pocketmine\network\mcpe\protocol\InventoryTransactionPacket#158085)
#12 pmsrc/src/network/mcpe/NetworkSession(398): pocketmine\network\mcpe\protocol\InventoryTransactionPacket->handle(object pocketmine\network\mcpe\handler\InGamePacketHandler#151635)
#13 pmsrc/src/network/mcpe/NetworkSession(361): pocketmine\network\mcpe\NetworkSession->handleDataPacket(object pocketmine\network\mcpe\protocol\InventoryTransactionPacket#158085, string[593] .........U....................OriginalDisplayTag...Name....r..l..eZe..6us Pickax)
#14 pmsrc/src/network/mcpe/raklib/RakLibInterface(192): pocketmine\network\mcpe\NetworkSession->handleEncoded(string[608] ..Ok.`...'Oj..U...Qr.E.&.(.keC..f.....c......0...w..r."x.Q*..Z....N;......:.....)
#15 pmsrc/vendor/pocketmine/raklib-ipc/src/RakLibToUserThreadMessageReceiver(42): pocketmine\network\mcpe\raklib\RakLibInterface->onPacketReceive(integer 2, string[617] .........s...M=|.9...Q.....Gx...5........yvpH7M];$%)NV....l..6...Y-n.2..!..t.j+|)
#16 pmsrc/src/network/mcpe/raklib/RakLibInterface(122): raklib\server\ipc\RakLibToUserThreadMessageReceiver->handle(object pocketmine\network\mcpe\raklib\RakLibInterface#36073)
#17 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(123): pocketmine\network\mcpe\raklib\RakLibInterface->pocketmine\network\mcpe\raklib{closure}()
#18 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(82): pocketmine\snooze\SleeperHandler->processNotifications()
#19 pmsrc/src/Server(1661): pocketmine\snooze\SleeperHandler->sleepUntil(double 1653698551.474)
#20 pmsrc/src/Server(1047): pocketmine\Server->tickProcessor()
#21 pmsrc/src/PocketMine(304): pocketmine\Server->__construct(object BaseClassLoader#2, object pocketmine\utils\MainLogger#3, string[16] /home/container/, string[24] /home/container/plugins/)
#22 pmsrc/src/PocketMine(327): pocketmine\server()
#23 pmsrc(11): require(string[60] phar:///home/container/PocketMine-MP.phar/src/PocketMine.php)

Code:
[35]
[36] public function getDefaultExtraData(): array
[37] {
[38] return ["distanceMultiplier" => 1];
[39] }
[40]
[41] public function safeReact(Player $player, Item $item, Inventory $inventory, int $slot, Event $event, int $level, int $stack): void
[42] {
[43] if ($event instanceof BlockBreakEvent) {
[44] $breakFace = self::$lastBreakFace[$player->getName()];
[45] for ($i = 0; $i <= $level * $this->extraData["distanceMultiplier"]; $i++) {
[46] $block = $event->getBlock()->getSide(Facing::opposite($breakFace), $i);
[47] $faceLeft = Facing::rotate($breakFace, Facing::axis($breakFace) !== Axis::Y ? Axis::Y : Axis::X, true);
[48] $faceUp = Facing::rotate($breakFace, Facing::axis($breakFace) !== Axis::Z ? Axis::Z : Axis::X, true);
[49] foreach ([
[50] $block->getSide($faceLeft), //Center Left
[51] $block->getSide(Facing::opposite($faceLeft)), //Center Right
[52] $block->getSide($faceUp), //Center Top
[53] $block->getSide(Facing::opposite($faceUp)), //Center Bottom
[54] $block->getSide($faceUp)->getSide($faceLeft), //Top Left

@Aericio Aericio changed the title Crashed Driller crashes the server May 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants