diff --git a/Application/Application.csproj b/Application/Application.csproj index 9e718b01f..8f0cba878 100644 --- a/Application/Application.csproj +++ b/Application/Application.csproj @@ -42,6 +42,12 @@ + + none + full + true + + true diff --git a/Application/ApplicationManager.cs b/Application/ApplicationManager.cs index 988b1e1b2..4bff1eded 100644 --- a/Application/ApplicationManager.cs +++ b/Application/ApplicationManager.cs @@ -116,26 +116,26 @@ namespace IW4MAdmin.Application // this happens if a plugin requires login catch (AuthorizationException ex) { - newEvent.FailReason = GameEvent.EventFailReason.Permission; + newEvent.FailReason = EventFailReason.Permission; newEvent.Origin.Tell($"{Utilities.CurrentLocalization.LocalizationIndex["COMMAND_NOTAUTHORIZED"]} - {ex.Message}"); } catch (NetworkException ex) { - newEvent.FailReason = GameEvent.EventFailReason.Exception; + newEvent.FailReason = EventFailReason.Exception; Logger.WriteError(ex.Message); Logger.WriteDebug(ex.GetExceptionInfo()); } catch (ServerException ex) { - newEvent.FailReason = GameEvent.EventFailReason.Exception; + newEvent.FailReason = EventFailReason.Exception; Logger.WriteWarning(ex.Message); } catch (Exception ex) { - newEvent.FailReason = GameEvent.EventFailReason.Exception; + newEvent.FailReason = EventFailReason.Exception; Logger.WriteError(Utilities.CurrentLocalization.LocalizationIndex["SERVER_ERROR_EXCEPTION"].FormatExt(newEvent.Owner)); Logger.WriteDebug(ex.GetExceptionInfo()); } diff --git a/Application/IO/GameLogEventDetection.cs b/Application/IO/GameLogEventDetection.cs index 695080e52..bf09b87c8 100644 --- a/Application/IO/GameLogEventDetection.cs +++ b/Application/IO/GameLogEventDetection.cs @@ -23,7 +23,7 @@ namespace IW4MAdmin.Application.IO public GameLogEventDetection(Server server, string gameLogPath, Uri gameLogServerUri) { _gameLogFile = gameLogPath; - _reader = gameLogServerUri != null ? new GameLogReaderHttp(gameLogServerUri, gameLogPath, server.EventParser) : _reader = new GameLogReader(gameLogPath, server.EventParser); + _reader = gameLogServerUri != null ? new GameLogReaderHttp(gameLogServerUri, gameLogPath, server.EventParser) : _reader = new GameLogReader(gameLogPath, server.EventParser); _server = server; _ignoreBots = server.Manager.GetApplicationSettings().Configuration().IgnoreBots; } @@ -45,7 +45,7 @@ namespace IW4MAdmin.Application.IO _server.Logger.WriteDebug(e.GetExceptionInfo()); } } - + await Task.Delay(_reader.UpdateInterval, _server.Manager.CancellationToken); } @@ -76,11 +76,11 @@ namespace IW4MAdmin.Application.IO #if DEBUG _server.Logger.WriteVerbose(gameEvent.Data); #endif + gameEvent.Owner = _server; + // we don't want to add the event if ignoreBots is on and the event comes from a bot if (!_ignoreBots || (_ignoreBots && !((gameEvent.Origin?.IsBot ?? false) || (gameEvent.Target?.IsBot ?? false)))) { - gameEvent.Owner = _server; - if ((gameEvent.RequiredEntity & GameEvent.EventRequiredEntity.Origin) == GameEvent.EventRequiredEntity.Origin && gameEvent.Origin.NetworkId != 1) { gameEvent.Origin = _server.GetClientsAsList().First(_client => _client.NetworkId == gameEvent.Origin?.NetworkId); diff --git a/SharedLibraryCore/PartialEntities/EFClient.cs b/SharedLibraryCore/PartialEntities/EFClient.cs index 587b7eb79..6c1d14574 100644 --- a/SharedLibraryCore/PartialEntities/EFClient.cs +++ b/SharedLibraryCore/PartialEntities/EFClient.cs @@ -103,7 +103,7 @@ namespace SharedLibraryCore.Database.Models } [NotMapped] - public string CleanedName => Name.StripColors(); + public string CleanedName => Name?.StripColors(); [NotMapped] public virtual int? IPAddress @@ -463,8 +463,7 @@ namespace SharedLibraryCore.Database.Models { var loc = Utilities.CurrentLocalization.LocalizationIndex; - string strippedName = Name.StripColors(); - if (string.IsNullOrWhiteSpace(Name) || strippedName.Replace(" ", "").Length < 3) + if (string.IsNullOrWhiteSpace(Name) || CleanedName.Replace(" ", "").Length < 3) { CurrentServer.Logger.WriteDebug($"Kicking {this} because their name is too short"); Kick(loc["SERVER_KICK_MINNAME"], Utilities.IW4MAdminClient(CurrentServer)); @@ -575,7 +574,6 @@ namespace SharedLibraryCore.Database.Models // we want to get any penalties that are tied to their IP or AliasLink (but not necessarily their GUID) var activePenalties = await CurrentServer.Manager.GetPenaltyService().GetActivePenaltiesAsync(AliasLinkId, ipAddress); - var banPenalty = activePenalties.FirstOrDefault(_penalty => _penalty.Type == EFPenalty.PenaltyType.Ban); var tempbanPenalty = activePenalties.FirstOrDefault(_penalty => _penalty.Type == EFPenalty.PenaltyType.TempBan); var flagPenalty = activePenalties.FirstOrDefault(_penalty => _penalty.Type == EFPenalty.PenaltyType.Flag); diff --git a/SharedLibraryCore/Services/ClientService.cs b/SharedLibraryCore/Services/ClientService.cs index 40e336661..f62ebbdd2 100644 --- a/SharedLibraryCore/Services/ClientService.cs +++ b/SharedLibraryCore/Services/ClientService.cs @@ -340,6 +340,7 @@ namespace SharedLibraryCore.Services client.AliasLink = new EFAliasLink() { + AliasLinkId = client.AliasLinkId, Children = await context.Aliases .Where(_alias => _alias.LinkId == client.AliasLinkId) .Select(_alias => new EFAlias() diff --git a/SharedLibraryCore/SharedLibraryCore.csproj b/SharedLibraryCore/SharedLibraryCore.csproj index ffbd23342..ded7da951 100644 --- a/SharedLibraryCore/SharedLibraryCore.csproj +++ b/SharedLibraryCore/SharedLibraryCore.csproj @@ -21,6 +21,11 @@ MIT + + full + true + + diff --git a/WebfrontCore/Controllers/ClientController.cs b/WebfrontCore/Controllers/ClientController.cs index 492f4d461..f580acc01 100644 --- a/WebfrontCore/Controllers/ClientController.cs +++ b/WebfrontCore/Controllers/ClientController.cs @@ -152,7 +152,7 @@ namespace WebfrontCore.Controllers return View("Find/Index", clientsDto); } - public async Task GetMeta(int id, int count, int offset, DateTime? startAt) + public async Task Meta(int id, int count, int offset, DateTime? startAt) { IEnumerable meta = await MetaService.GetRuntimeMeta(id, startAt == null ? offset : 0, count, startAt ?? DateTime.UtcNow);