a pile of hax
This commit is contained in:
@@ -22,9 +22,6 @@ namespace OpenRA.Server
|
|||||||
const int DownloadChunkInterval = 20000;
|
const int DownloadChunkInterval = 20000;
|
||||||
const int DownloadChunkSize = 16384;
|
const int DownloadChunkSize = 16384;
|
||||||
|
|
||||||
static readonly string[] packages = { };
|
|
||||||
//static readonly string[] packages = { "testpkg.mix" };
|
|
||||||
|
|
||||||
public static void Main(string[] args)
|
public static void Main(string[] args)
|
||||||
{
|
{
|
||||||
listener.Start();
|
listener.Start();
|
||||||
@@ -333,6 +330,34 @@ namespace OpenRA.Server
|
|||||||
SyncLobbyInfo();
|
SyncLobbyInfo();
|
||||||
return true;
|
return true;
|
||||||
}},
|
}},
|
||||||
|
{ "addmod",
|
||||||
|
s =>
|
||||||
|
{
|
||||||
|
if (GameStarted)
|
||||||
|
{
|
||||||
|
DispatchOrdersToClient(conn, 0,
|
||||||
|
new ServerOrder( conn.PlayerIndex, "Chat",
|
||||||
|
"You can't change mods after the game has started" ).Serialize() );
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.WriteLine("** Added mod: `{0}`", s);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
lobbyInfo.GlobalSettings.Packages =
|
||||||
|
lobbyInfo.GlobalSettings.Packages.Concat( new string[] {
|
||||||
|
MakePackageString(s)}).ToArray();
|
||||||
|
SyncLobbyInfo();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Console.WriteLine("That went horribly wrong.");
|
||||||
|
DispatchOrdersToClient(conn, 0,
|
||||||
|
new ServerOrder( conn.PlayerIndex, "Chat",
|
||||||
|
"Adding the mod failed." ).Serialize() );
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}},
|
||||||
};
|
};
|
||||||
|
|
||||||
var cmdName = cmd.Split(' ').First();
|
var cmdName = cmd.Split(' ').First();
|
||||||
@@ -457,16 +482,14 @@ namespace OpenRA.Server
|
|||||||
Console.WriteLine("Server emptied out; doing a bit of housekeeping to prepare for next game..");
|
Console.WriteLine("Server emptied out; doing a bit of housekeeping to prepare for next game..");
|
||||||
inFlightFrames.Clear();
|
inFlightFrames.Clear();
|
||||||
lobbyInfo = new Session();
|
lobbyInfo = new Session();
|
||||||
|
|
||||||
lobbyInfo.GlobalSettings.Packages =
|
|
||||||
packages.Select(a => "{0}:{1}".F(a, CalculateSHA1(a))).ToArray();
|
|
||||||
|
|
||||||
foreach( var p in lobbyInfo.GlobalSettings.Packages )
|
|
||||||
Console.WriteLine("Package: `{0}`", p);
|
|
||||||
|
|
||||||
GameStarted = false;
|
GameStarted = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static string MakePackageString(string a)
|
||||||
|
{
|
||||||
|
return "{0}:{1}".F(a, CalculateSHA1(a));
|
||||||
|
}
|
||||||
|
|
||||||
static string CalculateSHA1(string filename)
|
static string CalculateSHA1(string filename)
|
||||||
{
|
{
|
||||||
using (var csp = SHA1.Create())
|
using (var csp = SHA1.Create())
|
||||||
|
|||||||
Reference in New Issue
Block a user