(1edd7c0b9) Created methods for getting lists of favourite servers and servers you've been to (history) from the GetServers method, changes might be needed
This commit is contained in:
@@ -107,6 +107,56 @@ namespace Barotrauma.Steam
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool GetFavouriteServers(Action<Networking.ServerInfo> onServerFound, Action<Networking.ServerInfo> onServerRulesReceived, Action onFinished)
|
||||||
|
{
|
||||||
|
if (instance == null || !instance.isInitialized)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var filter = new ServerList.Filter
|
||||||
|
{
|
||||||
|
{ "appid", AppID.ToString() },
|
||||||
|
{ "gamedir", "Barotrauma" },
|
||||||
|
{ "secure", "1" }
|
||||||
|
};
|
||||||
|
|
||||||
|
//include unresponsive servers in the server list
|
||||||
|
|
||||||
|
//the response is queried using the server's query port, not the game port,
|
||||||
|
//so it may be possible to play on the server even if it doesn't respond to server list queries
|
||||||
|
var query = instance.client.ServerList.Favourites(filter);
|
||||||
|
query.OnUpdate += () => { UpdateServerQuery(query, onServerFound, onServerRulesReceived, includeUnresponsive: true); };
|
||||||
|
query.OnFinished = onFinished;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool GetServersFromHistory(Action<Networking.ServerInfo> onServerFound, Action<Networking.ServerInfo> onServerRulesReceived, Action onFinished)
|
||||||
|
{
|
||||||
|
if (instance == null || !instance.isInitialized)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var filter = new ServerList.Filter
|
||||||
|
{
|
||||||
|
{ "appid", AppID.ToString() },
|
||||||
|
{ "gamedir", "Barotrauma" },
|
||||||
|
{ "secure", "1" }
|
||||||
|
};
|
||||||
|
|
||||||
|
//include unresponsive servers in the server list
|
||||||
|
|
||||||
|
//the response is queried using the server's query port, not the game port,
|
||||||
|
//so it may be possible to play on the server even if it doesn't respond to server list queries
|
||||||
|
var query = instance.client.ServerList.History(filter);
|
||||||
|
query.OnUpdate += () => { UpdateServerQuery(query, onServerFound, onServerRulesReceived, includeUnresponsive: true); };
|
||||||
|
query.OnFinished = onFinished;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
private static void UpdateServerQuery(ServerList.Request query, Action<Networking.ServerInfo> onServerFound, Action<Networking.ServerInfo> onServerRulesReceived, bool includeUnresponsive)
|
private static void UpdateServerQuery(ServerList.Request query, Action<Networking.ServerInfo> onServerFound, Action<Networking.ServerInfo> onServerRulesReceived, bool includeUnresponsive)
|
||||||
{
|
{
|
||||||
IEnumerable<ServerList.Server> servers = includeUnresponsive ?
|
IEnumerable<ServerList.Server> servers = includeUnresponsive ?
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
private ContentPackage itemContentPackage;
|
private ContentPackage itemContentPackage;
|
||||||
private Facepunch.Steamworks.Workshop.Editor itemEditor;
|
private Facepunch.Steamworks.Workshop.Editor itemEditor;
|
||||||
|
//private Facepunch.Steamworks.Overlay overlay;
|
||||||
|
|
||||||
public SteamWorkshopScreen()
|
public SteamWorkshopScreen()
|
||||||
{
|
{
|
||||||
@@ -637,6 +638,12 @@ namespace Barotrauma
|
|||||||
OutlineColor = new Color(72, 124, 77, 255),
|
OutlineColor = new Color(72, 124, 77, 255),
|
||||||
OnClicked = (btn, userdata) =>
|
OnClicked = (btn, userdata) =>
|
||||||
{
|
{
|
||||||
|
// Failed attempt, might have to be activated before accessing because as of now it just throws a null for overlay
|
||||||
|
/*if (overlay.Enabled)
|
||||||
|
{
|
||||||
|
overlay.OpenUrl("steam://url/CommunityFilePage/" + item.Id);
|
||||||
|
}*/
|
||||||
|
|
||||||
System.Diagnostics.Process.Start("steam://url/CommunityFilePage/" + item.Id);
|
System.Diagnostics.Process.Start("steam://url/CommunityFilePage/" + item.Id);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user