1. The forums will be archived and moved to a read only mode in about 2 weeks (mid march).

CraftItemEvent

Discussion in 'Development' started by ZackyVN, Apr 30, 2019.

  1. ZackyVN

    ZackyVN Baby Zombie

    Messages:
    150
    I tried to add nbt tags to item in nbt by this way
    PHP:

        
    public function onCraft(CraftItemEvent $event){
            
    $player $event->getPlayer();
            
    $items $event->getOutputs();
            foreach(
    $items as $item){
                if(
    $item->getCustomName() === "§d✠§l§9 「 §cCÚP§5 OBSIDIAN §9」 §r§d✠"){
                    
    $item->setCustomName("§d✠§l§9 「 §cCÚP§5 OBSIDIAN §9」 §r§d✠ ĐàUP");
                    
    $nbt $item->getNamedTag() ?? new CompoundTag("", []);
                    
    $nbt->setTag(new StringTag("Name""CupObsidian"));
                    
    $nbt->setTag(new StringTag("ToggleThoiGianHoi""true"));
                    
    $nbt->setTag(new StringTag("Owner"$player->getName()));
                    
    $nbt->setTag(new IntTag("SoThoiGianHoi"15));
                    
    $item->setNamedTag($nbt);
                }
            }
        }
    But it didnt work
    My full main
    PHP:
    <?php

    declare(strict_types=1);

    namespace 
    MrDinoDuck\CustomCraft;

    use 
    pocketmine\plugin\PluginBase;
    use 
    pocketmine\inventory\ShapedRecipe;
    use 
    pocketmine\item\Item;
    use 
    pocketmine\item\enchantment\{EnchantmentEnchantmentInstance};
    use 
    pocketmine\nbt\tag\CompoundTag;
    use 
    pocketmine\nbt\tag\ListTag;
    use 
    pocketmine\nbt\tag\StringTag;
    use 
    pocketmine\nbt\tag\IntTag;
    use 
    pocketmine\event\Listener;
    use 
    pocketmine\event\inventory\CraftItemEvent;


    class 
    Main extends PluginBase implements Listener{

        public function 
    onEnable() : void{
            
    $this->getLogger()->info("");
            
    $this->RegisterCraftRecipe();
            
    $this->getServer()->getPluginManager()->registerEvents($this$this);
        }

        public function 
    RegisterCraftRecipe(){
            
    $this->cupObisidian();
    //        $this->Test();
        
    }
       
        public function 
    cupObisidian(){
            
    $cupobsidian Item::get(Item::DIAMOND_PICKAXE);
    //        $nbt = $cupobsidian->getNamedTag() ?? new CompoundTag("", []);
    //        $nbt->setTag(new StringTag("Name", "CupObsidian"));
    //        $nbt->setTag(new StringTag("ToggleThoiGianHoi", "true"));
    //        $nbt->setTag(new StringTag("Owner", "$"));
    //        $nbt->setTag(new IntTag("SoThoiGianHoi", 15));
    //        $cupobsidian->setNamedTag($nbt);
            
    $cupobsidian->setCustomName("§d✠§l§9 「 §cCÚP§5 OBSIDIAN §9」 §r§d✠");
            
    $cupobsidian->addEnchantment(new EnchantmentInstance(Enchantment::getEnchantment(17), 10));
            
    $cupobsidian->addEnchantment(new EnchantmentInstance(Enchantment::getEnchantment(15), 15));
            
    $unbreaking = new EnchantmentInstance(Enchantment::getEnchantment(17));
            
    $unbreaking->setLevel(10);
            
    $effective = new EnchantmentInstance(Enchantment::getEnchantment(15));
            
    $effective->setLevel(15);
            
    $cupobsidian->addEnchantment($unbreaking);
            
    $cupobsidian->addEnchantment($effective);
            
    $cupobsidianrecipe = new ShapedRecipe(["AAA","ABA","AAA"],[
            
    "A"=>Item::get(Item::OBSIDIAN),
            
    "B"=>Item::get(Item::DIAMOND_PICKAXE)]
            ,[
    $cupobsidian]);
            
    $cupobsidianrecipe->registerToCraftingManager($this->getServer()->getCraftingManager());
        }
       
        public function 
    onCraft(CraftItemEvent $event){
            
    $player $event->getPlayer();
            
    $items $event->getOutputs();
            foreach(
    $items as $item){
                if(
    $item->getCustomName() === "§d✠§l§9 「 §cCÚP§5 OBSIDIAN §9」 §r§d✠"){
                    
    $item->setCustomName("§d✠§l§9 「 §cCÚP§5 OBSIDIAN §9」 §r§d✠ ĐàUP");
                    
    $nbt $item->getNamedTag() ?? new CompoundTag("", []);
                    
    $nbt->setTag(new StringTag("Name""CupObsidian"));
                    
    $nbt->setTag(new StringTag("ToggleThoiGianHoi""true"));
                    
    $nbt->setTag(new StringTag("Owner"$player->getName()));
                    
    $nbt->setTag(new IntTag("SoThoiGianHoi"15));
                    
    $item->setNamedTag($nbt);
                }
            }
        }

        public function 
    onDisable() : void{
            
    $this->getLogger()->info("Bye");
        }
    }
     
  2. Aericio

    Aericio Slime

    Messages:
    99
    GitHub:
    aericio
    okay so, care to provide what the error was exactly? what wasn't working, exactly?
     
  3. ZackyVN

    ZackyVN Baby Zombie

    Messages:
    150
    Sorry for no detail information. Anyway, when i crafted the item, it still can craft but it didnt updated the name
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.