public List <GameServerEntry> SelectActiveGameServers()
        {
            string command = "SELECT * FROM game_servers WHERE is_active = 1";

            using (SqlCommand cmd = new SqlCommand(command, Connection))
            {
                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                    List <GameServerEntry> result = new List <GameServerEntry>();
                    int ord_name        = reader.GetOrdinal("name");
                    int ord_ip          = reader.GetOrdinal("ip");
                    int ord_port        = reader.GetOrdinal("port");
                    int ord_max_players = reader.GetOrdinal("max_players");
                    while (reader.Read())
                    {
                        var game_serv_entry = new GameServerEntry();
                        game_serv_entry.Name       = reader.GetString(ord_name);
                        game_serv_entry.Socket     = new IPEndPoint(new IPAddress(reader.GetInt64(ord_ip)), reader.GetInt32(ord_port));
                        game_serv_entry.MaxPlayers = reader.GetInt16(ord_max_players);
                        game_serv_entry.IsActive   = true;
                        result.Add(game_serv_entry);
                    }
                    return(result);
                }
            }
            return(null);
        }
 private void AppendServer(GameServerEntry entry)
 {
     /* DEBUG
      * var r = new Random();
      * tblServersList.Rows.Add(
      *  "Server name",
      *  ToPlayersString(r.Next(1,10), r.Next(1,50)),
      *  ToGameStatusString(),
      *  ToPingString(r.Next(1, 100))
      * );
      */
     tblServersList.Rows.Add(
         entry.Name,
         "? / " + entry.MaxPlayers
         );
 }
        public bool TryRegisterServer(IPAddress who_requests, GameServerEntry server_options)
        {
            if (IsRecentIp(who_requests))
            {
                return(false);
            }
            int insert_result = server_options.ExecuteInsertCommand(DbServer.Connection);

            if (insert_result != 0)
            {
                return(false);
            }
            _recent_server_creators_IPs.Enqueue(new TimestampedIP(who_requests, DateTime.UtcNow));
            OnMessageToGameServer?.Invoke(
                this,
                new MessageToGameServerEventArgs(server_options, HeadToGameServerMessage.AckRegister)
                );
            return(true);
        }
 public CommunityServerEntry(GameServerEntry entry)
 {
     this.entry  = entry;
     Region      = entry.Region;
     PlayerCount = entry.PlayerCount;
 }
 public MessageToGameServerEventArgs(GameServerEntry server, HeadToGameServerMessage type)
 {
     Server      = server;
     MessageType = type;
 }
 public MessageFromGameServerEventArgs(GameServerEntry server, GameToHeadServerMessage type)
 {
     Server      = server;
     MessageType = type;
 }
Exemple #7
0
 public ServerCreationEventArgs(GameServerEntry options)
 {
     Options = options;
 }