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

чее
Ну так ты используешь ивент 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 и отчищать эффекты