Помогит пожалуйста

Ребят,как сделать чтобы при взятии в руки меч давался бесконечный эффект силы ?
У меня стоит этот эффект,но он появляется если разрушить блок а не взятии его в руки
Screenshot_2023-04-15-17-58-40-238_com.estrongs.android.pop

чее

Ну так ты используешь ивент BlockBreakEvent, так что так и должно быть

И я об этом

А как сделать чтобы при взятии в руки?

PlayerItemHeldEvent

Уф, мда

Вот так?

public function onHeld(PlayerItemHeldEvent $player){
	   if($player->getPlayer()->getInventory()->getItemInHand()->getCustomName() == "§l§e~ §fКирка §cШахтера §e~"){
	    $player->getPlayer()->addEffect(Effect::getEffect(3)->setAmplifier(1)->setDuration(20 * 2));
	   }
	   if($player->getPlayer()->getInventory()->getItemInHand()->getCustomName() == "§l§c† §fМеч §4Убийцы §c†"){
	    $player->getPlayer()->addEffect(Effect::getEffect(5)->setAmplifier(2)->setDuration(20 * 2));
	   }
	   if($player->getPlayer()->getInventory()->getItemInHand()->getCustomName() == "§l§e~ §fТопор §cДровосека §e~"){
	    $player->getPlayer()->addEffect(Effect::getEffect(3)->setAmplifier(1)->setDuration(20 * 2));	   
        }
    }








Ска, схуяли переменная события нахывается $player?

$e?

OnInteract должен или onHeld?

А как сделать чтобы эффект снимался когда снять бронь или убрать предмет из руки?

public function onHeld(PlayerItemHeldEvent $event){

	   if($event->getPlayer()->getInventory()->getItemInHand()->getCustomName() == "§l§e~ §fКирка §cШахтера §e~"){
	    $event->getPlayer()->addEffect(Effect::getEffect(3)->setAmplifier(1)->setDuration(20 * 2));
	   }
	   if($event->getPlayer()->getInventory()->getItemInHand()->getCustomName() == "§l§c† §fМеч §4Убийцы §c†"){
	    $event->getPlayer()->addEffect(Effect::getEffect(5)->setAmplifier(2)->setDuration(20 * 2));
	   }
	   if($event->getPlayer()->getInventory()->getItemInHand()->getCustomName() == "§l§e~ §fТопор §cДровосека §e~"){
	    $event->getPlayer()->addEffect(Effect::getEffect(3)->setAmplifier(1)->setDuration(20 * 2));	   
        }
    }```
public function onHeld(PlayerItemHeldEvent $event){
    $player = $event->getPlayer();
    $item = $event->getItem();
    
    if($item->getId() == <айди меча> && $item->getCustomName() == "<название меча>"){
        //Дать эффект игроку
        return;
    }
    
    //Код на удаление эффекта
}

На работу не чекал

У меня эффект работает когда я в руки беру меч, но не знаю как сделать чтобы эффект убирался при снятии брони или меча

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

Помоги пожалуйста

Создавай таск тогда

Знать бы как это делать

Зачем

Вот сюды добавить else и отчищать эффекты