Webfront renabled, ready for live testing!
This commit is contained in:
parent
6b381a214d
commit
c148ca8f4a
@ -37,14 +37,22 @@ namespace IW4MAdmin
|
|||||||
monitorThread.Start();
|
monitorThread.Start();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
IW4MAdmin.Manager serverManager = new IW4MAdmin.Manager();
|
serverManager = new IW4MAdmin.Manager();
|
||||||
serverManager.Init();
|
|
||||||
|
Thread serverMGRThread = new Thread(serverManager.Init);
|
||||||
|
serverMGRThread.Start();
|
||||||
|
|
||||||
|
while(!serverManager.isReady())
|
||||||
|
{
|
||||||
|
Utilities.Wait(1);
|
||||||
|
}
|
||||||
|
|
||||||
if (serverManager.getServers() != null)
|
if (serverManager.getServers() != null)
|
||||||
Console.WriteLine("IW4M Now Initialized! Visit http://127.0.0.1:1624 for server overview.");
|
Console.WriteLine("IW4M Now Initialized! Visit http://127.0.0.1:1624 for server overview.");
|
||||||
|
|
||||||
//IW4MAdmin_Web.WebFront frontEnd = new IW4MAdmin_Web.WebFront(serverManager.getServers());
|
//this is blocking so if it goes down :(
|
||||||
//frontEnd.Init();
|
IW4MAdmin_Web.WebFront frontEnd = new IW4MAdmin_Web.WebFront();
|
||||||
|
frontEnd.Init();
|
||||||
}
|
}
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
static void setupConfig()
|
static void setupConfig()
|
||||||
@ -76,9 +84,9 @@ namespace IW4MAdmin
|
|||||||
return Ver.Read();
|
return Ver.Read();
|
||||||
}
|
}
|
||||||
|
|
||||||
static public List<Server> getServers()
|
static public Server[] getServers()
|
||||||
{
|
{
|
||||||
return serverManager.getServers();
|
return serverManager.getServers().ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
|
@ -15,6 +15,7 @@ namespace IW4MAdmin
|
|||||||
private SortedDictionary<int, Thread> ThreadList;
|
private SortedDictionary<int, Thread> ThreadList;
|
||||||
private List<int> activePIDs;
|
private List<int> activePIDs;
|
||||||
private Log mainLog;
|
private Log mainLog;
|
||||||
|
private bool initialized = false;
|
||||||
|
|
||||||
public Manager()
|
public Manager()
|
||||||
{
|
{
|
||||||
@ -47,6 +48,8 @@ namespace IW4MAdmin
|
|||||||
//mainLog.Write("Now monitoring the server running on port " + IW4MServer.getPort(), Log.Level.All);
|
//mainLog.Write("Now monitoring the server running on port " + IW4MServer.getPort(), Log.Level.All);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
initialized = true;
|
||||||
|
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
List<Server> defunctServers = new List<Server>();
|
List<Server> defunctServers = new List<Server>();
|
||||||
@ -178,20 +181,24 @@ namespace IW4MAdmin
|
|||||||
IntPtr Handle = OpenProcess(0x10, false, pID);
|
IntPtr Handle = OpenProcess(0x10, false, pID);
|
||||||
if (Handle != null)
|
if (Handle != null)
|
||||||
{
|
{
|
||||||
int timeWaiting = 0;
|
int timeWaiting = 0;
|
||||||
|
|
||||||
bool sv_running = false;
|
bool sv_running = false;
|
||||||
int sv_runningPtr = Utilities.getIntFromPointer(0x1AD7934, (int)Handle) + 0x10; // where the dvar_t struct is stored + the offset for current value
|
|
||||||
|
|
||||||
while(!sv_running) // server is still booting up
|
while(!sv_running) // server is still booting up
|
||||||
{
|
{
|
||||||
|
int sv_runningPtr = Utilities.getIntFromPointer(0x1AD7934, (int)Handle) + 0x10; // where the dvar_t struct is stored + the offset for current value
|
||||||
sv_running = Utilities.getBoolFromPointer(sv_runningPtr, (int)Handle);
|
sv_running = Utilities.getBoolFromPointer(sv_runningPtr, (int)Handle);
|
||||||
Utilities.Wait(1);
|
Utilities.Wait(1);
|
||||||
timeWaiting++;
|
timeWaiting++;
|
||||||
|
|
||||||
if (timeWaiting > 60) // don't want to get stuck waiting forever if the server is frozen
|
if (timeWaiting > 30) // don't want to get stuck waiting forever if the server is frozen
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Utilities.Wait(5);
|
||||||
|
|
||||||
dvar net_ip = Utilities.getDvar(0x64A1DF8, (int)Handle);
|
dvar net_ip = Utilities.getDvar(0x64A1DF8, (int)Handle);
|
||||||
dvar net_port = Utilities.getDvar(0x64A3004, (int)Handle);
|
dvar net_port = Utilities.getDvar(0x64A3004, (int)Handle);
|
||||||
|
|
||||||
@ -202,5 +209,10 @@ namespace IW4MAdmin
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool isReady()
|
||||||
|
{
|
||||||
|
return initialized;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -115,7 +115,8 @@ namespace IW4MAdmin
|
|||||||
//Current.Response = responseSendRCON(Current.Request);
|
//Current.Response = responseSendRCON(Current.Request);
|
||||||
Utilities.executeCommand(Instance.pID(), Current.Request);
|
Utilities.executeCommand(Instance.pID(), Current.Request);
|
||||||
toSend.Dequeue();
|
toSend.Dequeue();
|
||||||
Utilities.Wait(0.567);
|
//Utilities.Wait(0.567);
|
||||||
|
Utilities.Wait(.3);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
Utilities.Wait(0.01);
|
Utilities.Wait(0.01);
|
||||||
|
@ -607,7 +607,6 @@ namespace IW4MAdmin
|
|||||||
DateTime playerCountStart = DateTime.Now;
|
DateTime playerCountStart = DateTime.Now;
|
||||||
DateTime lastCount = DateTime.Now;
|
DateTime lastCount = DateTime.Now;
|
||||||
|
|
||||||
Utilities.Wait(1);
|
|
||||||
#if DEBUG == false
|
#if DEBUG == false
|
||||||
Broadcast("IW4M Admin is now ^2ONLINE");
|
Broadcast("IW4M Admin is now ^2ONLINE");
|
||||||
#endif
|
#endif
|
||||||
@ -991,8 +990,6 @@ namespace IW4MAdmin
|
|||||||
if (E.Type == Event.GType.MapChange)
|
if (E.Type == Event.GType.MapChange)
|
||||||
{
|
{
|
||||||
Log.Write("New map loaded - " + clientnum + " active players", Log.Level.Debug);
|
Log.Write("New map loaded - " + clientnum + " active players", Log.Level.Debug);
|
||||||
executeCommand("sv_mapRotation " + backupRotation);
|
|
||||||
executeCommand("scr_" + Gametype + "_timelimit " + backupTimeLimit);
|
|
||||||
|
|
||||||
Dictionary<String, String> infoResponseDict = new Dictionary<String, String>();
|
Dictionary<String, String> infoResponseDict = new Dictionary<String, String>();
|
||||||
String[] infoResponse = E.Data.Split('\\');
|
String[] infoResponse = E.Data.Split('\\');
|
||||||
|
@ -378,8 +378,11 @@ namespace IW4MAdmin
|
|||||||
[DllImport("kernel32.dll")]
|
[DllImport("kernel32.dll")]
|
||||||
public static extern IntPtr CreateRemoteThread(IntPtr hProcess, IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, out uint lpThreadId);
|
public static extern IntPtr CreateRemoteThread(IntPtr hProcess, IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, out uint lpThreadId);
|
||||||
|
|
||||||
|
[DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)]
|
||||||
|
static extern bool VirtualFreeEx(IntPtr hProcess, IntPtr lpAddress, uint dwSize, AllocationType dwFreeType);
|
||||||
|
|
||||||
[DllImport("kernel32.dll", SetLastError = true)]
|
[DllImport("kernel32.dll", SetLastError = true)]
|
||||||
static extern bool VirtualFree(IntPtr lpAddress, UIntPtr dwSize, AllocationType type);
|
static extern UInt32 WaitForSingleObject(IntPtr hHandle, UInt32 dwMilliseconds);
|
||||||
|
|
||||||
public static dvar getDvar(int Location, int Handle)
|
public static dvar getDvar(int Location, int Handle)
|
||||||
{
|
{
|
||||||
@ -405,6 +408,8 @@ namespace IW4MAdmin
|
|||||||
|
|
||||||
if ((int)dvar_raw.current > short.MaxValue)
|
if ((int)dvar_raw.current > short.MaxValue)
|
||||||
dvar_actual.current = getStringFromPointer((int)dvar_raw.current, Handle);
|
dvar_actual.current = getStringFromPointer((int)dvar_raw.current, Handle);
|
||||||
|
else if ((int)dvar_raw.current <= 1025)
|
||||||
|
dvar_actual.current = ((int)dvar_raw.current % 1024).ToString();
|
||||||
else
|
else
|
||||||
dvar_actual.current = dvar_raw.current.ToString();
|
dvar_actual.current = dvar_raw.current.ToString();
|
||||||
|
|
||||||
@ -512,14 +517,18 @@ namespace IW4MAdmin
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// create our thread that executes command :)
|
// create our thread that executes command :)
|
||||||
Console.WriteLine(codeAllocation.ToString("X8"));
|
|
||||||
IntPtr ThreadHandle = CreateRemoteThread(ProcessHandle, IntPtr.Zero, 0, codeAllocation, IntPtr.Zero, 0, out threadID);
|
IntPtr ThreadHandle = CreateRemoteThread(ProcessHandle, IntPtr.Zero, 0, codeAllocation, IntPtr.Zero, 0, out threadID);
|
||||||
|
if (ThreadHandle == null || ThreadHandle == IntPtr.Zero)
|
||||||
|
return;
|
||||||
|
|
||||||
|
WaitForSingleObject(ThreadHandle, 5000);
|
||||||
|
|
||||||
// cleanup
|
// cleanup
|
||||||
if (!VirtualFree(codeAllocation, (UIntPtr)executeCMD.Length, AllocationType.Decommit))
|
if (!VirtualFreeEx(ProcessHandle, codeAllocation, 0, AllocationType.Release))
|
||||||
Thread.Sleep(1);
|
Console.WriteLine(Marshal.GetLastWin32Error());
|
||||||
if (!VirtualFree(memoryForCMDName, (UIntPtr)Command.Length + 1, AllocationType.Decommit))
|
if (!VirtualFreeEx(ProcessHandle, memoryForCMDName, 0, AllocationType.Release))
|
||||||
Thread.Sleep(1);
|
Console.WriteLine(Marshal.GetLastWin32Error());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IntPtr allocateAndWrite(Byte[] Data, IntPtr ProcessHandle)
|
public static IntPtr allocateAndWrite(Byte[] Data, IntPtr ProcessHandle)
|
||||||
@ -552,8 +561,8 @@ namespace IW4MAdmin
|
|||||||
|
|
||||||
public static dvar getDvarValue(int pID, String DVAR)
|
public static dvar getDvarValue(int pID, String DVAR)
|
||||||
{
|
{
|
||||||
|
dvar requestedDvar = new dvar();
|
||||||
uint threadID = 0;
|
uint threadID = 0;
|
||||||
|
|
||||||
IntPtr ProcessHandle = OpenProcess(ProcessAccessFlags.All, false, pID);
|
IntPtr ProcessHandle = OpenProcess(ProcessAccessFlags.All, false, pID);
|
||||||
|
|
||||||
IntPtr memoryForDvarName = allocateAndWrite(Encoding.ASCII.GetBytes(DVAR + "\0"), ProcessHandle);
|
IntPtr memoryForDvarName = allocateAndWrite(Encoding.ASCII.GetBytes(DVAR + "\0"), ProcessHandle);
|
||||||
@ -581,14 +590,17 @@ namespace IW4MAdmin
|
|||||||
Console.WriteLine("UNABLE TO ALLOCATE MEMORY FOR CODE");
|
Console.WriteLine("UNABLE TO ALLOCATE MEMORY FOR CODE");
|
||||||
|
|
||||||
IntPtr ThreadHandle = CreateRemoteThread(ProcessHandle, IntPtr.Zero, 0, codeAllocation, IntPtr.Zero, 0, out threadID);
|
IntPtr ThreadHandle = CreateRemoteThread(ProcessHandle, IntPtr.Zero, 0, codeAllocation, IntPtr.Zero, 0, out threadID);
|
||||||
|
if (ThreadHandle == null || ThreadHandle == IntPtr.Zero)
|
||||||
|
return requestedDvar;
|
||||||
|
|
||||||
if (!VirtualFree(codeAllocation, UIntPtr.Zero, AllocationType.Release))
|
WaitForSingleObject(ThreadHandle, 5000);
|
||||||
Thread.Sleep(1);
|
|
||||||
if (!VirtualFree(memoryForDvarName, UIntPtr.Zero, AllocationType.Release))
|
if (!VirtualFreeEx(ProcessHandle, codeAllocation, 0, AllocationType.Release))
|
||||||
Thread.Sleep(1);
|
Console.WriteLine(Marshal.GetLastWin32Error());
|
||||||
|
if (!VirtualFreeEx(ProcessHandle, memoryForDvarName, 0, AllocationType.Release))
|
||||||
|
Console.WriteLine(Marshal.GetLastWin32Error());
|
||||||
|
|
||||||
int dvarLoc = getIntFromPointer(0x2098D9C, (int)ProcessHandle);
|
int dvarLoc = getIntFromPointer(0x2098D9C, (int)ProcessHandle);
|
||||||
//int ptrToOurDvar = getIntFromPointer(dvarLoc +, (int)ProcessHandle);
|
|
||||||
return getDvar(dvarLoc + 0x10, (int)ProcessHandle);
|
return getDvar(dvarLoc + 0x10, (int)ProcessHandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using System;
|
#define ENABLED_CRAP_CODE_THAT_NEEDS_TO_BE_REWRITTEN
|
||||||
|
using System;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -8,7 +9,8 @@ using Kayak;
|
|||||||
using Kayak.Http;
|
using Kayak.Http;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
|
||||||
#if DEBUG
|
|
||||||
|
#if ENABLED_CRAP_CODE_THAT_NEEDS_TO_BE_REWRITTEN
|
||||||
namespace IW4MAdmin_Web
|
namespace IW4MAdmin_Web
|
||||||
{
|
{
|
||||||
class Client
|
class Client
|
||||||
@ -32,7 +34,7 @@ namespace IW4MAdmin_Web
|
|||||||
|
|
||||||
class WebFront
|
class WebFront
|
||||||
{
|
{
|
||||||
private List<IW4MAdmin.Server> Servers;
|
private IW4MAdmin.Server[] Servers;
|
||||||
|
|
||||||
public enum Page
|
public enum Page
|
||||||
{
|
{
|
||||||
@ -42,9 +44,9 @@ namespace IW4MAdmin_Web
|
|||||||
player
|
player
|
||||||
}
|
}
|
||||||
|
|
||||||
public WebFront(List<IW4MAdmin.Server> curServers)
|
public WebFront()
|
||||||
{
|
{
|
||||||
Servers = curServers;
|
Servers = IW4MAdmin.Program.getServers();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Init()
|
public void Init()
|
||||||
@ -86,21 +88,22 @@ namespace IW4MAdmin_Web
|
|||||||
static public String parseMacros(String input, WebFront.Page Page, int server, int Pagination, bool logged, String Data)
|
static public String parseMacros(String input, WebFront.Page Page, int server, int Pagination, bool logged, String Data)
|
||||||
{
|
{
|
||||||
StringBuilder buffer = new StringBuilder();
|
StringBuilder buffer = new StringBuilder();
|
||||||
|
IW4MAdmin.Server[] Servers= IW4MAdmin.Program.getServers();
|
||||||
switch (input)
|
switch (input)
|
||||||
{
|
{
|
||||||
case "SERVERS":
|
case "SERVERS":
|
||||||
int cycleFix = 0;
|
int cycleFix = 0;
|
||||||
foreach (IW4MAdmin.Server S in IW4MAdmin.Program.getServers())
|
for (int i = 0; i < Servers.Count(); i++)
|
||||||
{
|
{
|
||||||
StringBuilder players = new StringBuilder();
|
StringBuilder players = new StringBuilder();
|
||||||
if (S.getClientNum() < 1)
|
if (Servers[i].getClientNum() < 1)
|
||||||
players.Append("<h2>No Players</h2>");
|
players.Append("<h2>No Players</h2>");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int count = 0;
|
int count = 0;
|
||||||
double currentPlayers = S.statusPlayers.Count;
|
double currentPlayers = Servers[i].statusPlayers.Count;
|
||||||
|
|
||||||
foreach (IW4MAdmin.Player P in S.getPlayers())
|
foreach (IW4MAdmin.Player P in Servers[i].getPlayers())
|
||||||
{
|
{
|
||||||
if (P == null)
|
if (P == null)
|
||||||
continue;
|
continue;
|
||||||
@ -119,9 +122,9 @@ namespace IW4MAdmin_Web
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
players.AppendFormat("<td><a href='/{0}/{1}/userip/?player'>{2}</a></td>", S.pID(), P.getDBID(), IW4MAdmin.Utilities.nameHTMLFormatted(P));
|
players.AppendFormat("<td><a href='/{0}/{1}/userip/?player'>{2}</a></td>", Servers[i].pID(), P.getDBID(), IW4MAdmin.Utilities.nameHTMLFormatted(P));
|
||||||
|
|
||||||
if (count % 2 != 0)
|
if (count % 2 != 0)
|
||||||
{
|
{
|
||||||
players.Append("</tr>");
|
players.Append("</tr>");
|
||||||
@ -144,11 +147,11 @@ namespace IW4MAdmin_Web
|
|||||||
</table>
|
</table>
|
||||||
<table cellpadding='0' cellspacing='0' class='players'>
|
<table cellpadding='0' cellspacing='0' class='players'>
|
||||||
{5}
|
{5}
|
||||||
</table>",
|
</table>",
|
||||||
S.getName(), S.getMap(), S.getClientNum() + "/" + S.getMaxClients(), IW4MAdmin.Utilities.gametypeLocalized(S.getGametype()), S.pID(), players.ToString());
|
Servers[i].getName(), Servers[i].getMap(), Servers[i].getClientNum() + "/" + Servers[i].getMaxClients(), IW4MAdmin.Utilities.gametypeLocalized(Servers[i].getGametype()), i, players.ToString());
|
||||||
buffer.AppendFormat("<div class='chatHistory' id='chatHistory_{0}'></div><script type='text/javascript'>$( document ).ready(function() {{ setInterval({1}loadChatMessages({0}, '#chatHistory_{0}'){1}, 2500); }});</script><div class='null' style='clear:both;'></div>", S.pID(), '\"');
|
buffer.AppendFormat("<div class='chatHistory' id='chatHistory_{0}'></div><script type='text/javascript'>$( document ).ready(function() {{ setInterval({1}loadChatMessages({0}, '#chatHistory_{0}'){1}, 2500); }});</script><div class='null' style='clear:both;'></div>", i, '\"');
|
||||||
if (S.getClientNum() > 0)
|
if (Servers[i].getClientNum() > 0)
|
||||||
buffer.AppendFormat("<form class='chatOutFormat' action={1}javascript:chatRequest({0}, 'chatEntry_{0}'){1}><input class='chatFormat_text' type='text' placeholder='Enter a message...' id='chatEntry_{0}'/><input class='chatFormat_submit' type='submit'/></form>", server.pID(), '\"');
|
buffer.AppendFormat("<form class='chatOutFormat' action={1}javascript:chatRequest({0}, 'chatEntry_{0}'){1}><input class='chatFormat_text' type='text' placeholder='Enter a message...' id='chatEntry_{0}'/><input class='chatFormat_submit' type='submit'/></form>", i, '\"');
|
||||||
buffer.Append("<hr/>");
|
buffer.Append("<hr/>");
|
||||||
}
|
}
|
||||||
return buffer.ToString();
|
return buffer.ToString();
|
||||||
@ -214,13 +217,13 @@ namespace IW4MAdmin_Web
|
|||||||
}
|
}
|
||||||
buffer.Append("</table><hr/>");
|
buffer.Append("</table><hr/>");
|
||||||
|
|
||||||
buffer.Append(parsePagination(server, IW4MAdmin.Program.getServers()[0].Bans.Count, 30, Pagination, "bans"));
|
buffer.Append(parsePagination(server, Servers[0].Bans.Count, 30, Pagination, "bans"));
|
||||||
return buffer.ToString();
|
return buffer.ToString();
|
||||||
case "PAGE":
|
case "PAGE":
|
||||||
buffer.Append("<div id=pages>");
|
buffer.Append("<div id=pages>");
|
||||||
return buffer.ToString();
|
return buffer.ToString();
|
||||||
case "STATS":
|
case "STATS":
|
||||||
int totalStats = IW4MAdmin.Program.Servers[server].statDB.totalStats();
|
int totalStats = Servers[server].statDB.totalStats();
|
||||||
buffer.Append("<h1 style='margin-top: 0;'>Starting at #{{TOP}}</h1><hr />");
|
buffer.Append("<h1 style='margin-top: 0;'>Starting at #{{TOP}}</h1><hr />");
|
||||||
buffer.Append("<table style='width:100%' cellspacing=0 class=stats>");
|
buffer.Append("<table style='width:100%' cellspacing=0 class=stats>");
|
||||||
|
|
||||||
@ -231,7 +234,7 @@ namespace IW4MAdmin_Web
|
|||||||
range = (totalStats - start);
|
range = (totalStats - start);
|
||||||
else
|
else
|
||||||
range = 30;
|
range = 30;
|
||||||
List<IW4MAdmin.Stats> Stats = IW4MAdmin.Program.Servers[server].statDB.getMultipleStats(start, range).OrderByDescending(x => x.Skill).ToList();
|
List<IW4MAdmin.Stats> Stats = Servers[server].statDB.getMultipleStats(start, range).OrderByDescending(x => x.Skill).ToList();
|
||||||
buffer.Append("<tr><th style=text-align:left;>Name</th><th style=text-align:left;>Kills</th><th style=text-align:left;>Deaths</th><th style=text-align:left;>KDR</th><th style='width: 175px; text-align:right;'>Rating</th></tr>");
|
buffer.Append("<tr><th style=text-align:left;>Name</th><th style=text-align:left;>Kills</th><th style=text-align:left;>Deaths</th><th style=text-align:left;>KDR</th><th style='width: 175px; text-align:right;'>Rating</th></tr>");
|
||||||
cycleFix = 0;
|
cycleFix = 0;
|
||||||
for (int i = 0; i < totalStats; i++)
|
for (int i = 0; i < totalStats; i++)
|
||||||
@ -239,7 +242,7 @@ namespace IW4MAdmin_Web
|
|||||||
if (i >= Stats.Count -1 || Stats[i] == null )
|
if (i >= Stats.Count -1 || Stats[i] == null )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
IW4MAdmin.Player P = IW4MAdmin.Program.Servers[server].clientDB.getPlayer(Stats[i].statIndex);
|
IW4MAdmin.Player P = Servers[server].clientDB.getPlayer(Stats[i].statIndex);
|
||||||
|
|
||||||
if (P == null)
|
if (P == null)
|
||||||
continue;
|
continue;
|
||||||
@ -268,18 +271,18 @@ namespace IW4MAdmin_Web
|
|||||||
List<IW4MAdmin.Player> matchingPlayers = new List<IW4MAdmin.Player>();
|
List<IW4MAdmin.Player> matchingPlayers = new List<IW4MAdmin.Player>();
|
||||||
|
|
||||||
if (Data == null)
|
if (Data == null)
|
||||||
matchingPlayers.Add(IW4MAdmin.Program.Servers[server].clientDB.getPlayer(Pagination));
|
matchingPlayers.Add(Servers[server].clientDB.getPlayer(Pagination));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var alias = IW4MAdmin.Program.Servers[server].aliasDB.findPlayers(Data);
|
var alias = Servers[server].aliasDB.findPlayers(Data);
|
||||||
|
|
||||||
foreach (var a in alias)
|
foreach (var a in alias)
|
||||||
{
|
{
|
||||||
var p = IW4MAdmin.Program.Servers[server].clientDB.getPlayer(a.getNumber());
|
var p = Servers[server].clientDB.getPlayer(a.getNumber());
|
||||||
if (p != null)
|
if (p != null)
|
||||||
{
|
{
|
||||||
List<IW4MAdmin.Player> aliases = new List<IW4MAdmin.Player>();
|
List<IW4MAdmin.Player> aliases = new List<IW4MAdmin.Player>();
|
||||||
IW4MAdmin.Program.Servers[server].getAliases(aliases, p);
|
Servers[server].getAliases(aliases, p);
|
||||||
|
|
||||||
foreach (var pa in aliases)
|
foreach (var pa in aliases)
|
||||||
{
|
{
|
||||||
@ -303,7 +306,7 @@ namespace IW4MAdmin_Web
|
|||||||
buffer.Append("<tr>");
|
buffer.Append("<tr>");
|
||||||
StringBuilder str = new StringBuilder();
|
StringBuilder str = new StringBuilder();
|
||||||
List<IW4MAdmin.Player> aliases = new List<IW4MAdmin.Player>();
|
List<IW4MAdmin.Player> aliases = new List<IW4MAdmin.Player>();
|
||||||
IW4MAdmin.Program.Servers[server].getAliases(aliases, Player);
|
Servers[server].getAliases(aliases, Player);
|
||||||
|
|
||||||
foreach (IW4MAdmin.Player a in aliases)
|
foreach (IW4MAdmin.Player a in aliases)
|
||||||
{
|
{
|
||||||
@ -319,7 +322,7 @@ namespace IW4MAdmin_Web
|
|||||||
str.AppendFormat("<span>{0}</span><br/>", a.getName());
|
str.AppendFormat("<span>{0}</span><br/>", a.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
Player.stats = IW4MAdmin.Program.Servers[server].statDB.getStats(Player.getDBID());
|
Player.stats = Servers[server].statDB.getStats(Player.getDBID());
|
||||||
String Rating = String.Empty;
|
String Rating = String.Empty;
|
||||||
|
|
||||||
if (Player.stats == null)
|
if (Player.stats == null)
|
||||||
@ -373,7 +376,7 @@ namespace IW4MAdmin_Web
|
|||||||
{
|
{
|
||||||
String output = input;
|
String output = input;
|
||||||
|
|
||||||
bool logged = IW4MAdmin.Program.Servers[server].clientDB.getAdmins().Exists(player => player.getIP() == C.requestOrigin["Host"].Split(':')[0]);
|
bool logged = IW4MAdmin.Program.getServers()[server].clientDB.getAdmins().Exists(player => player.getIP() == C.requestOrigin["Host"].Split(':')[0]);
|
||||||
|
|
||||||
switch (C.requestedPage)
|
switch (C.requestedPage)
|
||||||
{
|
{
|
||||||
@ -469,11 +472,11 @@ namespace IW4MAdmin_Web
|
|||||||
test.Append("<script type='text/javascript' src='//www.google.com/jsapi'></script><div id='chart_div'></div>");
|
test.Append("<script type='text/javascript' src='//www.google.com/jsapi'></script><div id='chart_div'></div>");
|
||||||
test.Append("<script> var players = [");
|
test.Append("<script> var players = [");
|
||||||
int count = 1;
|
int count = 1;
|
||||||
List<IW4MAdmin.pHistory> run = IW4MAdmin.Program.Servers[server].playerHistory.ToList();
|
List<IW4MAdmin.pHistory> run = IW4MAdmin.Program.getServers()[server].playerHistory.ToList();
|
||||||
foreach (IW4MAdmin.pHistory i in run) //need to reverse for proper timeline
|
foreach (IW4MAdmin.pHistory i in run) //need to reverse for proper timeline
|
||||||
{
|
{
|
||||||
test.AppendFormat("[new Date({0}, {1}, {2}, {3}, {4}), {5}]", i.When.Year, i.When.Month - 1, i.When.Day, i.When.Hour, i.When.Minute, i.Players);
|
test.AppendFormat("[new Date({0}, {1}, {2}, {3}, {4}), {5}]", i.When.Year, i.When.Month - 1, i.When.Day, i.When.Hour, i.When.Minute, i.Players);
|
||||||
if (count < IW4MAdmin.Program.Servers[server].playerHistory.Count)
|
if (count < IW4MAdmin.Program.getServers()[server].playerHistory.Count)
|
||||||
test.Append(",\n");
|
test.Append(",\n");
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
@ -504,7 +507,7 @@ namespace IW4MAdmin_Web
|
|||||||
IP = req[2];
|
IP = req[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
IW4MAdmin.Player P = IW4MAdmin.Program.Servers[server].clientDB.getPlayer(IP);
|
IW4MAdmin.Player P = IW4MAdmin.Program.getServers()[server].clientDB.getPlayer(IP);
|
||||||
if (P == null)
|
if (P == null)
|
||||||
P = new IW4MAdmin.Player("Guest", "Guest", 0, 0);
|
P = new IW4MAdmin.Player("Guest", "Guest", 0, 0);
|
||||||
// if (P.getLevel() > IW4MAdmin.Player.Permission.Flagged)
|
// if (P.getLevel() > IW4MAdmin.Player.Permission.Flagged)
|
||||||
@ -534,10 +537,10 @@ namespace IW4MAdmin_Web
|
|||||||
Text = null;
|
Text = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IP == null && IW4MAdmin.Program.Servers[server].getClientNum() > 0)
|
if (IP == null && IW4MAdmin.Program.getServers()[server].getClientNum() > 0)
|
||||||
{
|
{
|
||||||
chatMessages.Append("<table id='table_chatHistory'>");
|
chatMessages.Append("<table id='table_chatHistory'>");
|
||||||
foreach (IW4MAdmin.Chat Message in IW4MAdmin.Program.Servers[server].chatHistory)
|
foreach (IW4MAdmin.Chat Message in IW4MAdmin.Program.getServers()[server].chatHistory)
|
||||||
chatMessages.AppendFormat("<tr><td class='chat_name' style='text-align: left;'>{0}</td><td class='chat_message'>{1}</td><td class='chat_time' style='text-align: right;'>{2}</td></tr>", IW4MAdmin.Utilities.nameHTMLFormatted(Message.Origin), Message.Message, Message.timeString());
|
chatMessages.AppendFormat("<tr><td class='chat_name' style='text-align: left;'>{0}</td><td class='chat_message'>{1}</td><td class='chat_time' style='text-align: right;'>{2}</td></tr>", IW4MAdmin.Utilities.nameHTMLFormatted(Message.Origin), Message.Message, Message.timeString());
|
||||||
chatMessages.Append("</table>");
|
chatMessages.Append("</table>");
|
||||||
body = chatMessages.ToString();
|
body = chatMessages.ToString();
|
||||||
@ -545,10 +548,10 @@ namespace IW4MAdmin_Web
|
|||||||
|
|
||||||
else if (Text != null && Text.Length > 4)
|
else if (Text != null && Text.Length > 4)
|
||||||
{
|
{
|
||||||
IW4MAdmin.Player requestPlayer = IW4MAdmin.Program.Servers[server].clientDB.getPlayer(IP);
|
IW4MAdmin.Player requestPlayer = IW4MAdmin.Program.getServers()[server].clientDB.getPlayer(IP);
|
||||||
|
|
||||||
if (requestPlayer != null)
|
if (requestPlayer != null)
|
||||||
IW4MAdmin.Program.Servers[server].webChat(requestPlayer, Text);
|
IW4MAdmin.Program.getServers()[server].webChat(requestPlayer, Text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -557,7 +560,7 @@ namespace IW4MAdmin_Web
|
|||||||
type = "text/plain";
|
type = "text/plain";
|
||||||
StringBuilder banTXT = new StringBuilder();
|
StringBuilder banTXT = new StringBuilder();
|
||||||
banTXT.AppendFormat("===========================================\nIW4M ADMIN PUBLIC BAN LIST\nGENERATED {0}\nIP---GUID---REASON---TIME\n===========================================\n", DateTime.Now.ToString());
|
banTXT.AppendFormat("===========================================\nIW4M ADMIN PUBLIC BAN LIST\nGENERATED {0}\nIP---GUID---REASON---TIME\n===========================================\n", DateTime.Now.ToString());
|
||||||
foreach (IW4MAdmin.Ban B in IW4MAdmin.Program.Servers[0].Bans)
|
foreach (IW4MAdmin.Ban B in IW4MAdmin.Program.getServers()[0].Bans)
|
||||||
{
|
{
|
||||||
if (B.getIP() != null && B.getIP() != String.Empty && B.getReason() != null && B.getReason() != String.Empty)
|
if (B.getIP() != null && B.getIP() != String.Empty && B.getReason() != null && B.getReason() != String.Empty)
|
||||||
banTXT.AppendFormat("{0}---{1}---{2}---{3}\n", B.getIP(), B.getID(), B.getReason().Trim(), Math.Round((B.getTime()-DateTime.MinValue).TotalSeconds, 0));
|
banTXT.AppendFormat("{0}---{1}---{2}---{3}\n", B.getIP(), B.getID(), B.getReason().Trim(), Math.Round((B.getTime()-DateTime.MinValue).TotalSeconds, 0));
|
||||||
@ -574,7 +577,7 @@ namespace IW4MAdmin_Web
|
|||||||
body = Macro.findMacros(header + main + footer, toSend, server);
|
body = Macro.findMacros(header + main + footer, toSend, server);
|
||||||
}
|
}
|
||||||
|
|
||||||
IW4MAdmin.Program.Servers[server].Log.Write("Webfront processed request for " + request.Uri, IW4MAdmin.Log.Level.Debug);
|
IW4MAdmin.Program.getServers()[server].Log.Write("Webfront processed request for " + request.Uri, IW4MAdmin.Log.Level.Debug);
|
||||||
}
|
}
|
||||||
|
|
||||||
var headers = new HttpResponseHead()
|
var headers = new HttpResponseHead()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user