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

Solved Adding items to a player's hotbar in certain world

Discussion in 'Development' started by KinokiYT, May 4, 2020.

  1. KinokiYT

    KinokiYT Spider Jockey

    Messages:
    25
    GitHub:
    kinokiyt
    Hello, I'm making a plugin that is like a hub Hotbar plugin for my server. I've got it down where that if a player respawns, and joins the server. I have a SkyWars plugin that at the end of the game, it transfers the player to the Hub, without the hub Hotbar items. I have been looking into some other plugins and other threads, but I need a way that when the player is detected in the hub, it gives them the Hotbar items. The items have a NamedTagEntry with the interaction event.

    Code:
            $player = $event->getPlayer();
            $player->getInventory()->clearAll();
            $player->setGamemode(2);
            $leap = Item::get(288, 0, 1);
            $cosmetics = Item::get(399, 0, 1);
            $gamemenu = Item::get(345, 0, 1);
            $hideplayers = Item::get(351, 10, 1);
            $profile = Item::get(397, 3, 1);
    
            $leap->setCustomName(TF::RESET . TF::GREEN . "Leap" . TF::GRAY . " (Use)");
            $cosmetics->setCustomName(TF::RESET . TF::GREEN . "Cosmetics" . TF::GRAY . " (Use)");
            $gamemenu->setCustomName(TF::RESET . TF::GREEN . "Game Menu" . TF::GRAY . " (Use)");
            $hideplayers->setCustomName(TF::RESET . TF::WHITE . "Players: " . TF::GREEN . "Visible " . TF::GRAY . "(Use)");
            $profile->setCustomName(TF::RESET . TF::GREEN . "Profile" . TF::GRAY . " (Use)");
    
            $leap->setNamedTagEntry(new StringTag("Hotbar", "one"));
            $cosmetics->setNamedTagEntry(new StringTag("Hotbar", "two"));
            $gamemenu->setNamedTagEntry(new StringTag("Hotbar", "three"));
            $hideplayers->setNamedTagEntry(new StringTag("Hotbar", "four"));
            $profile->setNamedTagEntry(new StringTag("Hotbar", "five"));
    
            $player->getInventory()->setItem(0, $leap, true);
            $player->getInventory()->setItem(1, $cosmetics, true);
            $player->getInventory()->setItem(4, $gamemenu, true);
            $player->getInventory()->setItem(7, $hideplayers, true);
            $player->getInventory()->setItem(8, $profile, true);
     
  2. HimbeersaftLP

    HimbeersaftLP Fish

    Messages:
    2,402
    GitHub:
    HimbeersaftLP
    Listen for the EntityLevelChangeEvent to see when a player changes the world
     
  3. Khaled

    Khaled Slime

    Messages:
    81
    GitHub:
    xXKHaLeD098Xx
    PHP:
    public function onEntityLevelChange(EntityLevelChangeEvent $event)
        {

            
    $player $event->getEntity();
            if (!
    $player instanceof Player) return;
            if (
    $event->getTarget()->getFolderName() === $this->plugin->getServer()->getDefaultLevel()->getFolderName()) {
                
    $player->getInventory()->clearAll();
                
    $player->setGamemode(2);
                
    $leap Item::get(28801);
                
    $cosmetics Item::get(39901);
                
    $gamemenu Item::get(34501);
                
    $hideplayers Item::get(351101);
                
    $profile Item::get(39731);

                
    $leap->setCustomName(TF::RESET TF::GREEN "Leap" TF::GRAY " (Use)");
                
    $cosmetics->setCustomName(TF::RESET TF::GREEN "Cosmetics" TF::GRAY " (Use)");
                
    $gamemenu->setCustomName(TF::RESET TF::GREEN "Game Menu" TF::GRAY " (Use)");
                
    $hideplayers->setCustomName(TF::RESET TF::WHITE "Players: " TF::GREEN "Visible " TF::GRAY "(Use)");
                
    $profile->setCustomName(TF::RESET TF::GREEN "Profile" TF::GRAY " (Use)");

                
    $leap->setNamedTagEntry(new StringTag("Hotbar""one"));
                
    $cosmetics->setNamedTagEntry(new StringTag("Hotbar""two"));
                
    $gamemenu->setNamedTagEntry(new StringTag("Hotbar""three"));
                
    $hideplayers->setNamedTagEntry(new StringTag("Hotbar""four"));
                
    $profile->setNamedTagEntry(new StringTag("Hotbar""five"));

                
    $player->getInventory()->setItem(0$leaptrue);
                
    $player->getInventory()->setItem(1$cosmeticstrue);
                
    $player->getInventory()->setItem(4$gamemenutrue);
                
    $player->getInventory()->setItem(7$hideplayerstrue);
                
    $player->getInventory()->setItem(8$profiletrue);
            }
        }
    This should do it
     
  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.