content: /*
   * BedWars1058 - A bed wars mini-game.
   * Copyright (C) 2021 Andrei Dascălu
   *
   * This program is free software: you can redistribute it and/or modify
   * it under the terms of the GNU General Public License as published by
   * the Free Software Foundation, either version 3 of the License, or
   * (at your option) any later version.
   *
   * This program is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   * GNU General Public License for more details.
   *
   * You should have received a copy of the GNU General Public License
   * along with this program.  If not, see <https://www.gnu.org/licenses/>.
   *
   * Contact e-mail: andrew.dascalu@gmail.com
   */
  
  package com.andrei1058.bedwars.listeners.joinhandler;
  
  import com.andrei1058.bedwars.BedWars;
  import com.andrei1058.bedwars.arena.Arena;
  import com.andrei1058.bedwars.sidebar.SidebarService;
  import org.bukkit.Bukkit;
  import org.bukkit.entity.Player;
  import org.bukkit.event.EventHandler;
  import org.bukkit.event.Listener;
  import org.bukkit.event.player.PlayerJoinEvent;
  
  import static com.andrei1058.bedwars.BedWars.mainCmd;
  import static com.andrei1058.bedwars.BedWars.plugin;
  
  public class JoinListenerShared implements Listener {
  
      @EventHandler
      public void onJoin(PlayerJoinEvent e){
          final Player p = e.getPlayer();
  
          JoinHandlerCommon.displayCustomerDetails(p);
  
          // Show commands if player is op and there is no set arenas
          if (p.isOp()) {
              if (Arena.getArenas().isEmpty()) {
                  p.performCommand(mainCmd);
              }
          }
  
          Bukkit.getScheduler().runTaskLater(plugin, () -> {
              // Hide new player to players and spectators, and vice versa
              for (Player inArena : Arena.getArenaByPlayer().keySet()){
                  if (inArena.equals(p)) continue;
                  BedWars.nms.spigotHidePlayer(p, inArena);
                  BedWars.nms.spigotHidePlayer(inArena, p);
              }
          }, 14L);
  
          // Give scoreboard
          if (e.getPlayer().getWorld().getName().equalsIgnoreCase(BedWars.getLobbyWorld())) {
              SidebarService.getInstance().giveSidebar(e.getPlayer(), null, true);
          }
      }
  }
  
  