mirror of
https://github.com/RaidMax/IW4M-Admin.git
synced 2025-06-11 07:40:54 -05:00
Database cleanup and hopefully fixes for multithreaded tasks - SQLite library updated.
This commit is contained in:
@ -90,6 +90,19 @@
|
||||
<PropertyGroup>
|
||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release-Stable|AnyCPU'">
|
||||
<OutputPath>bin\Release-Stable\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<Optimize>true</Optimize>
|
||||
<WarningLevel>3</WarningLevel>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<GenerateSerializationAssemblies>On</GenerateSerializationAssemblies>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisIgnoreGeneratedCode>false</CodeAnalysisIgnoreGeneratedCode>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Kayak, Version=0.7.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
@ -322,7 +335,8 @@ copy /Y "$(ProjectDir)lib\SQLite.Interop.dll" "$(SolutionDir)BUILD\lib"
|
||||
|
||||
|
||||
|
||||
if $(ConfigurationName) == Release powershell.exe -file "$(SolutionDir)DEPLOY\publish_nightly.ps1" 1.3</PostBuildEvent>
|
||||
if $(ConfigurationName) == Release powershell.exe -file "$(SolutionDir)DEPLOY\publish_nightly.ps1" 1.3
|
||||
if $(ConfigurationName) == Release-Stable powershell.exe -file "$(SolutionDir)DEPLOY\publish_stable.ps1" 1.3</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
|
@ -15,12 +15,12 @@ namespace IW4MAdmin
|
||||
|
||||
public void AddPenalty(Penalty P)
|
||||
{
|
||||
Manager.GetInstance().GetClientDatabase().addBan(P);
|
||||
Manager.GetInstance().GetClientDatabase().AddBan(P);
|
||||
}
|
||||
|
||||
public void RemovePenalty(Penalty P)
|
||||
{
|
||||
Manager.GetInstance().GetClientDatabase().removeBan(P.npID);
|
||||
Manager.GetInstance().GetClientDatabase().RemoveBan(P.npID);
|
||||
}
|
||||
|
||||
public List<Penalty> FindPenalties(Player P)
|
||||
|
@ -21,7 +21,7 @@ namespace IW4MAdmin
|
||||
{
|
||||
foreach(String IP in currentAlias.IPS)
|
||||
{
|
||||
List<Aliases> Matching = Manager.GetAliasesDatabase().getPlayer(IP);
|
||||
List<Aliases> Matching = Manager.GetAliasesDatabase().GetPlayerAliases(IP);
|
||||
foreach(Aliases I in Matching)
|
||||
{
|
||||
if (!returnAliases.Contains(I) && returnAliases.Find(x => x.Number == I.Number) == null)
|
||||
@ -40,7 +40,7 @@ namespace IW4MAdmin
|
||||
if (Origin == null)
|
||||
return allAliases;
|
||||
|
||||
Aliases currentIdentityAliases = Manager.GetAliasesDatabase().getPlayer(Origin.databaseID);
|
||||
Aliases currentIdentityAliases = Manager.GetAliasesDatabase().GetPlayerAliases(Origin.databaseID);
|
||||
|
||||
if (currentIdentityAliases == null)
|
||||
return allAliases;
|
||||
@ -65,18 +65,18 @@ namespace IW4MAdmin
|
||||
|
||||
try
|
||||
{
|
||||
Player NewPlayer = Manager.GetClientDatabase().getPlayer(P.npID, P.clientID);
|
||||
Player NewPlayer = Manager.GetClientDatabase().GetPlayer(P.npID, P.clientID);
|
||||
|
||||
if (NewPlayer == null) // first time connecting
|
||||
{
|
||||
Logger.WriteDebug($"Client slot #{P.clientID} first time connecting");
|
||||
Manager.GetClientDatabase().addPlayer(P);
|
||||
NewPlayer = Manager.GetClientDatabase().getPlayer(P.npID, P.clientID);
|
||||
Manager.GetAliasesDatabase().addPlayer(new Aliases(NewPlayer.databaseID, NewPlayer.Name, NewPlayer.IP));
|
||||
Manager.GetClientDatabase().AddPlayer(P);
|
||||
NewPlayer = Manager.GetClientDatabase().GetPlayer(P.npID, P.clientID);
|
||||
Manager.GetAliasesDatabase().AddPlayerAliases(new Aliases(NewPlayer.databaseID, NewPlayer.Name, NewPlayer.IP));
|
||||
}
|
||||
|
||||
|
||||
List<Player> Admins = Manager.GetClientDatabase().getAdmins();
|
||||
List<Player> Admins = Manager.GetClientDatabase().GetAdmins();
|
||||
if (Admins.Find(x => x.Name == P.Name) != null)
|
||||
{
|
||||
if ((Admins.Find(x => x.Name == P.Name).npID != P.npID) && NewPlayer.Level < Player.Permission.Moderator)
|
||||
@ -85,12 +85,12 @@ namespace IW4MAdmin
|
||||
|
||||
// below this needs to be optimized ~ 425ms runtime
|
||||
NewPlayer.updateName(P.Name.Trim());
|
||||
NewPlayer.Alias = Manager.GetAliasesDatabase().getPlayer(NewPlayer.databaseID);
|
||||
NewPlayer.Alias = Manager.GetAliasesDatabase().GetPlayerAliases(NewPlayer.databaseID);
|
||||
|
||||
if (NewPlayer.Alias == null)
|
||||
{
|
||||
Manager.GetAliasesDatabase().addPlayer(new Aliases(NewPlayer.databaseID, NewPlayer.Name, NewPlayer.IP));
|
||||
NewPlayer.Alias = Manager.GetAliasesDatabase().getPlayer(NewPlayer.databaseID);
|
||||
Manager.GetAliasesDatabase().AddPlayerAliases(new Aliases(NewPlayer.databaseID, NewPlayer.Name, NewPlayer.IP));
|
||||
NewPlayer.Alias = Manager.GetAliasesDatabase().GetPlayerAliases(NewPlayer.databaseID);
|
||||
}
|
||||
|
||||
if (P.lastEvent == null || P.lastEvent.Owner == null)
|
||||
@ -113,8 +113,8 @@ namespace IW4MAdmin
|
||||
|
||||
NewPlayer.updateIP(P.IP);
|
||||
|
||||
Manager.GetAliasesDatabase().updatePlayer(NewPlayer.Alias);
|
||||
Manager.GetClientDatabase().updatePlayer(NewPlayer);
|
||||
Manager.GetAliasesDatabase().UpdatePlayerAliases(NewPlayer.Alias);
|
||||
Manager.GetClientDatabase().UpdatePlayer(NewPlayer);
|
||||
|
||||
await ExecuteEvent(new Event(Event.GType.Connect, "", NewPlayer, null, this));
|
||||
|
||||
@ -152,9 +152,6 @@ namespace IW4MAdmin
|
||||
|
||||
Players[NewPlayer.clientID] = null;
|
||||
Players[NewPlayer.clientID] = NewPlayer;
|
||||
#if DEBUG == FALSE
|
||||
await NewPlayer.Tell($"Welcome ^5{NewPlayer.Name} ^7this is your ^5{NewPlayer.TimesConnected()} ^7time connecting!");
|
||||
#endif
|
||||
Logger.WriteInfo($"Client {NewPlayer.Name}::{NewPlayer.npID} connecting..."); // they're clean
|
||||
|
||||
// todo: get this out of here
|
||||
@ -184,7 +181,7 @@ namespace IW4MAdmin
|
||||
{
|
||||
Player Leaving = Players[cNum];
|
||||
Leaving.Connections++;
|
||||
Manager.GetClientDatabase().updatePlayer(Leaving);
|
||||
Manager.GetClientDatabase().UpdatePlayer(Leaving);
|
||||
|
||||
Logger.WriteInfo($"Client {Leaving.Name}::{Leaving.npID} disconnecting...");
|
||||
await ExecuteEvent(new Event(Event.GType.Disconnect, "", Leaving, null, this));
|
||||
@ -277,7 +274,7 @@ namespace IW4MAdmin
|
||||
int.TryParse(Args[0].Substring(1, Args[0].Length-1), out dbID);
|
||||
|
||||
IW4MServer castServer = (IW4MServer)(E.Owner);
|
||||
Player found = Manager.GetClientDatabase().getPlayer(dbID);
|
||||
Player found = Manager.GetClientDatabase().GetPlayer(dbID);
|
||||
if (found != null)
|
||||
{
|
||||
E.Target = found;
|
||||
@ -715,7 +712,7 @@ namespace IW4MAdmin
|
||||
await Task.Run(() =>
|
||||
{
|
||||
Manager.GetClientPenalties().AddPenalty(newBan);
|
||||
Manager.GetClientDatabase().updatePlayer(Target);
|
||||
Manager.GetClientDatabase().UpdatePlayer(Target);
|
||||
});
|
||||
|
||||
lock (Reports) // threading seems to do something weird here
|
||||
@ -749,9 +746,9 @@ namespace IW4MAdmin
|
||||
|
||||
Manager.GetClientPenalties().RemovePenalty(PenaltyToRemove);
|
||||
|
||||
Player P = Manager.GetClientDatabase().getPlayer(Target.npID, -1);
|
||||
Player P = Manager.GetClientDatabase().GetPlayer(Target.npID, -1);
|
||||
P.setLevel(Player.Permission.User);
|
||||
Manager.GetClientDatabase().updatePlayer(P);
|
||||
Manager.GetClientDatabase().UpdatePlayer(P);
|
||||
});
|
||||
|
||||
}
|
||||
@ -786,7 +783,7 @@ namespace IW4MAdmin
|
||||
override public void initMacros()
|
||||
{
|
||||
Macros = new Dictionary<String, Object>();
|
||||
Macros.Add("TOTALPLAYERS", Manager.GetClientDatabase().totalPlayers());
|
||||
Macros.Add("TOTALPLAYERS", Manager.GetClientDatabase().TotalPlayers());
|
||||
Macros.Add("TOTALKILLS", totalKills);
|
||||
Macros.Add("VERSION", IW4MAdmin.Program.Version);
|
||||
}
|
||||
|
@ -287,7 +287,7 @@ namespace IW4MAdmin
|
||||
|
||||
if (S != null)
|
||||
{
|
||||
Player admin = Manager.GetInstance().GetClientDatabase().getPlayer(querySet["IP"]);
|
||||
Player admin = Manager.GetInstance().GetClientDatabase().GetPlayer(querySet["IP"]);
|
||||
|
||||
if (admin == null)
|
||||
admin = new Player("RestUser", "-1", -1, (int)Player.Permission.User);
|
||||
@ -366,8 +366,8 @@ namespace IW4MAdmin
|
||||
|
||||
foreach (var p in selectedPenalties)
|
||||
{
|
||||
Player admin = Manager.GetInstance().GetClientDatabase().getPlayer(p.bannedByID, 0);
|
||||
Player penalized = Manager.GetInstance().GetClientDatabase().getPlayer(p.npID, 0);
|
||||
Player admin = Manager.GetInstance().GetClientDatabase().GetPlayer(p.bannedByID, 0);
|
||||
Player penalized = Manager.GetInstance().GetClientDatabase().GetPlayer(p.npID, 0);
|
||||
if (admin == null && penalized == null)
|
||||
continue;
|
||||
if (admin == null)
|
||||
@ -591,26 +591,26 @@ namespace IW4MAdmin
|
||||
resp.contentType = getContentType();
|
||||
resp.additionalHeaders = new Dictionary<string, string>();
|
||||
|
||||
bool authed = Manager.GetInstance().GetClientDatabase().getAdmins().FindAll(x => x.IP == querySet["IP"]).Count > 0;
|
||||
bool authed = Manager.GetInstance().GetClientDatabase().GetAdmins().FindAll(x => x.IP == querySet["IP"]).Count > 0;
|
||||
|
||||
if (querySet["id"] != null)
|
||||
{
|
||||
matchedPlayers.Add(Manager.GetInstance().GetClientDatabase().getPlayer(Convert.ToInt32(querySet["id"])));
|
||||
matchedPlayers.Add(Manager.GetInstance().GetClientDatabase().GetPlayer(Convert.ToInt32(querySet["id"])));
|
||||
}
|
||||
|
||||
else if (querySet["npID"] != null)
|
||||
{
|
||||
matchedPlayers.Add(Manager.GetInstance().GetClientDatabase().getPlayers(new List<string> { querySet["npID"] }).First());
|
||||
matchedPlayers.Add(Manager.GetInstance().GetClientDatabase().GetPlayers(new List<string> { querySet["npID"] }).First());
|
||||
}
|
||||
|
||||
else if (querySet["name"] != null)
|
||||
{
|
||||
matchedPlayers = Manager.GetInstance().GetClientDatabase().findPlayers(querySet["name"]);
|
||||
matchedPlayers = Manager.GetInstance().GetClientDatabase().FindPlayers(querySet["name"]);
|
||||
}
|
||||
|
||||
else if (querySet["recent"] != null)
|
||||
{
|
||||
matchedPlayers = Manager.GetInstance().GetClientDatabase().getRecentPlayers();
|
||||
matchedPlayers = Manager.GetInstance().GetClientDatabase().GetRecentPlayers();
|
||||
}
|
||||
|
||||
if (matchedPlayers != null && matchedPlayers.Count > 0)
|
||||
|
Binary file not shown.
BIN
Admin/lib/System.Data.SQLite.dll
Normal file
BIN
Admin/lib/System.Data.SQLite.dll
Normal file
Binary file not shown.
Reference in New Issue
Block a user