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

Adding a form to slapper without commands

Discussion in 'Development' started by LyricalLyfes, Mar 4, 2021.

  1. LyricalLyfes

    LyricalLyfes Spider Jockey

    Messages:
    28
    This may sound like a dumb question but how do I add a form to a slapper or any action without having to add a command to it?
     
  2. minijaham

    minijaham Skeleton

    Messages:
    801
    GitHub:
    minijaham
    PHP:
    public function onEntityDamage(EntityDamageEvent $event): void {
            
    $entity $event->getEntity();
           if (
    $entity instanceof SlapperEntity || $entity instanceof SlapperHuman) {
                  
    // Code
           
    }
    }  
     
  3. LyricalLyfes

    LyricalLyfes Spider Jockey

    Messages:
    28
    Thanks but how do I set it to a specific Human Slapper?
     
  4. DavyCraft648

    DavyCraft648 Spider Jockey

    Messages:
    40
    GitHub:
    DavyCraft648
    PHP:
    /**
    * Called when player hit a slapper entity
    * @param \slapper\events\SlapperHitEvent $event
    */
    public function onSlapperHit(SlapperHitEvent $event) {
       
    $slapper $event->getEntity();
       
    $player $event->getDamager();
       
    $slapperName $slapper->getNameTag();
       if (
    $slapperName === "MySlapper") {
          
    // ...
       
    }
    }
     
    LyricalLyfes and Primus like this.
  5. LyricalLyfes

    LyricalLyfes Spider Jockey

    Messages:
    28
    Thank you!!!!
     
    Primus likes this.
  6. DavyCraft648

    DavyCraft648 Spider Jockey

    Messages:
    40
    GitHub:
    DavyCraft648
    PHP:
        public function onSlapperHit(SlapperHitEvent $event// \slapper\events\SlapperHitEvent
        
    {
            
    $slapper $event->getEntity();
            
    $player $event->getDamager();
            
    $slapperName $slapper->getNameTag();
            
    $slapperTag $slapper->namedtag;
            if (
    $slapperName === "TempName") {
                
    $slapper->setNameTag("TheRealName");
                if (!
    $slapperTag->hasTag("Form"StringTag::class)) { // \pocketmine\nbt\tag\StringTag
                    
    $slapperTag->setString("Form""Rules");
                }
            }
            if (
    $slapperTag->hasTag("Form"StringTag::class)) { 
                
    $this->openForm($player$slapperTag->getString("Form"));
            }
        }

        private function 
    openForm(Player $playerstring $type)
        {
            if (
    $type === "Rules") {
                
    $form = new SimpleForm(function (Player $player$data null) {
                    if (
    $data === "r1") {
                        
    // ...
                    
    }
                });
                
    $form->setTitle("MyRules");
                
    $form->setContent("Read These Rules!");
                
    $form->addButton("Rule 1", -1"""r1");
                
    $player->sendForm($form);
            }
        }
     
    Last edited: Mar 5, 2021
    LyricalLyfes and Primus like this.
  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.