1
0
mirror of https://github.com/RaidMax/IW4M-Admin.git synced 2025-06-10 15:20:48 -05:00

hopefulyl fix aliasing issue

bans are applied to an account if the accounts are linked but penallty on a different accounts
This commit is contained in:
RaidMax
2018-12-29 12:43:40 -06:00
parent e31c36a1d7
commit 0e2ad04dad
5 changed files with 226 additions and 148 deletions

View File

@ -64,23 +64,12 @@ namespace IW4MAdmin
client.CurrentServer = this;
Clients[client.ClientNumber] = client;
// this only happens if the preconnect event occurred from RCon polling
if (clientFromLog.IPAddress.HasValue)
{
// they're banned so we don't want to add them as connected
if (!await client.OnJoin(clientFromLog.IPAddress))
{
return;
}
}
client.OnConnect();
await client.OnJoin(clientFromLog.IPAddress);
client.State = EFClient.ClientState.Connected;
#if DEBUG == true
Logger.WriteDebug($"End PreConnect for {client}");
#endif
#endif
var e = new GameEvent()
{
Origin = client,
@ -231,14 +220,11 @@ namespace IW4MAdmin
Offender = E.Target,
Offense = E.Data,
Punisher = E.Origin,
Active = true,
When = DateTime.UtcNow,
Link = E.Target.AliasLink
};
var addedPenalty = await Manager.GetPenaltyService().Create(newPenalty);
E.Target.ReceivedPenalties.Add(addedPenalty);
await Manager.GetClientService().Update(E.Target);
}
@ -264,8 +250,8 @@ namespace IW4MAdmin
else if (E.Type == GameEvent.EventType.Ban)
{
await Ban(E.Data, E.Target, E.Origin, E.Extra as bool? ?? false);
bool isEvade = E.Extra != null ? (bool)E.Extra : false;
await Ban(E.Data, E.Target, E.Origin, isEvade);
}
else if (E.Type == GameEvent.EventType.Unban)
@ -307,7 +293,7 @@ namespace IW4MAdmin
else if (E.Type == GameEvent.EventType.PreDisconnect)
{
if ((DateTime.UtcNow - SessionStart).TotalSeconds < 5)
if ((DateTime.UtcNow - SessionStart).TotalSeconds < 10)
{
Logger.WriteInfo($"Cancelling pre disconnect for {E.Origin} as it occured too close to map end");
E.FailReason = GameEvent.EventFailReason.Invalid;
@ -840,7 +826,7 @@ namespace IW4MAdmin
return;
}
String message = $"^1{loc["SERVER_WARNING"]} ^7[^3{Target.Warnings}^7]: ^3{Target.Name}^7, {Reason}";
string message = $"^1{loc["SERVER_WARNING"]} ^7[^3{Target.Warnings}^7]: ^3{Target.Name}^7, {Reason}";
Target.CurrentServer.Broadcast(message);
}
@ -849,10 +835,8 @@ namespace IW4MAdmin
Type = Penalty.PenaltyType.Warning,
Expires = DateTime.UtcNow,
Offender = Target,
Punisher = Utilities.IW4MAdminClient(this),
Offense = Reason,
Punisher = Origin,
Active = true,
When = DateTime.UtcNow,
Link = Target.AliasLink
};
@ -892,7 +876,6 @@ namespace IW4MAdmin
Offender = Target,
Offense = Reason,
Punisher = Origin,
When = DateTime.UtcNow,
Link = Target.AliasLink
};
@ -930,8 +913,6 @@ namespace IW4MAdmin
Offender = Target,
Offense = Reason,
Punisher = Origin,
Active = true,
When = DateTime.UtcNow,
Link = Target.AliasLink
};
@ -977,8 +958,6 @@ namespace IW4MAdmin
Offender = targetClient,
Offense = reason,
Punisher = originClient,
Active = true,
When = DateTime.UtcNow,
Link = targetClient.AliasLink,
AutomatedOffense = originClient.AdministeredPenalties?.FirstOrDefault()?.AutomatedOffense,
IsEvadedOffense = isEvade