RevivalPMMP / PureEntitiesX

A Revival of the original PureEntities, a plugin which provides MobAI for PMMP - Coming back soon
GNU General Public License v3.0
166 stars 76 forks source link

Feeding gives a crash #383

Closed rzwarts74 closed 4 years ago

rzwarts74 commented 4 years ago

https://github.com/RevivalPMMP/PureEntitiesX/wiki/Issue-Reporting-Guidelines If you do not follow the guidelines at the above link, your issue will be closed with a Resolution Status of "Invalid".

Required Information

PocketMine-MP Version: 3.12.0 Plugin Version: 0.6.3 (although it reports as being 0.6.2 on the server) Where you got the plugin: https://poggit.pmmp.io/r/63407/PureEntitiesX.phar

Optional Information

PHP version: PHP 7.3.14 Other Installed Plugins: PureEntitiesX v0.6.2, StarterKit v2.0.0, SkyWars v1.2.1, InvSee v1.0.0, MysteryCrate v9.2.0, BasicHUD v1.0.8, PiggyCustomEnchants v2.1.7, EasyCommandAutofill v1.0.1, EconomyAPI v5.7.2, KitUI v1.3.6, WorldProtect v2.3.8, Slapper v1.5.20-uhappynow, SignPortal v1.1.4, PurePerms v1.4.3, Worlds v3.0.3, KitsPlus v1.0.7, PureChat v1.4.11, EasyKits v1.1.3, MakeMeAdmin v1.6.0 __OS Version: Ubuntu 18.04 LTS

Steps to reproduce the issue.

  1. In the game try to feed a pig with a carrot. This was in creative mode.
  2. Pocketmine crashes
  3. If you restart the server and join it crashes immediately again. To remediate this bug you have to remove file phar file from the plugins folder, reload. place it back and reload.
  4. Feeding will again crash the server.

...

It seems to be impossible to feed animals (entice them with love). I've seen other reports where there were mentions of API changes where this was said to be the root cause.

2020-05-05 [16:05:49] [Server thread/CRITICAL]: Error: "Class 'pocketmine\network\mcpe\protocol\Enti
tyEventPacket' not found" (EXCEPTION) in "plugins/PureEntitiesX.phar/src/revivalpmmp/pureentities/co
mponents/BreedingComponent" at line 451
2020-05-05 [16:05:49] [Server thread/DEBUG]: #0 plugins/PureEntitiesX.phar/src/revivalpmmp/pureentit
ies/event/EventListener(90): revivalpmmp\pureentities\components\BreedingComponent->feed(object pock
etmine\Player)
2020-05-05 [16:05:49] [Server thread/DEBUG]: #1 src/pocketmine/plugin/MethodEventExecutor(42): reviv
alpmmp\pureentities\event\EventListener->dataPacketReceiveEvent(object pocketmine\event\server\DataP
acketReceiveEvent)
2020-05-05 [16:05:49] [Server thread/DEBUG]: #2 src/pocketmine/plugin/RegisteredListener(80): pocket
mine\plugin\MethodEventExecutor->execute(object revivalpmmp\pureentities\event\EventListener, object
 pocketmine\event\server\DataPacketReceiveEvent)
