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

fix alias command sending message to origin instead of target

(hopefully) fix an issue with banned players causing exception if they create events before they are kicked out
fix issues with sometimes wrong error message for timeout
show most recent IP address at top of alias list
optimization to some sql queries
This commit is contained in:
RaidMax
2019-11-15 14:50:20 -06:00
parent ba35177ded
commit edb00523a1
31 changed files with 1553 additions and 279 deletions

View File

@ -33,8 +33,6 @@ namespace IW4MAdmin.Application
public ILogger Logger => GetLogger(0);
public bool Running { get; private set; }
public bool IsInitialized { get; private set; }
// expose the event handler so we can execute the events
public OnServerEventEventHandler OnServerEvent { get; set; }
public DateTime StartTime { get; private set; }
public string Version => Assembly.GetEntryAssembly().GetName().Version.ToString();
@ -73,21 +71,19 @@ namespace IW4MAdmin.Application
PageList = new PageList();
AdditionalEventParsers = new List<IEventParser>();
AdditionalRConParsers = new List<IRConParser>();
OnServerEvent += OnGameEvent;
OnServerEvent += EventApi.OnGameEvent;
//OnServerEvent += OnGameEvent;
//OnServerEvent += EventApi.OnGameEvent;
TokenAuthenticator = new TokenAuthentication();
_metaService = new MetaService();
_tokenSource = new CancellationTokenSource();
}
private async void OnGameEvent(object sender, GameEventArgs args)
public async Task ExecuteEvent(GameEvent newEvent)
{
#if DEBUG == true
Logger.WriteDebug($"Entering event process for {args.Event.Id}");
Logger.WriteDebug($"Entering event process for {newEvent.Id}");
#endif
var newEvent = args.Event;
// the event has failed already
if (newEvent.Failed)
{
@ -96,12 +92,11 @@ namespace IW4MAdmin.Application
try
{
await newEvent.Owner.EventProcessing.WaitAsync(CancellationToken);
await newEvent.Owner.ExecuteEvent(newEvent);
// save the event info to the database
var changeHistorySvc = new ChangeHistoryService();
await changeHistorySvc.Add(args.Event);
await changeHistorySvc.Add(newEvent);
#if DEBUG
Logger.WriteDebug($"Processed event with id {newEvent.Id}");
@ -145,22 +140,12 @@ namespace IW4MAdmin.Application
Logger.WriteDebug(ex.GetExceptionInfo());
}
finally
{
if (newEvent.Owner.EventProcessing.CurrentCount == 0)
{
newEvent.Owner.EventProcessing.Release(1);
}
#if DEBUG == true
Logger.WriteDebug($"Exiting event process for {args.Event.Id}");
#endif
}
skip:
// tell anyone waiting for the output that we're done
newEvent.OnProcessed.Set();
newEvent.Complete();
#if DEBUG == true
Logger.WriteDebug($"Exiting event process for {newEvent.Id}");
#endif
}
public IList<Server> GetServers()