61 lines
1.9 KiB
C#
61 lines
1.9 KiB
C#
using System;
|
|
using System.Threading.Tasks;
|
|
using SteamQueryNet;
|
|
using SteamQueryNet.Interfaces;
|
|
|
|
namespace ConsoleApp1
|
|
{
|
|
struct server_metrics
|
|
{
|
|
public uint openSlots; //NUMOPENPUBCONN
|
|
}
|
|
|
|
class ArkServer
|
|
{
|
|
public string ConnectionInfo { get; }
|
|
public uint openSlots { get; }
|
|
|
|
public ArkServer(string address)
|
|
{
|
|
ConnectionInfo = address;
|
|
}
|
|
}
|
|
|
|
class Program
|
|
{
|
|
private static string hostname = "join.unfesports.com";
|
|
|
|
private static ArkServer[] servers = //Todo, make this an arg ... maybe validate hostname, or just pass port.
|
|
{
|
|
new ArkServer($"{hostname}:27015"),
|
|
new ArkServer($"{hostname}:27016"),
|
|
new ArkServer($"{hostname}:27017"),
|
|
new ArkServer($"{hostname}:27018"),
|
|
new ArkServer($"{hostname}:27019")
|
|
};
|
|
|
|
static async Task Main(string[] args)
|
|
{
|
|
Console.WriteLine("Enumerating Servers");
|
|
for (int i = 0; i < 5; ++i)
|
|
{
|
|
string myHostAndPort = $"join.unfesports.com:{27015+i}";
|
|
IServerQuery serverQuery = new ServerQuery(myHostAndPort);
|
|
var a = await serverQuery.GetServerInfoAsync();
|
|
var b = await serverQuery.GetRulesAsync();
|
|
Console.WriteLine($"Map: {a.Map} - {a.Name} - {a.Version}");
|
|
server_metrics serverMetrics = new server_metrics();
|
|
foreach (var c in b)
|
|
{
|
|
if (c.Name == "NUMOPENPUBCONN")
|
|
{
|
|
serverMetrics.openSlots = uint.Parse(c.Value);
|
|
}
|
|
Console.WriteLine($"{c.Name} / {c.Value}");
|
|
}
|
|
Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(serverMetrics));
|
|
}
|
|
|
|
}
|
|
}
|
|
} |