CortexPE / TeaSpoon

☕ A PLUGIN to Extend PMMP's Functionality without completely changing it.
GNU Affero General Public License v3.0
144 stars 102 forks source link

Fireworks issue in 3.9.0 #427

Open kabluinc opened 4 years ago

kabluinc commented 4 years ago

When using firework in 3.9.0 (mc 1.12) fireworks only show the white trail particle, the actual firework doesn’t happen anymore.

teracube commented 4 years ago

fireworks crash server error at line 57


PocketMine-MP Crash Dump Sun Jul 14 14:53:35 CEST 2019

Error: Class 'pocketmine\network\mcpe\protocol\SetEntityDataPacket' not found
File: plugins/TeaSpoon_dev-278.phar/src/CortexPE/entity/projectile/FireworkRocket
Line: 57
Type: Error

THIS CRASH WAS CAUSED BY A PLUGIN
BAD PLUGIN: TeaSpoon v1.1.2

Code:
[48] 
[49]    /**
[50]     * @param Player[]|Player $player
[51]     * @param array $data Properly formatted entity data, defaults to everything
[52]     */
[53]    public function sendData($player, array $data = null): void{
[54]        if(!is_array($player)){
[55]            $player = [$player];
[56]        }
[57]        $pk = new SetEntityDataPacket();
[58]        $pk->entityRuntimeId = $this->getId();
[59]        $pk->metadata = $data ?? $this->getDataPropertyManager()->getDirty();
[60]        foreach($player as $p){
[61]            if($p === $this){
[62]                continue;
[63]            }
[64]            $p->dataPacket(clone $pk);
[65]        }
[66]        if($this instanceof Player){
[67]            $this->dataPacket($pk);

Backtrace:
#0 src/pocketmine/entity/Entity(1106): CortexPE\entity\projectile\FireworkRocket->sendData(array[1], array[1])
#1 plugins/TeaSpoon_dev-278.phar/src/CortexPE/entity/projectile/FireworkRocket(107): pocketmine\entity\Entity->entityBaseTick(integer 1)
#2 src/pocketmine/entity/Entity(1481): CortexPE\entity\projectile\FireworkRocket->entityBaseTick(integer 1)
#3 src/pocketmine/level/Level(848): pocketmine\entity\Entity->onUpdate(integer 410906)
#4 src/pocketmine/level/Level(786): pocketmine\level\Level->actuallyDoTick(integer 410906)
#5 src/pocketmine/Server(2445): pocketmine\level\Level->doTick(integer 410906)
#6 src/pocketmine/Server(2576): pocketmine\Server->checkTickUpdates(integer 410906, double 1563108815.6734)
#7 src/pocketmine/Server(2345): pocketmine\Server->tick()
#8 src/pocketmine/Server(2205): pocketmine\Server->tickProcessor()
#9 src/pocketmine/Server(1784): pocketmine\Server->start()
#10 src/pocketmine/PocketMine(274): pocketmine\Server->__construct(object BaseClassLoader, object pocketmine\utils\MainLogger, string[34] /home/gsp_1485/g3.hmserv.eu-19144/, string[42] /home/gsp_1485/g3.hmserv.eu-19144/plugins/)
#11 (1): require(string[89] phar:///home/gsp_1485/g3.hmserv.eu-19144/PocketMine-MP.phar/src/pocketmine/Pocke)

PocketMine-MP version: 3.9.0 [Protocol 361]
Git commit: bd69c66d0379814fc9f98811707da500d130742a
uname -a: Linux g1 4.5.0-0.bpo.2-amd64 #1 SMP Debian 4.5.4-1~bpo8+1 (2016-05-13) x86_64
PHP Version: 7.3.5
Zend version: 3.3.5
OS : Linux, linux
teracube commented 4 years ago

fireworks crash server error at line 96

PocketMine-MP Crash Dump Sun Jul 14 15:10:47 CEST 2019

Error: Class 'pocketmine\network\mcpe\protocol\EntityEventPacket' not found
File: plugins/TeaSpoon_dev-278.phar/src/CortexPE/entity/projectile/FireworkRocket
Line: 96
Type: Error

THIS CRASH WAS CAUSED BY A PLUGIN
BAD PLUGIN: TeaSpoon v1.1.2

Code:
[87] 
[88]                    if($damage > 0){
[89]                        $dmgEv = new EntityDamageEvent($entity, EntityDamageEvent::CAUSE_CUSTOM, $damage); // todo: figure out constant for firework damage
[90]                        $entity->attack($dmgEv);
[91]                    }
[92]                }
[93]            }
[94]        }
[95] 
[96]        $this->broadcastEntityEvent(EntityEventPacket::FIREWORK_PARTICLES, 0);
[97]        parent::despawnFromAll();
[98]        $this->level->broadcastLevelSoundEvent($this, LevelSoundEventPacket::SOUND_BLAST);
[99]    }
[100] 
[101]   public function entityBaseTick(int $tickDiff = 1): bool{
[102]       if($this->lifeTime-- < 0){
[103]           $this->flagForDespawn();
[104] 
[105]           return true;
[106]       }else{

Backtrace:
#0 src/pocketmine/entity/Entity(2129): CortexPE\entity\projectile\FireworkRocket->despawnFromAll()
#1 src/pocketmine/level/Level(852): pocketmine\entity\Entity->close()
#2 src/pocketmine/level/Level(786): pocketmine\level\Level->actuallyDoTick(integer 13971)
#3 src/pocketmine/Server(2445): pocketmine\level\Level->doTick(integer 13971)
#4 src/pocketmine/Server(2576): pocketmine\Server->checkTickUpdates(integer 13971, double 1563109847.9708)
#5 src/pocketmine/Server(2345): pocketmine\Server->tick()
#6 src/pocketmine/Server(2205): pocketmine\Server->tickProcessor()
#7 src/pocketmine/Server(1784): pocketmine\Server->start()
#8 src/pocketmine/PocketMine(274): pocketmine\Server->__construct(object BaseClassLoader, object pocketmine\utils\MainLogger, string[34] /home/gsp_1485/g3.hmserv.eu-19144/, string[42] /home/gsp_1485/g3.hmserv.eu-19144/plugins/)
#9 (1): require(string[89] phar:///home/gsp_1485/g3.hmserv.eu-19144/PocketMine-MP.phar/src/pocketmine/Pocke)

PocketMine-MP version: 3.9.0 [Protocol 361]
Git commit: bd69c66d0379814fc9f98811707da500d130742a
uname -a: Linux g1 4.5.0-0.bpo.2-amd64 #1 SMP Debian 4.5.4-1~bpo8+1 (2016-05-13) x86_64
PHP Version: 7.3.5
Zend version: 3.3.5
OS : Linux, linux
kabluinc commented 4 years ago

I actually updated the plugin to 3.9.1 locally and everything works, but as i said, there’s no firework particles being spawned. All there is are the white trail particles that go up to the sky and dissapear. Nothing else happens