mirror of
https://github.com/Facepunch/Facepunch.Steamworks.git
synced 2024-12-25 06:05:46 +03:00
Renamed Server file
This commit is contained in:
parent
b2db9b5304
commit
22cfc740b1
@ -292,7 +292,7 @@ public void CustomList()
|
|||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public void PlayerList()
|
public void Rules()
|
||||||
{
|
{
|
||||||
using ( var client = new Facepunch.Steamworks.Client( 252490 ) )
|
using ( var client = new Facepunch.Steamworks.Client( 252490 ) )
|
||||||
{
|
{
|
||||||
@ -309,7 +309,7 @@ public void PlayerList()
|
|||||||
client.Update();
|
client.Update();
|
||||||
System.Threading.Thread.Sleep( 10 );
|
System.Threading.Thread.Sleep( 10 );
|
||||||
|
|
||||||
if ( query.Responded.Count > 0 && query.Responded.Any( x => x.Players > 5 ) )
|
if ( query.Responded.Count > 20 )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if ( query.Finished )
|
if ( query.Finished )
|
||||||
@ -318,14 +318,32 @@ public void PlayerList()
|
|||||||
|
|
||||||
query.Dispose();
|
query.Dispose();
|
||||||
|
|
||||||
// var server = query.Responded.First( x => x.Players > 5 );
|
foreach ( var server in query.Responded.Take( 20 ) )
|
||||||
// server.UpdateRules();
|
|
||||||
|
|
||||||
// foreach ( var rule in server.Rules )
|
|
||||||
{
|
{
|
||||||
// Console.WriteLine( rule.Key + " = " + rule.Value );
|
server.FetchRules();
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
while ( !server.HasRules )
|
||||||
|
{
|
||||||
|
i++;
|
||||||
|
client.Update();
|
||||||
|
System.Threading.Thread.Sleep( 2 );
|
||||||
|
|
||||||
|
if ( i > 100 )
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( server.HasRules )
|
||||||
|
{
|
||||||
|
foreach ( var rule in server.Rules )
|
||||||
|
{
|
||||||
|
Console.WriteLine( rule.Key + " = " + rule.Value );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -161,11 +161,11 @@ private void OnServer( gameserveritem_t info )
|
|||||||
{
|
{
|
||||||
if ( info.m_bHadSuccessfulResponse )
|
if ( info.m_bHadSuccessfulResponse )
|
||||||
{
|
{
|
||||||
Responded.Add( Server.FromSteam( info ) );
|
Responded.Add( Server.FromSteam( client, info ) );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Unresponsive.Add( Server.FromSteam( info ) );
|
Unresponsive.Add( Server.FromSteam( client, info ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ namespace Facepunch.Steamworks
|
|||||||
{
|
{
|
||||||
public partial class ServerList
|
public partial class ServerList
|
||||||
{
|
{
|
||||||
public struct Server
|
public class Server
|
||||||
{
|
{
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public int Ping { get; set; }
|
public int Ping { get; set; }
|
||||||
@ -26,13 +26,12 @@ public struct Server
|
|||||||
public int Version { get; set; }
|
public int Version { get; set; }
|
||||||
public string[] Tags { get; set; }
|
public string[] Tags { get; set; }
|
||||||
public ulong SteamId { get; set; }
|
public ulong SteamId { get; set; }
|
||||||
|
|
||||||
public uint Address { get; set; }
|
public uint Address { get; set; }
|
||||||
|
|
||||||
public int ConnectionPort { get; set; }
|
public int ConnectionPort { get; set; }
|
||||||
|
|
||||||
public int QueryPort { get; set; }
|
public int QueryPort { get; set; }
|
||||||
|
|
||||||
|
internal Client Client;
|
||||||
|
|
||||||
public string AddressString
|
public string AddressString
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@ -48,10 +47,11 @@ public string ConnectionAddress
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static Server FromSteam( gameserveritem_t item )
|
internal static Server FromSteam( Client client, gameserveritem_t item )
|
||||||
{
|
{
|
||||||
return new Server()
|
return new Server()
|
||||||
{
|
{
|
||||||
|
Client = client,
|
||||||
Address = item.m_NetAdr.m_unIP,
|
Address = item.m_NetAdr.m_unIP,
|
||||||
ConnectionPort = item.m_NetAdr.m_usConnectionPort,
|
ConnectionPort = item.m_NetAdr.m_usConnectionPort,
|
||||||
QueryPort = item.m_NetAdr.m_usQueryPort,
|
QueryPort = item.m_NetAdr.m_usQueryPort,
|
||||||
@ -72,6 +72,45 @@ internal static Server FromSteam( gameserveritem_t item )
|
|||||||
SteamId = item.m_steamID
|
SteamId = item.m_steamID
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Callback when rules are receieved.
|
||||||
|
/// The bool is true if server responded properly.
|
||||||
|
/// </summary>
|
||||||
|
public Action<bool> OnReceivedRules;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// List of server rules. Use HasRules to see if this is safe to access.
|
||||||
|
/// </summary>
|
||||||
|
public Dictionary<string, string> Rules;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns true if this server has rules
|
||||||
|
/// </summary>
|
||||||
|
public bool HasRules { get { return Rules != null && Rules.Count > 0; } }
|
||||||
|
|
||||||
|
internal Interop.ServerRules RulesRequest;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Populates Rules for this server
|
||||||
|
/// </summary>
|
||||||
|
public void FetchRules()
|
||||||
|
{
|
||||||
|
if ( RulesRequest != null )
|
||||||
|
return;
|
||||||
|
|
||||||
|
Rules = new Dictionary<string, string>();
|
||||||
|
|
||||||
|
RulesRequest = new Interop.ServerRules( this, Address, QueryPort );
|
||||||
|
}
|
||||||
|
|
||||||
|
internal void OnServerRulesReceiveFinished( bool Success )
|
||||||
|
{
|
||||||
|
RulesRequest = null;
|
||||||
|
|
||||||
|
if ( OnReceivedRules != null )
|
||||||
|
OnReceivedRules( Success );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -128,7 +128,6 @@ private void UpdateRequest()
|
|||||||
if ( status == Valve.Steamworks.EResult.k_EResultOK || status == Valve.Steamworks.EResult.k_EResultExpired )
|
if ( status == Valve.Steamworks.EResult.k_EResultOK || status == Valve.Steamworks.EResult.k_EResultExpired )
|
||||||
{
|
{
|
||||||
RetrieveInventory();
|
RetrieveInventory();
|
||||||
DestroyResult();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -187,6 +186,11 @@ private unsafe void RetrieveInventory()
|
|||||||
|
|
||||||
SerializedExpireTime = DateTime.Now.Add( TimeSpan.FromMinutes( 60 ) );
|
SerializedExpireTime = DateTime.Now.Add( TimeSpan.FromMinutes( 60 ) );
|
||||||
|
|
||||||
|
//
|
||||||
|
// Finished with this result, don't call it again
|
||||||
|
//
|
||||||
|
DestroyResult();
|
||||||
|
|
||||||
//
|
//
|
||||||
// Tell everyone we've got new items!
|
// Tell everyone we've got new items!
|
||||||
//
|
//
|
||||||
|
Loading…
Reference in New Issue
Block a user