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

Again FormAPI

Discussion in 'Development' started by driver1848, May 7, 2020.

  1. driver1848

    driver1848 Spider Jockey

    Messages:
    35
    GitHub:
    driver1848
    Hi,
    im again here with my plugin "NaviUI" and FormAPI... Id write some Message to the cmd sender, but now FormAPI dont load the functions for the 1st buttons in every UI of the Plugin (one UI still load the 1st button)... What can i do? My code should be right, but here it is:
    PHP:
    public function onCommand(CommandSender $senderCommand $commandstring $label, array $args): bool{
        
    $this->Load("Farmwelt");
        
    $this->Load("Citybuild");

        if(!(
    $sender instanceof Player)){
            
    $sender->sendMessage("§a§lLobby§r §8» §cFühre diesen Command bitte im Spiel aus!");
        }else{
            switch(
    $command->getName()){
                case 
    "navi":
                    
    $this->Main($sender);
                    break;
                case 
    "menu":
                    
    $this->Menu($sender);
            }
        }
        return 
    true;
    }

    public function 
    Menu(Player $player){

        
    $form = new SimpleForm(function (Player $player$data){
            if(
    $data === null){
                return;
            }
            if(
    $data === 0){
                
    $this->Main($player);
            }
            if(
    $data === 1){
                
    $player->sendMessage("§a§lLobby§r §8» §cDieses Feature ist noch in der Dev-Phase!");
            }
        });
        
    $form->setTitle("Menü");
        
    $form->setContent("Was möchtest du machen?");
        
    $form->addButton("Navi");
        
    $form->addButton("Info");
        
    $form->sendToPlayer($player);

    }

    public function 
    Main(Player $player){
        
    $form = new SimpleForm(function (Player $player$data){
            switch(
    $data) {
                case 
    null:
                    return;
                    break;
                case 
    0:
                    
    $this->Citybuild($player);
                    break;
                case 
    1:
                    
    $this->getServer()->dispatchCommand(new ConsoleCommandSender(), 'warp Lobby ' $player->getName());
                    
    $player->sendMessage("§a§lLobby§r §8» §aDu wurdest in die Lobby teleportiert!");
                    break;
                case 
    2:
                    
    $this->Maps($player);
                break;
            }
        });
        
    $form->setTitle("-=- §6§lNavigationsmenü§r -=-");
        
    $form->setContent("§eWeitere Spielmodi kommen!");
        
    $form->addButton("§a§lCitybuild");
        
    $form->addButton("§lLobby");
        if(
    $player->hasPermission("lobby.navi.leitung") || $player->hasPermission("lobby.navi.builder")){
            
    $form->addButton("§b§lWeitere Welten§r");
        }
        
    $form->sendToPlayer($player);
    }
    public function 
    Maps(Player $player){
        
    $form = new SimpleForm(function (Player $player$data){
            if(
    $player->hasPermission("lobby.navi.leitung")) {
                switch (
    $data) {
                    case 
    null:
                        return;
                        break;
                    case 
    0:
                        
    $this->getServer()->dispatchCommand(new ConsoleCommandSender(), 'mw teleport BUW '.$player->getName());
                        
    $player->sendMessage('§a§lLobby§r §8» §aYou should be teleported to Level "BUW"!');
                        break;
                    case 
    1:
                        
    $this->getServer()->dispatchCommand(new ConsoleCommandSender(), 'mw teleport LobbyAlt '.$player->getName());
                        
    $player->sendMessage('§a§lLobby§r §8» §aYou should be teleported to Level "LobbyAlt"!');
                        break;
                    case 
    2:
                        
    $this->getServer()->dispatchCommand(new ConsoleCommandSender(), 'mw teleport LobbyBeta '.$player->getName());
                        
    $player->sendMessage('§a§lLobby§r §8» §aYou should be teleported to Level "LobbyBeta"!');
                        break;
                    case 
    3:
                        
    $this->Main($player);
                        break;
                }
            }else{
                switch(
    $data){
                    case 
    null:
                        return;
                        break;
                    case 
    0:
                        
    $this->getServer()->dispatchCommand(new ConsoleCommandSender(), 'mw teleport LobbyBeta'.$player->getName());
                        
    $player->sendMessage('§a§lLobby§r §8» §aYou should be teleported to Level "LobbyBeta"!');
                        break;
                    case 
    1:
                        
    $this->Main($player);
                        break;
                }
            }
        });
        
    $form->setTitle("-=- §6§lNavigationsmenü§r -=-");
        
    $form->setContent("§eHier kannst du die in die §bDev-§3Welten§e joinen!");
        if(
    $player->hasPermission("lobby.navi.leitung")){
            
    $form->addButton("§4§lBUW§r");
            
    $form->addButton("§4§lLobbyAlt§r");
        }
        
    $form->addButton("§a§lLobbyIdee§r");
        
    $form->addButton("§l<- Zurück");
        
    $form->sendToPlayer($player);
    }
    public function 
    Citybuild($player){
        
    $form = new SimpleForm(function (Player $player$data){
            if(
    $data === null){
                return;
            }
            if(
    $data === 0){
                
    $this->getServer()->dispatchCommand(new ConsoleCommandSender(), 'warp Citybuild '.$player->getName());
                
    $player->sendMessage("§a§lLobby§r §8» §aDu wurdest zum Citybuild-Spawn teleportiert!");
            }
            if(
    $data === 1){
                
    $this->getServer()->dispatchCommand(new ConsoleCommandSender(), 'warp Farmwelt '.$player->getName());
                
    $player->sendMessage("§a§lLobby§r §8» §aDu wurdest zum in die Farmwelt teleportiert!");
            }
            if(
    $data === 2) {
                
    $this->Main($player);
            }
        });
        
    $form->setTitle("-=- §6§lNavigationsmenü§r -=-");
        
    $form->setContent("§eHier kannst du die in die §3Welten§e, die zu §aCitybuild §egehören joinen!");
        
    $form->addButton("§a§lCitybuild");
        
    $form->addButton("§2§lFarmwelt");
        
    $form->addButton("§l<- Zurück");
        
    $form->sendToPlayer($player);
    }
    The Menu function still load the 1st button... Is the UI overloaded (too many functions behind one button) or what i have to do to fix this issue?

    Edit: Should I finally use the PMMP World functions?
     
  2. HimbeersaftLP

    HimbeersaftLP Fish

    Messages:
    2,402
    GitHub:
    HimbeersaftLP
    What do you mean by "not load function", does it not display the button or does the button not do anything at all?
    (you can DM me in German if you have problems finding the right terms)

    Yes, if you don't, I'm not going to birthday-greet you.
     
    driver1848 likes this.
  3. driver1848

    driver1848 Spider Jockey

    Messages:
    35
    GitHub:
    driver1848
    xD
     
  4. driver1848

    driver1848 Spider Jockey

    Messages:
    35
    GitHub:
    driver1848
    The Button does nothing... I had this issue also in a cancelled plugin...
     
  5. driver1848

    driver1848 Spider Jockey

    Messages:
    35
    GitHub:
    driver1848
    I did it:
    PHP:
    public function LoginEvent(PlayerLoginEvent $event){
            
    $event->getPlayer()->teleport($this->getServer()->getDefaultLevel()->getSafeSpawn());
        }
    PHP:
        public function onCommand(CommandSender $senderCommand $commandstring $label, array $args): bool{
            
    $this->Load("Farmwelt");
            
    $this->Load("Citybuild");

            if(!(
    $sender instanceof Player)){
                
    $sender->sendMessage("§a§lLobby§r §8» §cFühre diesen Command bitte im Spiel aus!");
            }else{
                switch(
    $command->getName()){
                    case 
    "navi":
                        
    $this->Main($sender);
                        break;
                    case 
    "menu":
                        
    $this->Menu($sender);
                }
            }
            return 
    true;
        }

        public function 
    Menu(Player $player){

            
    $form = new SimpleForm(function (Player $player$data){
                if(
    $data === null){
                    return;
                }
                if(
    $data === 0){
                    
    $this->Main($player);
                }
                if(
    $data === 1){
                    
    $player->sendMessage("§a§lLobby§r §8» §cDieses Feature ist noch in der Dev-Phase!");
                }
            });
            
    $form->setTitle("Menü");
            
    $form->setContent("Was möchtest du machen?");
            
    $form->addButton("Navi");
            
    $form->addButton("Info");
            
    $player->sendForm($form);

        }

        public function 
    Main(Player $player){
            
    $form = new SimpleForm(function (Player $player$data){
                switch(
    $data) {
                    case 
    null:
                        return;
                        break;
                    case 
    0:
                        
    $this->Citybuild($player);
                        break;
                    case 
    1:
                        
    $player->teleport($this->getServer()->getLevelByName("Lobby")->getSafeSpawn());
                        
    $player->sendMessage("§a§lLobby§r §8» §aDu wurdest in die Lobby teleportiert!");
                        break;
                    case 
    2:
                        
    $this->Maps($player);
                    break;
                }
            });
            
    $form->setTitle("-=- §6§lNavigationsmenü§r -=-");
            
    $form->setContent("§eWeitere Spielmodi kommen!");
            
    $form->addButton("§a§lCitybuild");
            
    $form->addButton("§lLobby");
            if(
    $player->hasPermission("lobby.navi.leitung") || $player->hasPermission("lobby.navi.builder")){
                
    $form->addButton("§b§lWeitere Welten§r");
            }
            
    $player->sendForm($form);
        }
        public function 
    Maps(Player $player){
            
    $form = new SimpleForm(function (Player $player$data){
                if(
    $player->hasPermission("lobby.navi.leitung")) {
                    switch (
    $data) {
                        case 
    null:
                            return;
                            break;
                        case 
    0:
                            
    $player->teleport($this->getServer()->getLevelByName("BUW")->getSafeSpawn());
                            
    $player->sendMessage('§a§lLobby§r §8» §aYou should be teleported to Level "BUW"!');
                            break;
                        case 
    1:
                            
    $player->teleport($this->getServer()->getLevelByName("LobbyAlt")->getSafeSpawn());
                            
    $player->sendMessage('§a§lLobby§r §8» §aYou should be teleported to Level "LobbyAlt"!');
                            break;
                        case 
    2:
                            
    $player->teleport($this->getServer()->getLevelByName("LobbyBeta")->getSafeSpawn());
                            
    $player->sendMessage('§a§lLobby§r §8» §aYou should be teleported to Level "LobbyBeta"!');
                            break;
                        case 
    3:
                            
    $this->Main($player);
                            break;
                    }
                }else{
                    switch(
    $data){
                        case 
    null:
                            return;
                            break;
                        case 
    0:
                            
    $player->teleport($this->getServer()->getLevelByName("LobbyBeta")->getSafeSpawn());
                            
    $player->sendMessage('§a§lLobby§r §8» §aYou should be teleported to Level "LobbyBeta"!');
                            break;
                        case 
    1:
                            
    $this->Main($player);
                            break;
                    }
                }
            });
            
    $form->setTitle("-=- §6§lNavigationsmenü§r -=-");
            
    $form->setContent("§eHier kannst du die in die §bDev-§3Welten§e joinen!");
            if(
    $player->hasPermission("lobby.navi.leitung")){
                
    $form->addButton("§4§lBUW§r");
                
    $form->addButton("§4§lLobbyAlt§r");
            }
            
    $form->addButton("§a§lLobbyIdee§r");
            
    $form->addButton("§l<- Zurück");
            
    $player->sendForm($form);
        }
        public function 
    Citybuild($player){
            
    $form = new SimpleForm(function (Player $player$data){
                switch(
    $data){
                    case 
    null:
                        return;
                        break;
                    case 
    0:
                        
    $player->teleport($this->getServer()->getLevelByName("Citybuild")->getSafeSpawn());
                        
    $player->sendMessage("§a§lLobby§r §8» §aDu wurdest zum Citybuild-Spawn teleportiert!");
                        break;
                    case 
    1:
                        
    $player->teleport($this->getServer()->getLevelByName("Farmwelt")->getSafeSpawn());
                        
    $player->sendMessage("§a§lLobby§r §8» §aDu wurdest zum in die Farmwelt teleportiert!");
                        break;
                    case 
    2:
                        
    $this->Main($player);
                        break;
                }
            });
            
    $form->setTitle("-=- §6§lNavigationsmenü§r -=-");
            
    $form->setContent("§eHier kannst du die in die §3Welten§e, die zu §aCitybuild §egehören joinen!");
            
    $form->addButton("§a§lCitybuild");
            
    $form->addButton("§2§lFarmwelt");
            
    $form->addButton("§l<- Zurück");
            
    $player->sendForm($form);
        }
    }
    But my issue is not fixed D:
     
    HimbeersaftLP likes this.
  6. driver1848

    driver1848 Spider Jockey

    Messages:
    35
    GitHub:
    driver1848
    So what can i do?
     
  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.