Что не так с нпа

[12:43:59] [Server thread/CRITICAL]: “Невозможно обработать событие ‘pocketmine\event\player\PlayerJoinEvent’ в ‘NPC v1.0.0’: Call to undefined method pocketmine\entity\Item::getName() в NPC\Main”

[12:43:59] [Server thread/CRITICAL]: Error: “Call to undefined method pocketmine\entity\Item::getName()” (EXCEPTION) in “NPC/src/NPC/Main” at line 78

public function onJoin(PlayerJoinEvent $event){

	$player = $event->getPlayer();

	foreach($event->getPlayer()->getLevel()->getEntities() as $entity){
		if(!$entity instanceof Player){
            if($entity->getName() == null){

            	if($this->getServer()->getDefaultLevel() > $player->getLevel()->getName()){

					$this->onRemoveEntity();

            		$this->onSpawnEntity($player, $this->cache->get("name"));

            	}

            }

        }
    }
}

Litecore

хкхкхмхмх исправь гкод сначало и куда блоков открытия и закрытия

$player = $event->getPlayer();

foreach($player->getLevel()->getEntities() as $entity) {
    if($entity instanceof Player or $entity instanceof Item)
        return;

    if(!$this->getServer()->getDefaultLevel() > $player->getLevel()->getFolderName()) 
        return;

    $this->onRemoveEntity();

    $this->onSpawnEntity($player, $this->cache->get("name"));
    return;
}

хотя у меня в ядре не было функции getName(), попробуй через getFolderName()

но ошибка связана с классом Item.php в строке 78

Пхпхпх, ясно, ты читать даже ошибки не можешь :joy::joy:

ты в курсе что что return выходит из цикла? Это значит что при первом же нахождении игрока среди сущностей итерация прекратится

зачем?

С нпа, я не знать что с ним не так

да потому что он тупой, и не понимает ничего

Замени код что ты скинул, на этот

$player = $event->getPlayer();

	foreach($event->getPlayer()->getLevel()->getEntities() as $entity){
		if(!$entity instanceof Player and !$entity instanceof \pocketmine\entity\Item){
            if($entity->getName() == null){

            	if($this->getServer()->getDefaultLevel() > $player->getLevel()->getName()){

					$this->onRemoveEntity();

            		$this->onSpawnEntity($player, $this->cache->get("name"));

            	}

            }

        }
    }
}

Твои знания php меня пугают

В итоге сам скинул еще более гкод, к тому же еще и не рабочий :clap::clap:

if (!($entity instanceof Living)) сделай просто и все ибо getName() только Living имеют (ну в аквамарине я посмотрел в остальных хз)

я как минимум сделал читабельность кода куда лучше, чем с этими
{
{
{
{
{
а потом пошло
}
}
}
}
}

или просто я с форумом с ума сошёл… До этого у меня код лучше был

не позорься и не оправдывайся

1 лайк

оправдываться перед кем? перед всеми вами , да зачем на это

если говорю так это и есть.

или у тебя есть какие-то другие доказательства который опровергают, то что, я сказал?

Ты чё реально не понимаешь что твой код стал читабельным, но нерабочим?

1 лайк

Не работает