Package l2p.loginserver.gameservercon

Examples of l2p.loginserver.gameservercon.GameServerInfo


    try
    {
      con = L2DatabaseFactory.getInstance().getConnection();
      statement = con.prepareStatement("SELECT * FROM gameservers");
      rset = statement.executeQuery();
      GameServerInfo gsi;
      while(rset.next())
      {
        id = rset.getInt("server_id");
        gsi = new GameServerInfo(id, stringToHex(rset.getString("hexid")));
        _gameServerTable.put(id, gsi);
      }
    }
    finally
    {
View Full Code Here


    return null;
  }

  public int getOnlinePlayerCount(int serverId)
  {
    GameServerInfo gsi = GameServerTable.getInstance().getRegisteredGameServerById(serverId);
    if(gsi != null && gsi.isAuthed())
    {
      return gsi.getCurrentPlayerCount();
    }
    return 0;
  }
View Full Code Here

    return total;
  }

  public int getMaxAllowedOnlinePlayers(int id)
  {
    GameServerInfo gsi = GameServerTable.getInstance().getRegisteredGameServerById(id);
    if(gsi != null)
    {
      return gsi.getMaxPlayers();
    }
    return 0;
  }
View Full Code Here

    return 0;
  }

  public boolean isLoginPossible(L2LoginClient client, int serverId)
  {
    GameServerInfo gsi = GameServerTable.getInstance().getRegisteredGameServerById(serverId);
    int access = client.getAccessLevel();
    boolean loginOk = gsi != null && gsi.isAuthed() && (gsi.getCurrentPlayerCount() < gsi.getMaxPlayers() || access >= 50);
    if(loginOk && client.getLastServer() != serverId)
    {
      mysql.set("UPDATE accounts SET lastServer=? WHERE login=?", serverId, client.getAccount());
    }
    return loginOk;
View Full Code Here

  }

  @Override
  public void read()
  {
    GameServerInfo gsi = GameServerTable.getInstance().getRegisteredGameServerById(getGameServer().getServerId());
    if(gsi != null)
    {
      int size = readD();
      for(int i = 0; i < size; i++)
      {
        int type = readD();
        int value = readD();
        switch(type)
        {
          case SERVER_LIST_STATUS:
            gsi.setStatus(value);
            break;
          case SERVER_LIST_CLOCK:
            gsi.setShowingClock(value == ON);
            break;
          case SERVER_LIST_SQUARE_BRACKET:
            gsi.setShowingBrackets(value == ON);
            break;
          case TEST_SERVER:
            gsi.setTestServer(value == ON);
            break;
          case MAX_PLAYERS:
            gsi.setMaxPlayers(value);
            break;
        }
      }
    }
  }
View Full Code Here

      protocolVersion = 0;
    }
    log.info("Trying to register server: " + requestId + ", " + getGameServer().getConnectionIpAddress());
    AttGS client = getGameServer();
    GameServerTable gameServerTable = GameServerTable.getInstance();
    GameServerInfo gsi = gameServerTable.getRegisteredGameServerById(requestId);
    // is there a gameserver registered with this id?
    if(gsi != null)
    {
      // does the hex id match?
      if(Arrays.equals(gsi.getHexId(), hexId))
      // check to see if this GS is already connected
      {
        synchronized(gsi)
        {
          if(gsi.isAuthed())
          {
            sendPacket(new LoginServerFail(LoginServerFail.REASON_ALREADY_LOGGED8IN));
          }
          else
          {
            client.setGameServerInfo(gsi);
            gsi.setGameServer(client);
            gsi.setPorts(ports);
            gsi.setGameHosts(externalIp, internalIp, advIpList);
            gsi.setMaxPlayers(maxOnline);
            gsi.setAuthed(true);
          }
        }
      }
      else // there is already a server registered with the desired id and different hex id
        // try to register this one with an alternative id
        if(Config.ACCEPT_NEW_GAMESERVER && acceptAlternateID)
        {
          gsi = new GameServerInfo(requestId, hexId, client);
          if(gameServerTable.registerWithFirstAvailableId(gsi))
          {
            client.setGameServerInfo(gsi);
            gsi.setGameServer(client);
            gsi.setPorts(ports);
            gsi.setGameHosts(externalIp, internalIp, advIpList);
            gsi.setMaxPlayers(maxOnline);
            gsi.setAuthed(true);
            if(reserveHostOnLogin)
            {
              gameServerTable.registerServerOnDB(gsi);
            }
          }
          else
          {
            sendPacket(new LoginServerFail(LoginServerFail.REASON_NO_FREE_ID));
          }
        }
        else
        // server id is already taken, and we cant get a new one for you
        {
          sendPacket(new LoginServerFail(LoginServerFail.REASON_WRONG_HEXID));
        }
    }
    else if(Config.ACCEPT_NEW_GAMESERVER)
    {
      gsi = new GameServerInfo(requestId, hexId, client);
      if(gameServerTable.register(requestId, gsi))
      {
        client.setGameServerInfo(gsi);
        gsi.setGameServer(client);
        gsi.setPorts(ports);
        gsi.setGameHosts(externalIp, internalIp, advIpList);
        gsi.setMaxPlayers(maxOnline);
        gsi.setAuthed(true);
        if(reserveHostOnLogin)
        {
          gameServerTable.registerServerOnDB(gsi);
        }
      }
      else
      // some one took this ID meanwhile
      {
        sendPacket(new LoginServerFail(LoginServerFail.REASON_ID_RESERVED));
      }
    }
    else
    {
      sendPacket(new LoginServerFail(LoginServerFail.REASON_WRONG_HEXID));
    }
    if(gsi != null && gsi.isAuthed())
    {
      AuthResponse ar = new AuthResponse(gsi.getId());
      client.setProtocolVersion(protocolVersion);
      client.setAuthed(true);
      client.setServerId(gsi.getId());
      sendPacket(ar);
      sendPacket(new BanIPList());
      log.info("Server registration successful.");
    }
    else
View Full Code Here

TOP

Related Classes of l2p.loginserver.gameservercon.GameServerInfo

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.