Почему при нажатии на нпс команда пишется два раза?

  public function onDamageQ(EntityDamageEvent $e) {

			if($e instanceof EntityDamageByEntityEvent) {
 			$player = $e->getDamager();
				$nick = strtolower($player->getName());
				$entity = $e->getEntity();
				if($player instanceof Player && $entity instanceof Human && $entity->getNameTag() == "    §l§6► §r§l§cKIT §aСТАРТ") {
					$e->setCancelled();
					if($player->getGamemode() !== 0) {
						$player->sendMessage("§l§6► §r§l§cKITS §l§6◄ §r§f- §7Смените режим на §aВыживания§7!");
						return false;
						}
		   $player->getLevel()->addParticle(new LavaParticle(new Vector3($player->getX() + 0.5, $player->getY() + 0.50, $player->getZ())));
		   $player->getLevel()->addParticle(new LavaParticle(new Vector3($player->getX() - 0.5, $player->getY() + 0.52, $player->getZ())));
		   $player->getLevel()->addParticle(new LavaParticle(new Vector3($player->getX() + 0.6, $player->getY() + 0.51, $player->getZ())));
		   $player->getLevel()->addParticle(new LavaParticle(new Vector3($player->getX() - 0.6, $player->getY() + 0.49, $player->getZ())));		   
		   $player->getLevel()->addParticle(new LavaParticle(new Vector3($player->getX() + 0.5, $player->getY() + 0.53, $player->getZ())));
		   $player->getLevel()->addParticle(new LavaParticle(new Vector3($player->getX() - 0.6, $player->getY() + 0.50, $player->getZ())));
		   $player->getLevel()->addSound(new PopSound($player));	
						 $this->getServer()->dispatchCommand($player, "start");

				}
			}
		}```

треш код

Покажи лучше

function onDamage(EntityDamageEvent $event): bool {
    if ($event instanceof EntityDamageByEntityEvent) {
        $damager = $event->getDamager();
        $entity  = $event->getEntity();
        $nameTag = $entity->getNameTag();

        if ($damager instanceof Player and $entity instanceof Human and $nameTag === "    §l§6► §r§l§cKIT §aСТАРТ") {
            $event->setCancelled();

            if (!$damager->isSurvival()) {
                $damager->sendMessage("§l§6► §r§l§cKITS §l§6◄ §r§f- §7Смените режим на §aВыживания§7!");
                return false;
            }

            $this->sendTo($damager);
            $this->getServer()->dispatchCommand($damager, "start");
        }
    }

    return true;
}

function sendTo(Player $player): void {
    $level    = $player->getLevel();
    $position = $player->asVector3();

    $particle = [
        new LavaParticle($position->add(0.5, 0.50, 0)),
        new LavaParticle($position->add(-0.5, 0.52, 0)),
        new LavaParticle($position->add(0.6, 0.51, 0)),
        new LavaParticle($position->add(-0.6, 0.49, 0)),
        new LavaParticle($position->add(0.5, 0.53, 0)),
        new LavaParticle($position->add(-0.6, 0.50, 0))
    ];

    foreach ($particle as $_particle) {
        $level->addParticle($_particle);
    }

    $level->addSound(new PopSound($player));
}

ПОЛ ЭТО ЛАВА!!

Проблема которая вызывает выполнение кода дважды, может быть связана с тем, что обработчик события EntityDamageEvent вызывается как для начала, так и для окончания.

1 лайк

@Qyok братан тебя моя аватарка задевает или че

@Sergiy_Chernega эм почему ему не снял тогда??? @Qyok

Сопротивляйся бро, возвращай обратно

1 лайк

это называется демократия по мнению Уbanned

Бля и тебе сняли

сейчас зайдет, снова поменяет)


ну всо с ноутом я

Жоска

Вернул

Ураааа

парни, че там по оркестру? Крутая группа же?)


лучше не надо

Ну и пускай

Ждём бана @Sergiy_Chernega