using System;
using System.Collections.Generic;
using System.Configuration;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net;
using System.Reflection;
using System.Xml;
using System.Xml.Linq;
namespace AyalaLauncherBeta2016.Config
{
static class Settings
{
private static string appdataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
private static string folderURI = Path.Combine(appdataPath, @"Ayala Online\Config");
public static string LauncherDataFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"reslauncher\");
public static void InitLauncherDataFolder()
{
Directory.CreateDirectory(LauncherDataFolder);
}
#region WebConf
// retrieve settings from FilterLauncher
public const string FilterLauncherHost = "http://game.ayalaonline.net";
public const string APIBaseUri = @"/api/v1/filter";
public const int FilterLauncherPort = 10003;
public const string FilterLauncherHostFallback = "http://home.meshnet0.com";
///
/// Checks FilterLauncher for valid response to determine if connection issues exist
///
///
/// Returns whether or not the server is accessible
/// true/false
///
public static bool ServerAccessible(bool checkFallback = false)
{
try
{
InfoResp pingResp = FilterRestClient.RestPing();
return pingResp.Info.Equals("Pong");
}
catch
{
return false;
}
}
public static bool ServerMaintenance(string Username, out Boolean MaintPatchAvailable, int serverID = 1)
{
try
{
MaintPatchAvailable = false;
return false;
}
catch
{
MaintPatchAvailable = false;
return false;
}
}
private static string LauncherInfoRequest(string infoType, int serverID = 1)
{
try
{
InfoResp infoResp = FilterRestClient.RestInfoReq(serverID, infoType);
return infoResp.Info;
}
catch
{
return null;
}
}
public static string LauncherTitle { get { return LauncherInfoRequest("LauncherTitle") ; } } // Window title
public static string LauncherPatchesURL { get { return LauncherInfoRequest("LauncherPatchesURL"); } } // Launcher self-update URL
public static string LauncherVersionFN { get { return LauncherInfoRequest("LauncherVersionFN"); } } // Launcher version filename
public static string LauncherPatchLogFN { get { return LauncherInfoRequest("PatchLogURL"); } } // Launcher Patch log filename
public static string GamePatchesURL { get { return LauncherInfoRequest("GamePatchesURL"); } } // Game patches URL
public static string GameVersionFN { get { return LauncherInfoRequest("GameVersionFN"); } } // Launcher version filename
public static string GamePatchLogFN { get { return LauncherInfoRequest("GamePatchLogFN"); } } // Patch log URL
public static string ServerIP // Game server IP
{
get
{
using (WebClientAuth wc = new WebClientAuth())
{
var gameHost = wc.DownloadString(LauncherInfoRequest("GameServerIP"));
UriHostNameType hostType = Uri.CheckHostName(gameHost);
if (hostType == UriHostNameType.Unknown) return null;
else
{
IPHostEntry ipHE = Dns.GetHostEntry(gameHost);
return ipHE.AddressList.FirstOrDefault().ToString();
}
}
}
}
public static string ServerName { get { return LauncherInfoRequest("GameServerName"); } } // Game name
public static string ClientName { get { return LauncherInfoRequest("GameClientName"); } } // Client EXE name
#endregion
}
}