TODO: When Player Hold And Item In Hand It Gives Health After he hold anything else It Will remove Health but the problem Is I Want to set player's Max health from Nbt of that item!
PHP: /** @var Item $item */$nbt = $item->getNamedTag() ?? new CompoundTag("", []);$nbt->test = new IntTag("test", 69);$item->setNamedTag($nbt);/** @var Item $item */if (isset($item->getNamedTag()->test)) { //$item has NBT tag: test. /** @var int $test */ $test = $item->getNamedTag()->test->getValue(); //69} Source: Muqsit
Yes PlayerItemHeldEvent but when he held that item it gives him effects but it won't remove when he held something else? @minijaham
PHP: on item held event { if event->getItem === Your item { Code to give effect return; } code to remove effect} Something like this should work
Well I think that problem is a different story. You can cancel consume event for regen potion :shrug:
You can use PlayerMoveEvent or PlayerInteractEvent: PHP: use pocketmine\event\PlayerInteractEvent;public function onInteract(PlayerInteractEvent $e){$nbt = $item->getNamedTag() ?? new CompoundTag("", []);$nbt->test = new IntTag("test", 69);$item->setNamedTag($nbt);/** @var Item $item */if (isset($item->getNamedTag()->test)) { //$item has NBT tag: test. /** @var int $test */ $test = $item->getNamedTag()->test->getValue(); //69}} From 2-nd post. Also check code of PlayerInteractEvent on GitHub. https://github.com/pmmp/PocketMine-MP