2020-05-05 [16:05:49] [Server thread/DEBUG]: #3 src/pocketmine/event/Event(88): pocketmine\plugin\Re
gisteredListener->callEvent(object pocketmine\event\server\DataPacketReceiveEvent)
2020-05-05 [16:05:49] [Server thread/DEBUG]: #4 src/pocketmine/network/mcpe/PlayerNetworkSessionAdap
ter(109): pocketmine\event\Event->call()
2020-05-05 [16:05:49] [Server thread/DEBUG]: #5 src/pocketmine/network/mcpe/protocol/BatchPacket(126
): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(object pocketmine\network\m
cpe\protocol\InventoryTransactionPacket)
2020-05-05 [16:05:49] [Server thread/DEBUG]: #6 src/pocketmine/network/mcpe/PlayerNetworkSessionAdap
ter(110): pocketmine\network\mcpe\protocol\BatchPacket->handle(object pocketmine\network\mcpe\Player
NetworkSessionAdapter)
2020-05-05 [16:05:49] [Server thread/DEBUG]: #7 src/pocketmine/Player(3118): pocketmine\network\mcpe
\PlayerNetworkSessionAdapter->handleDataPacket(object pocketmine\network\mcpe\protocol\BatchPacket)
2020-05-05 [16:05:49] [Server thread/DEBUG]: #8 src/pocketmine/network/mcpe/RakLibInterface(169): po
cketmine\Player->handleDataPacket(object pocketmine\network\mcpe\protocol\BatchPacket)
2020-05-05 [16:05:49] [Server thread/DEBUG]: #9 vendor/pocketmine/raklib/src/server/ServerHandler(99
): pocketmine\network\mcpe\RakLibInterface->handleEncapsulated(string[19] 84.106.226.30 52059, objec
t raklib\protocol\EncapsulatedPacket, integer 0)
2020-05-05 [16:05:49] [Server thread/DEBUG]: #10 src/pocketmine/network/mcpe/RakLibInterface(109): r
aklib\server\ServerHandler->handlePacket()
2020-05-05 [16:05:49] [Server thread/DEBUG]: #11 src/pocketmine/network/mcpe/RakLibInterface(99): po
cketmine\network\mcpe\RakLibInterface->process()
2020-05-05 [16:05:49] [Server thread/DEBUG]: #12 vendor/pocketmine/snooze/src/SleeperHandler(123): p
ocketmine\network\mcpe\RakLibInterface->pocketmine\network\mcpe\{closure}()
2020-05-05 [16:05:49] [Server thread/DEBUG]: #13 vendor/pocketmine/snooze/src/SleeperHandler(85): po
cketmine\snooze\SleeperHandler->processNotifications()
2020-05-05 [16:05:49] [Server thread/DEBUG]: #14 src/pocketmine/Server(2146): pocketmine\snooze\Slee
perHandler->sleepUntil(double 1588694749.1971)
2020-05-05 [16:05:49] [Server thread/DEBUG]: #15 src/pocketmine/Server(1990): pocketmine\Server->tic
kProcessor()
2020-05-05 [16:05:49] [Server thread/DEBUG]: #16 src/pocketmine/Server(1584): pocketmine\Server->sta
rt()
2020-05-05 [16:05:49] [Server thread/DEBUG]: #17 src/pocketmine/PocketMine(273): pocketmine\Server->
__construct(object BaseClassLoader, object pocketmine\utils\MainLogger, string[27] /home/minecraft/P
ocketmine/, string[35] /home/minecraft/Pocketmine/plugins/)
2020-05-05 [16:05:49] [Server thread/DEBUG]: #18 src/pocketmine/PocketMine(296): pocketmine\server()
2020-05-05 [16:05:49] [Server thread/DEBUG]: #19 (11): require(string[82] phar:///home/minecraft/Poc
ketmine/PocketMine-MP.phar/src/pocketmine/PocketMine.p)
2020-05-05 [16:05:49] [Server thread/INFO]: Overlord5717 left the game
2020-05-05 [16:05:49] [Server thread/INFO]: Overlord5717[/84.106.226.30:52059] logged out due to Int
ernal server error
rzwarts74 commented 4 years ago

The crashdump file:


PocketMine-MP Crash Dump Tue May 5 16:07:51 UTC 2020

Error: Class 'pocketmine\network\mcpe\protocol\EntityEventPacket' not found
File: plugins/PureEntitiesX.phar/src/revivalpmmp/pureentities/components/BreedingComponent
Line: 329
Type: Error

THIS CRASH WAS CAUSED BY A PLUGIN
BAD PLUGIN: PureEntitiesX v0.6.2

Code:
[320]           $this->breed($this->getBreedPartner());
[321]           return true;
[322]          }
[323] 
[324] 
[325]          // emit heart particles ...
[326]          if($this->inLoveTimer >= self::IN_LOVE_EMIT_DELAY and $this->emitLoveParticl
es){
[327]           foreach($this->entity->getLevel()->getPlayers() as $player){ // don'
t know if this is the correct one :/
[328]              if($player->distance($this->entity) <= 49){
[329]               $pk = new EntityEventPacket();
[330]               $pk->entityRuntimeId = $this->entity->getId();
[331]               $pk->event = EntityEventPacket::TAME_SUCCESS; // i t
hink this plays the "heart" animation
[332]               $player->dataPacket($pk);
[333]              }
[334]           }
[335]           $this->inLoveTimer = 0;
[336]          }else if($this->emitLoveParticles){
[337]           $this->inLoveTimer++;
[338]          }
[339] 

