Как скрыть игрока в табе

Как скрыть игрока в табе(Nametag, DisplayName)

КОД:

case "hideall":
				if (!$sender instanceof Player) {
					$sender->sendMessage("§cЭта команда доступна только игрокам.");
					return false;
				}

				$player = $sender;
				$name = strtolower($player->getName());
				
				if (isset($this->hiddenPlayers[$name]) && $this->hiddenPlayers[$name] === true) {					
					$player->setDataFlag(Entity::DATA_FLAGS, Entity::DATA_FLAG_INVISIBLE, false); 
					$player->setNameTagVisible(true);
					
					foreach ($this->getServer()->getOnlinePlayers() as $otherPlayer) {
						if ($otherPlayer !== $player) {
							$otherPlayer->showPlayer($player); 
						}
					}
					
					unset($this->hiddenPlayers[$name]);
					$player->sendPopup($this->messages['hideall-show']);
				} else {					
					$player->setDataFlag(Entity::DATA_FLAGS, Entity::DATA_FLAG_INVISIBLE, true); 
					$player->setNameTagVisible(false); 
					
					Foreach ($this->getServer()->getOnlinePlayers() as $players) {
						if ($players != $sender) {
							$players->hidePlayer($sender);
						}
					}
					
					$this->hiddenPlayers[$name] = true;
					$player->sendPopup($this->messages['hideall-hide']);
				}

				return true;

Я знаю можно setDisplayName(“”) но тогда будет виден что-то прозрачное

PlayerListPacket

еще лучше есть(

if (isset($this->hiddenPlayers[$name]) && $this->hiddenPlayers[$name] === true) {                  
					
					$player->setInvisible(false); 
					$player->setNameTagVisible(true); 
					$player->setDisplayName($player->getName());
					
					foreach ($this->getServer()->getOnlinePlayers() as $otherPlayer) {
						if ($otherPlayer !== $player) {
							$otherPlayer->showPlayer($player); 
						}
					}					
					
					$this->getServer()->addOnlinePlayer($player);

					unset($this->hiddenPlayers[$name]);
					$player->sendPopup($this->messages['hideall-show']);
				} else {                    
					
					$player->setInvisible(true); 
					$player->setNameTagVisible(false);					

					foreach ($this->getServer()->getOnlinePlayers() as $otherPlayer) {
						if ($otherPlayer !== $player) {
							$otherPlayer->hidePlayer($player); 
						}
					}			
					
					$this->getServer()->removeOnlinePlayer($player); 

					$this->hiddenPlayers[$name] = true;
					$player->sendPopup($this->messages['hideall-hide']);
				}

Использовать у Server.php addOnlinePlayer и removeOnlinePlayer

public function addOnlinePlayer(Player $player){
		$this->updatePlayerListData($player->getUniqueId(), $player->getId(), $player->getDisplayName(), $player->getSkinId(), $player->getSkinData());

		$this->playerList[$player->getRawUniqueId()] = $player;
	}

public function removeOnlinePlayer(Player $player){
		if(isset($this->playerList[$player->getRawUniqueId()])){
			unset($this->playerList[$player->getRawUniqueId()]);

			$pk = new PlayerListPacket();
			$pk->type = PlayerListPacket::TYPE_REMOVE;
			$pk->entries[] = [$player->getUniqueId()];
			$this->broadcastPacket($this->playerList, $pk);
		}
	}