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

Form Won't Open

Discussion in 'Development' started by folosinod71962, May 24, 2020.

  1. folosinod71962

    folosinod71962 Silverfish

    Messages:
    23
    Hello, i have a plugin that manages all the forms, i started with a bank, there are 3 buttons:
    Button 1: You Have $Money Dollars
    Button 2: Send Money To Another Player
    Button 3: Take Debt
    There is a problem at button 2, the form dosen't open, tried everything
    PHP:
    <?php

    namespace zebby\pm;

    use 
    pocketmine\Player;
    use 
    pocketmine\command\Command;
    use 
    pocketmine\command\CommandSender;
    use 
    pocketmine\Server;
    use 
    pocketmine\plugin\PluginBase;
    use 
    pocketmine\utils\TextFormat as TF;
    use 
    onebone\economyapi\EconomyAPI;
    use 
    pocketmine\event\Listener;


    class 
    Main extends PluginBase implements Listener{
     
     
      public function 
    onEnable() {
       
    $this->getServer()->getPluginManager()->registerEvents($this$this);
      }
     
      public function 
    onDisable() {
        
    //do nothing
      
    }
     
      public function 
    onCommand(CommandSender $playerCommand $cmd String $label, array $args): bool{
          switch(
    $cmd->getName()) {
            case 
    "bank":
               if(
    $player instanceof Player) {
                
    $this->BankForm1($player);
          
              } else {
                
    $this->getLogger()->getServer()->info("error");
              }
                break;
                return 
    true;
              }
            return 
    true;
      }
     
     
      public function 
    BankForm1(Player $player) {
        
    $api $this->getServer()->getPluginManager()->getPlugin("FormAPI"); //using formapi;
        
    $form $api->createSimpleForm(function (Player $playerint $data null) {
          
    $result $data;
          if(
    $result == null) {
            return 
    true;
          }
          switch(
    $result) {
            case 
    0:
            
    $myMoney EconomyAPI::getInstance()->myMoney($player);
             
    $player->sendMessage("You Have"$MyMoney "Dollars");
            break;
            case 
    1:
            if(
    $player instanceof Player) {
             
    $this->SendMoneyForm($player);
            }
    // else {
                //$this->getServer()->getLogger()->info("Error2");
            //}
            
    break;
            return 
    true;
            case 
    2:
            
    $player->SendMessage(TF::BLUE "Coming Soon");
            break;
            return 
    true;
          }
        });
        
    $MyMoney EconomyAPI::getInstance()->myMoney($player);
        
    $form->setTitle("Bank");
        
    $form->addButton(TF::GOLD "You Have " $MyMoney " Dollars.");
        
    $form->addButton("Send Money To Player");
        
    $form->addButton("Take Debt");
        
    $form->SendToPlayer($player);
        return 
    $form;
      }
     
      public function 
    SendMoneyForm(Player $player) {
        
    $api $this->getServer()->getPluginManager()->getPlugin("FormAPI");
        
    $form2 $api->createCustomForm(function (Player $playerint $data2 null) {
            
    $result2 $data2;
        if(
    $result2 == null) {
          return 
    true;
        }
         
    // $result2 = $data2;
          
    switch($result2) {
            case 
    0:
            if(
    $player instanceof Player) {
             
    //$this->SendMoney($player);
             
    $Amount1 $data[2];
             
    $MoneySP $data[1];
             
    $MyMoney EconomyAPI::getInstance()->myMoney($player);
             if(
    $MyMoney($player) >= ($Amount1)) {
               
    EconomyAPI::getInstance()->addMoney($MoneySP$Amount1);
               
    EconomyAPI::getInstance()->reduceMoney($player$Amount1);
             } else {
               
    $player->SendMessage(TF::RED "You Don't Have Enough Money.");
             }
            }
            break;
            return 
    true;
          }

        
        
        
    $form2->setTitle("Send Money To Player");
        
    $form2->addInput("Send Money To""Enter Player IGN");
       
    // $form2->addLabel("You Have " . $MyMoney . "Dollars");
        
    $form2->addInput("Amount""Enter Amount");
        
    $form2->addButton("Complete Transaction");
        
    $form2->sendToPlayer($player);
        return 
    $form2;
        });
        }
     
    // )
     
    public function Mines(Player $player) {
        
    $api $this->getServer()->getPluginManager()->getPlugin("FormAPI");
        
    $form3 $api->createSimpleForm(function (Player $player, array $data3 null) {
        if(
    $data3 == null) {
          return 
    true;
        }
        
    $form3->setTitle("Mines");
        
    $form3->addButton(TF::GOLD "Premium Mines");
        
    $form3->addButton("Mine A");
        
    $form3->addButton("Mine B");
        
    $form3->addButton("Mine C");
        
    $form3->addButton("Mine D");
        
    $form3->addButton("Mine E");
        
    $form3->addButton("Mine F");
        }
        );
    }
    }
    Thx.
     
  2. Rim

    Rim Spider Jockey

    Messages:
    28
    GitHub:
    boomyourbang
    A CustomForm's data should be of the type ?array, because it can be either an array or null. So because of that, you can't check for the response the same way as a SimpleForm. CustomForms have just one "Submit" button, and all of the elements from within the form are the data, stored in an array. For example, if your first element of the form is a slider, then it is stored in the first value of the response array, and so forth for responses after that.

    It looks like $data is undefined as well.
     
    Last edited: May 28, 2020
  3. Doxestic

    Doxestic Spider Jockey

    Messages:
    41
    function for send to player is sendToPlayer($player) not SendToPlayer($player):facepalm:
     
  4. folosinod71962

    folosinod71962 Silverfish

    Messages:
    23
    BankForm1(The Bank Form) Works Fine, i Was Talking About SendMoneyForm That Was Not Working Fine...:facepalm:
     
  5. folosinod71962

    folosinod71962 Silverfish

    Messages:
    23
    Thanks!
     
  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.