Backtrace:
#0 plugins/PureEntitiesX.phar/src/revivalpmmp/pureentities/entity/animal/WalkingAnimal(81): revivalp
mmp\pureentities\components\BreedingComponent->checkInLove()
#1 plugins/PureEntitiesX.phar/src/revivalpmmp/pureentities/entity/animal/WalkingAnimal(105): revival
pmmp\pureentities\entity\animal\WalkingAnimal->entityBaseTick(integer 1)
#2 src/pocketmine/level/Level(844): revivalpmmp\pureentities\entity\animal\WalkingAnimal->onUpdate(i
nteger 373)
#3 src/pocketmine/level/Level(777): pocketmine\level\Level->actuallyDoTick(integer 373)
#4 src/pocketmine/Server(2256): pocketmine\level\Level->doTick(integer 373)
#5 src/pocketmine/Server(2387): pocketmine\Server->checkTickUpdates(integer 373, double 1588694871.7
405)
#6 src/pocketmine/Server(2143): pocketmine\Server->tick()
#7 src/pocketmine/Server(1990): pocketmine\Server->tickProcessor()
#8 src/pocketmine/Server(1584): pocketmine\Server->start()
#9 src/pocketmine/PocketMine(273): pocketmine\Server->__construct(object BaseClassLoader, object poc
ketmine\utils\MainLogger, string[27] /home/minecraft/Pocketmine/, string[35] /home/minecraft/Pocketm
ine/plugins/)
#10 src/pocketmine/PocketMine(296): pocketmine\server()
#11 (11): require(string[82] phar:///home/minecraft/Pocketmine/PocketMine-MP.phar/src/pocketmine/Poc
ketMine.p)

PocketMine-MP version: 3.12.0 [Protocol 390]
Git commit: 77d45bf11674a1360f58e32a14a3b09f423d860c
uname -a: Linux minecraft02 4.15.0-99-generic #100-Ubuntu SMP Wed Apr 22 20:32:56 UTC 2020 x86_64
PHP Version: 7.3.14
Zend version: 3.3.14
OS : Linux, linux

Loaded plugins:
EasyCommandAutofill 1.0.1 by jasonwynn10 for API(s) 3.0.0
SignPortal 1.1.4 by 99leonchang for API(s) 3.0.0
Worlds 3.0.3 by survanetwork for API(s) 3.0.0
Slapper 1.5.20-uhappynow by jojoe77777 for API(s) 3.9.0
InvSee 1.0.0 by BlockHorizons for API(s) 3.0.0
KitUI 1.3.6 by Infernus101 for API(s) 3.4.0
PurePerms 1.4.3 by 64FF00 & ProjectInfinity for API(s) 3.0.0
MysteryCrate 9.2.0 by JackMD, DaPigGuy for API(s) 3.9.0
WorldProtect 2.3.8 by aliuly for API(s) 3.0.0
BasicHUD 1.0.8 by aliuly for API(s) 3.0.0
SkyWars 1.2.1 by VixikHD for API(s) 3.0.0
MakeMeAdmin 1.6.0 by Xenophilicy for API(s) 3.0.0
PureEntitiesX 0.6.2 by milk0417, RevivalPMMP for API(s) 3.8.4
StarterKit 2.0.0 by TheNote for API(s) 3.9.0
EconomyAPI 5.7.2 by onebone for API(s) 3.0.0
PiggyCustomEnchants 2.1.7 by DaPigGuy for API(s) 3.11.2
EasyKits 1.1.3 by AndreasHGK for API(s) 3.9.0
PureChat 1.4.11 by 64FF00 for API(s) 3.0.0
KitsPlus 1.0.7 by WitherHosting / (AlexPads) for API(s) 3.0.0
rzwarts74 commented 4 years ago

src/revivalpmmp/pureentities/components/BreedingComponent.php

I see the code was changed to reflect API 3.9.0 compliance. Where can I find a compiled phar file with this in it ?

95CivicSi commented 4 years ago

If you're server is reporting version 0.6.2, then you're running 0.6.2

Remove all copies of PureEntitiesX from your plugins folder (including any with different filenames) and then add the one from https://poggit.pmmp.io/r/63407/PureEntitiesX.phar

After you've done all that, stop your server and then start it back up again.

To verify that the plugin loaded properly, do /version PureEntitiesX and verify that you are now running 0.6.3

rzwarts74 commented 4 years ago

I actually recompiled the github version and now it is reporting 0.6.4

rzwarts74 commented 4 years ago

version PureEntitiesX [15:18:13] [Server thread/INFO]: PureEntitiesX version 0.6.4 [15:18:13] [Server thread/INFO]: Implement all MCPE entities into your worlds [15:18:13] [Server thread/INFO]: Website: https://github.com/RevivalPMMP/PureEntitiesX [15:18:13] [Server thread/INFO]: Authors: milk0417, RevivalPMMP

95CivicSi commented 4 years ago

FTR, if you're actually using 0.6.4, then you shouldn't have the original issue that was reported. It was fixed in https://github.com/RevivalPMMP/PureEntitiesX/tree/6b614d61ff9767e0e764a6cb4ba1aceed2eb8620 If you have any more crashes, open a new issue.