PHP: public function onHold(PlayerItemHeldEvent $event){ $item = $event->getItem(); $player = $event->getPlayer(); if($item->getId() === Item::BLAZE_ROD){ $player->addEffect(Effect::getEffect(Effect::SPEED)->setDuration(20 * 10)->setVisible(false)); }} this plugin works but only with one item at a time. Can you guys help me find a way to set multiple items with effect each or multiple effects each? THANKS! really need help .
You can use this for item with same effect: PHP: if($item->getId() === Item::BLAZE_ROD or $item->getId() === Item::YOUR_ITEM){ #Your code here} or for other effect: PHP: if($item->getId() === Item::BLAZE_ROD){ #Your code here}if($item->getId() === Item::YOUR_ITEM){ #Your code here}
If there are lots of items, I'd avoid using if statements and try a switch statement: PHP: public function onHold(PlayerItemHeldEvent $event){ $item = $event->getItem(); $player = $event->getPlayer(); $effectId = null; switch($item->getId()) { case Item::BLAZE_ROD: $effectId = Effect::SPEED; break; case Item::DIAMOND_SWORD: $effectId = Effect::STRENGTH; break; case Item::DIAMOND_PICKAXE: $effectId = Effect::HASTE; break; } if($effectId !== null) { $player->addEffect(Effect::getEffect($effectId)->setDuration(20 * 10)->setVisible(false)); }} or here's another alternative with arrays: PHP: public function onHold(PlayerItemHeldEvent $event){ $item = $event->getItem(); $player = $event->getPlayer(); $items = [Item::BLAZE_ROD=>Effect::SPEED, Item::DIAMOND_SWORD=>Effect::STRENGTH, Item::DIAMOND_PICKAXE=>Effect::HASTE]; if(isset($items[$item->getId()])) { $player->addEffect(Effect::getEffect($items[$item->getId()])->setDuration(20 * 10)->setVisible(false)); }}