Skip to content

Commit

Permalink
Multiple serverlist
Browse files Browse the repository at this point in the history
  • Loading branch information
MeTonaTOR committed Jan 28, 2019
1 parent 0299874 commit b2ac7fc
Show file tree
Hide file tree
Showing 5 changed files with 118 additions and 62 deletions.
3 changes: 2 additions & 1 deletion GameLauncher/App/Classes/Proxy/ProxyHandler.cs
Expand Up @@ -125,7 +125,6 @@ public class ProxyHandler : IApplicationStartup
if (Self.sendRequest == true) {
var fixedPath = context.Request.Path.Replace("/nfsw/Engine.svc", "");
var fullUrl = new Uri(serverUrl).Append(fixedPath);
Log.Debug($@"{context.Request.Method} {fixedPath} -> ");

foreach (var param in context.Request.Query) {
var value = context.Request.Query[param];
Expand Down Expand Up @@ -196,6 +195,8 @@ public class ProxyHandler : IApplicationStartup

}

Log.Debug($@"{context.Request.Method} {fixedPath} -> {POSTContent} -> {GETContent} -> {replyToServer}");

DiscordGamePresence.handleGameState(fixedPath, replyToServer, POSTContent, GETContent);

return new TextResponse(replyToServer, response.Content.Headers.ContentType.ToString()) { StatusCode = (HttpStatusCode)(int)response.StatusCode };
Expand Down
9 changes: 8 additions & 1 deletion GameLauncher/App/Classes/Self.cs
Expand Up @@ -12,7 +12,14 @@ namespace GameLauncherReborn {
class Self {
public static string mainserver = "https://launchpad.soapboxrace.world";

public static string serverlisturl = mainserver + "/servers";
public static string[] serverlisturl = new string[] {
"https://launchpad.soapboxrace.world/servers",
"http://api.nightriderz.world/servers.json",
"http://worldunited.gg/serverlist.json",
"https://nfswonline.pl/lista_serwerow.json"
};

//public static string serverlisturl = mainserver + "/servers";

public static string internetcheckurl = mainserver + "/generate_204.php";
public static string statsurl = mainserver + "/stats";
Expand Down
116 changes: 58 additions & 58 deletions GameLauncher/App/MainScreen.cs
Expand Up @@ -486,79 +486,79 @@ private void moveWindow_MouseMove(object sender, MouseEventArgs e)
rememberMe.Checked = true;
}

try {
Log.Debug("Loading serverlist");
WebClientWithTimeout wc = new WebClientWithTimeout();

var serverurl = Self.serverlisturl;
_slresponse += wc.DownloadString(serverurl);

_serverlistloaded = true;
foreach(string serverurl in Self.serverlisturl) {
try {
Log.Debug("Loading serverlist");
WebClientWithTimeout wc = new WebClientWithTimeout();

try
{
var fileStream = new FileStream("ServerCache.json", FileMode.Create);
_slresponse = wc.DownloadString(serverurl);
_serverlistloaded = true;

var dEsCryptoServiceProvider = new DESCryptoServiceProvider()
try
{
Key = Encoding.ASCII.GetBytes(_serverCacheKey),
IV = Encoding.ASCII.GetBytes(_serverCacheKey)
};

var cryptoStream = new CryptoStream(fileStream, dEsCryptoServiceProvider.CreateEncryptor(), CryptoStreamMode.Write);
var streamWriter = new StreamWriter(cryptoStream);
streamWriter.Write(_slresponse);
streamWriter.Close();
} catch(Exception ex) {
Log.Error(ex.Message);
}
} catch (Exception error) {
Log.Error(error.Message + ". Restoring from ServerCache");
var fileStream = new FileStream("ServerCache.json", FileMode.Create);

if (File.Exists("ServerCache.json")) {
var fileStream = new FileStream("ServerCache.json", FileMode.Open);
var dEsCryptoServiceProvider = new DESCryptoServiceProvider()
{
Key = Encoding.ASCII.GetBytes(_serverCacheKey),
IV = Encoding.ASCII.GetBytes(_serverCacheKey)
};

var dEsCryptoServiceProvider = new DESCryptoServiceProvider() {
Key = Encoding.ASCII.GetBytes(_serverCacheKey),
IV = Encoding.ASCII.GetBytes(_serverCacheKey)
};
var cryptoStream = new CryptoStream(fileStream, dEsCryptoServiceProvider.CreateEncryptor(), CryptoStreamMode.Write);
var streamWriter = new StreamWriter(cryptoStream);
streamWriter.Write(_slresponse);
streamWriter.Close();
} catch(Exception ex) {
Log.Error(ex.Message);
}
} catch (Exception error) {
Log.Error(error.Message + ". Restoring from ServerCache");

var cryptoStream = new CryptoStream(fileStream, dEsCryptoServiceProvider.CreateDecryptor(), CryptoStreamMode.Read);
var streamReader = new StreamReader(cryptoStream);
_slresponse = streamReader.ReadToEnd();
if (File.Exists("ServerCache.json")) {
var fileStream = new FileStream("ServerCache.json", FileMode.Open);

if (string.IsNullOrWhiteSpace(_slresponse)) {
_slresponse = "[]";
}
var dEsCryptoServiceProvider = new DESCryptoServiceProvider() {
Key = Encoding.ASCII.GetBytes(_serverCacheKey),
IV = Encoding.ASCII.GetBytes(_serverCacheKey)
};

_serverlistloaded = true;
} else {
_slresponse = JsonConvert.SerializeObject(new[] {
new ServerInfo {
Category = "OFFLINE",
Name = "Offline Built-In Server",
IpAddress = "http://localhost:4416/sbrw/Engine.svc",
Id = "__offlinebuiltin__"
var cryptoStream = new CryptoStream(fileStream, dEsCryptoServiceProvider.CreateDecryptor(), CryptoStreamMode.Read);
var streamReader = new StreamReader(cryptoStream);
_slresponse = streamReader.ReadToEnd();

if (string.IsNullOrWhiteSpace(_slresponse)) {
_slresponse = "[]";
}
});

_serverlistloaded = true;
} else {
_slresponse = JsonConvert.SerializeObject(new[] {
new ServerInfo {
Category = "OFFLINE",
Name = "Offline Built-In Server",
IpAddress = "http://localhost:4416/sbrw/Engine.svc",
Id = "__offlinebuiltin__"
}
});
}
}
}

Log.Debug("Setting loaded serverlist");
serverPick.DisplayMember = "Name";
Log.Debug("Setting loaded serverlist");
serverPick.DisplayMember = "Name";

var resItems = JsonConvert.DeserializeObject<List<ServerInfo>>(_slresponse);
var resItems = JsonConvert.DeserializeObject<List<ServerInfo>>(_slresponse);

foreach (var serverItemGroup in resItems.GroupBy(s => s.Category))
{
finalItems.Add(new ServerInfo
foreach (var serverItemGroup in resItems.GroupBy(s => s.Category))
{
Id = $"__category-{serverItemGroup.Key}__",
Name = $"<GROUP>{serverItemGroup.Key} Servers",
IsSpecial = true
});
finalItems.Add(new ServerInfo
{
Id = $"__category-{serverItemGroup.Key}__",
Name = $"<GROUP>{serverItemGroup.Key} Servers",
IsSpecial = true
});

finalItems.AddRange(serverItemGroup.ToList());
finalItems.AddRange(serverItemGroup.ToList());
}
}

if (File.Exists("servers.json"))
Expand Down
4 changes: 2 additions & 2 deletions GameLauncher/Properties/AssemblyInfo.cs
Expand Up @@ -32,5 +32,5 @@
// Możesz określić wszystkie wartości lub użyć domyślnych numerów kompilacji i poprawki
// przy użyciu symbolu „*”, tak jak pokazano poniżej:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.0.2.0")]
[assembly: AssemblyFileVersion("2.0.2.0")]
[assembly: AssemblyVersion("2.0.2.2")]
[assembly: AssemblyFileVersion("2.0.2.2")]
48 changes: 48 additions & 0 deletions generate_levels.php
@@ -0,0 +1,48 @@
<pre>
<?php

$lvl = (int)$_GET['lvl'] == 0 ? 60 : (int)$_GET['lvl'];

$array[1] = 100;
$array[2] = 875;
$array[3] = 1050;
$array[4] = 1600;
$array[5] = 2250;
$array[6] = 3000;
$array[7] = 3850;
$array[8] = 4800;
$array[9] = 5850;
$array[10] = 7000;

echo "INSERT INTO `LEVEL_REP` (`level`, `expPoint`) VALUES".PHP_EOL;

for ($i=1; $i <= $lvl; $i++) {
if($i <= 10) {
$formula = $array[$i];
} elseif($i <= 30) {
$start = 7000;
$base = 1800;
$inc = 200;

$increase = $increase+($base+$inc)+(($inc*1)*($i-10));
$formula = ($start-$base-$inc)+($increase)-($inc*($i-10))+($base+($inc*1));
} elseif($i <= 50) {
$start = 10600;
$base = 1100;
$inc = 400;

$increase = $increase+($base+$inc)+(($inc*1)*($i-10));
$formula = ($start-$base-$inc)+($increase)-($inc*($i-10))+($base+($inc*2));
} else {
$start = 27600;
$base = 990;
$inc = 440;

$increase = $increase+($base+$inc)+(($inc*1)*($i-10));
$formula = ($start-$base-$inc)+($increase)-($inc*($i-10))+14380;
}

$continuous .= "(".$i.", ".$formula."),".PHP_EOL;
}

echo substr($continuous, 0, -2).";";

0 comments on commit b2ac7fc

Please sign in to comment.