SergeyDertan / SRegionProtector-pmmp

Flexible protection plugin for PocketMine
GNU General Public License v3.0
3 stars 0 forks source link

Server crash #4

Closed Crypt97 closed 5 years ago

Crypt97 commented 5 years ago
PocketMine-MP Crash Dump Fri Jun 14 23:11:09 BST 2019

Error: Call to a member function getName() on null
File: plugins/SRegionProtector-pmmp_dev-10.phar/src/sergeydertan/sregionprotector/event/RegionEventsHandler
Line: 109
Type: Error

THIS CRASH WAS CAUSED BY A PLUGIN
BAD PLUGIN: SRegionProtector v1.0

Code:
[100]             }
[101]         }
[102]         $this->handleEvent(RegionFlags::FLAG_BREAK, $e->getBlock(), $e, $e->getPlayer());
[103]     }
[104] 
[105]     private function handleEvent(int $flag, Position $pos, Event $event, Player $player = null, bool $mustBeMember = true, bool $checkPerm = true): void
[106]     {
[107]         if (!$this->flagStatus[$flag]) return;
[108]         if ($checkPerm && ($player !== null && $player->hasPermission("sregionprotector.admin"))) return;
[109]         $chunk = $this->chunkManager->getChunk((int)$pos->x, (int)$pos->z, $pos->level->getName(), true, false);
[110]         if ($chunk === null) return;
[111] 
[112]         foreach ($chunk->getRegions() as $region) {
[113]             if (!$region->isVectorInside($pos) || ($player !== null && $mustBeMember && $region->isLivesIn($player->getName()))) {
[114]                 continue;
[115]             }
[116]             if (!$region->getFlagState($flag)) {
[117]                 if ($this->prioritySystem) {
[118]                     break;
[119]                 } else {

Backtrace:
#0 plugins/SRegionProtector-pmmp_dev-10.phar/src/sergeydertan/sregionprotector/event/RegionEventsHandler(381): sergeydertan\sregionprotector\event\RegionEventsHandler->handleEvent(integer 12, object pocketmine\level\Location, object pocketmine\event\player\PlayerMoveEvent, object pocketmine\Player)
#1 src/pocketmine/plugin/MethodEventExecutor(38): sergeydertan\sregionprotector\event\RegionEventsHandler->playerMove(object pocketmine\event\player\PlayerMoveEvent)
#2 src/pocketmine/plugin/RegisteredListener(98): pocketmine\plugin\MethodEventExecutor->execute(object sergeydertan\sregionprotector\event\RegionEventsHandler, object pocketmine\event\player\PlayerMoveEvent)
#3 src/pocketmine/event/Event(99): pocketmine\plugin\RegisteredListener->callEvent(object pocketmine\event\player\PlayerMoveEvent)
#4 src/pocketmine/Player(1650): pocketmine\event\Event->call()
#5 src/pocketmine/Player(1755): pocketmine\Player->processMovement(integer 1)
#6 src/pocketmine/level/Level(848): pocketmine\Player->onUpdate(integer 10675)
#7 src/pocketmine/level/Level(786): pocketmine\level\Level->actuallyDoTick(integer 10675)
#8 src/pocketmine/Server(2435): pocketmine\level\Level->doTick(integer 10675)
#9 src/pocketmine/Server(2566): pocketmine\Server->checkTickUpdates(integer 10675, double 1560550269.1826)
#10 src/pocketmine/Server(2335): pocketmine\Server->tick()
#11 src/pocketmine/Server(2195): pocketmine\Server->tickProcessor()
#12 src/pocketmine/Server(1774): pocketmine\Server->start()
#13 src/pocketmine/PocketMine(266): pocketmine\Server->__construct(object BaseClassLoader, object pocketmine\utils\MainLogger, string[36] C:\Users\crypt\Desktop\Altay-master\, string[44] C:\Users\crypt\Desktop\Altay-master\plugins\)
#14 (1): require(string[90] phar://C:/Users/crypt/Desktop/Altay-master/Altay_v3.8.3.phar/src/pocketmine/Pock)
SergeyDertan commented 5 years ago

How to reproduce?

Crypt97 commented 5 years ago

I don't remember what happened :/

SergeyDertan commented 5 years ago

That was caused by null level in target position in player move event, but I can`t reproduce