Ошибка с Entity | php 8.0

Я уже 2 дня ищю способ исправить это.

[19:34:48] [LiteCore/CRITICAL]: "Невозможно обработать событие 'pocketmine\event\player\PlayerInteractEvent' в 'Runes v0.1': Undefined array key "Forter\Runes\rune\RuneDamage" в Forter\Runes\Events"
[19:34:48] [LiteCore/CRITICAL]: ErrorException: "Undefined array key "Forter\Runes\rune\RuneDamage"" (EXCEPTION) in "pmsrc/src/pocketmine/entity/Entity" at line 972
[19:34:48] [LiteCore/CRITICAL]: #0 pmsrc/src/pocketmine/entity/Entity(972): pocketmine\utils\Utils::errorExceptionHandler(integer 2, string[50] Undefined array key "Forter\Runes\rune\RuneDamage", string[45] /root/server/src/pocketmine/entity/Entity.php, integer 972)
//PlayerInteractEvent 
case Runes::$RUNE_DAMAGE:
			$nbt = Entity::createBaseNBT(
				$player->add(0, $player->getEyeHeight(), 0),
				new Vector3(-sin($player->yaw / 180 * M_PI) * cos($player->pitch / 180 * M_PI),
				-sin($player->pitch / 180 * M_PI),
				cos($player->yaw / 180 * M_PI) * cos($player->pitch / 180 * M_PI)),
				$player->yaw,
				$player->pitch
			);
			$entity = new RuneDamage($player->getLevel(), $nbt, $player);
			$entity->setMotion($entity->getMotion()->multiply(0.5));
			$entity->saveNBT();
		break;
//ProjectileHitEvent 
if($entity instanceof RuneDamage){
		    $explosionSize = 3;
		    $minX = (int) floor($entity->x - $explosionSize - 1);
		    $maxX = (int) ceil($entity->x + $explosionSize + 1);
		    $minY = (int) floor($entity->y - $explosionSize - 1);
		    $maxY = (int) ceil($entity->y + $explosionSize + 1);
		    $minZ = (int) floor($entity->z - $explosionSize - 1);
		    $maxZ = (int) ceil($entity->z + $explosionSize + 1);
		    foreach($entity->getLevel()->getNearbyEntities(new AxisAlignedBB($minX, $minY, $minZ, $maxX, $maxY, $maxZ), $entity) as $player){
			   $distance = $player->distance($entity) / $explosionSize;
			   if($distance <= 1){
				   for($i = 0; $i < 10; $i++){
					   $pos = new Vector3($player->getX() + $entity->randomFloat(), $player->getY() + $entity->randomFloat(0.5, 2.2), $player->getZ() + $entity->randomFloat());
					   $player->getLevel()->addParticle(new GenericParticle($pos, 8));
					   $player->setHealth($player->getHealth() - (0.3 * $lvl->getPower($entity)));
					}
				}
			}
		}
<?php

namespace Forter\Runes\rune;

use pocketmine\{ nbt\tag\CompoundTag, network\mcpe\protocol\AddEntityPacket, Player, level\Level, entity\Projectile, entity\Entity, level\particle\GenericParticle, Forter\Runes\Events };

class RuneDamage extends Projectile{

    public $width = 0.25;
    public $length = 0.25;
    public $height = 0.25;

    protected $gravity = 0;
    protected $drag = 0;

    public function __construct(Level $level, CompoundTag $nbt, Entity $shootingEntity = null){
        parent::__construct($level, $nbt, $shootingEntity);
    }

    public function onUpdate($currentTick){
        if ($this->closed) {
            return false;
        }

        $hasUpdate = parent::onUpdate($currentTick);
        $this->getLevel()->addParticle(new GenericParticle($this, 8));
        $this->despawnFromAll();

        if ($this->age > 1200 or $this->isCollided) {
            $this->kill();
            $hasUpdate = true;
        }

        return $hasUpdate;
    }

    public function randomFloat($min = -0.8, $max = 0.8) {
  		return $min + mt_rand() / mt_getrandmax() * ($max - $min);
  	}
}
//Entity.php
/**
	 * Returns the short save name
	 *
	 * @return string
	 */
	public function getSaveId(){//Entity #972
		return self::$shortNames[static::class];

В функции onEnable сделай

Entity::registerEntity(RuneDamage::class);

Не помогло…

И еще допиши в класс RuneDamage

const NETWORK_ID = 91;

Добавил и вернул spawnTo но все ровно ошибка вылезает когда я не попадаю

А зарегистрировал? Если да то я не знаю в чем ошибка

Да, я все сделал

Попробуй return true;

Помогло?

это ни на что не влияет

Нет, но это из за дистанции, я снизил для теста на 0.01 и больше ошибок не было, я как понимаю это руна задевает стреляющего и на него это воздействия не так идут, я так сделал выводы.

Ну в общем да

Эта тема была автоматически закрыта через 12 часов после последнего ответа. В ней больше нельзя отвечать.