Здравствуйте, помогите решить проблему


AnarchyRegions-1.zip (11,2 КБ)

Desktop.zip (34,8 КБ)

qq хелп пж
я на human поставил команду и когда я ударяю по нпс то команда выполняется два раза

Ошибка кода

function cmd(EntityDamageEvent $event){
		if($event instanceof EntityDamageByEntityEvent){
    		$d = $event->getDamager();
    		$entity = $event->getEntity();
    	    if($d instanceof Player && $entity instanceof Human && $entity->getNameTag() == "§7* §bШахтер §7*"){
    		    $event->setCancelled();
                $this->getServer()->dispatchCommand($d, "sell miner");
    		}elseif($d instanceof Player && $entity instanceof Human && $entity->getNameTag() == "§7* §bФермер §7*"){
    		    $event->setCancelled();
                $this->getServer()->dispatchCommand($d, "sell farmer");
    		}elseif($d instanceof Player && $entity instanceof Human && $entity->getNameTag() == "§7* §bБанкир §7*"){
    		    $event->setCancelled();
                $this->getServer()->dispatchCommand($d, "bank");
    		}elseif($d instanceof Player && $entity instanceof Human && $entity->getNameTag() == "§7* §bДровосек §7*"){
    		    $event->setCancelled();
                $this->getServer()->dispatchCommand($d, "sell lesorub");
    		}elseif($d instanceof Player && $entity instanceof Human && $entity->getNameTag() == "§7* §bАукцион §7*"){
    		    $event->setCancelled();
                $this->getServer()->dispatchCommand($d, "auc");
    		}elseif($d instanceof Player && $entity instanceof Human && $entity->getNameTag() == "§7* §bКирки §7*"){
    		    $event->setCancelled();
                $this->getServer()->dispatchCommand($d, "kirka");
    		}
   		}
	}

@qq_BCEM

Вроде с кодом всё норм

и я про то, если использовать команду через чат — высылает только одно сообщение, а когда нпс — 2

Ну тогда хз

:confused: пон

public function onDamage(EntityDamageEvent $e){
    $ent = $e->getEntity();
    if($ent instanceof Human && (!$ent instanceof Player)) $e->setCancelled(true);
    if($e instanceof EntityDamageByEntityEvent){
        $dam = $e->getDamager()
        if(!$dam instanceof Player) return;
        switch($ent->getNameTag()){
            case "§7* §bШахтер §7*":
                $this->getServer()->dispatchCommand($dam, "sell miner");
            break;
            case "§7* §bФермер §7*":
                $this->getServer()->dispatchCommand($dam, "sell farmer");
            break;
        }
    }
}
1 лайк

Попрбуй так что-ли…

ок ща

пасиба

мои глаза…

пон

Лол, зачем каждый раз проверять дамажера и энтити, это же можно сделать 1 раз

4 лайка

Хз :slight_smile:

оба говна залили. Один не лучше другого

ну у него получше получилось)