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

re-implemented auto-upload on publish

fixed the max length migration for MySQL
configure the python projects to be able to be published from command line
optimize find active pentalties query
add feature for issue #38
testing fix for concurrent dict access (in stats plugin)
This commit is contained in:
RaidMax
2018-09-12 19:53:11 -05:00
parent 090bd3214a
commit d6996f96e6
20 changed files with 1029 additions and 59 deletions

View File

@ -1,5 +1,8 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using SharedLibraryCore.Database;
using SharedLibraryCore.Database.Models;
using SharedLibraryCore.Dtos;
namespace SharedLibraryCore.Events
@ -22,7 +25,92 @@ namespace SharedLibraryCore.Events
return eventList;
}
public static void OnGameEvent(object sender, GameEventArgs eventState)
private static async Task SaveChangeHistory(GameEvent e)
{
EFChangeHistory change = null;
switch (e.Type)
{
case GameEvent.EventType.Unknown:
break;
case GameEvent.EventType.Start:
break;
case GameEvent.EventType.Stop:
break;
case GameEvent.EventType.Connect:
break;
case GameEvent.EventType.Join:
break;
case GameEvent.EventType.Quit:
break;
case GameEvent.EventType.Disconnect:
break;
case GameEvent.EventType.MapEnd:
break;
case GameEvent.EventType.MapChange:
break;
case GameEvent.EventType.Say:
break;
case GameEvent.EventType.Warn:
break;
case GameEvent.EventType.Report:
break;
case GameEvent.EventType.Flag:
break;
case GameEvent.EventType.Unflag:
break;
case GameEvent.EventType.Kick:
break;
case GameEvent.EventType.TempBan:
break;
case GameEvent.EventType.Ban:
change = new EFChangeHistory()
{
OriginEntityId = e.Origin.ClientId,
TargetEntityId = e.Target.ClientId,
TypeOfChange = EFChangeHistory.ChangeType.Ban,
Comment = e.Data
};
break;
case GameEvent.EventType.Command:
break;
case GameEvent.EventType.ChangePermission:
change = new EFChangeHistory()
{
OriginEntityId = e.Origin.ClientId,
TargetEntityId = e.Target.ClientId,
TypeOfChange = EFChangeHistory.ChangeType.Permission,
PreviousValue = ((Change)e.Extra).PreviousValue,
CurrentValue = ((Change)e.Extra).NewValue
};
break;
case GameEvent.EventType.Broadcast:
break;
case GameEvent.EventType.Tell:
break;
case GameEvent.EventType.ScriptDamage:
break;
case GameEvent.EventType.ScriptKill:
break;
case GameEvent.EventType.Damage:
break;
case GameEvent.EventType.Kill:
break;
case GameEvent.EventType.JoinTeam:
break;
}
if (change != null)
{
using (var ctx = new DatabaseContext(true))
{
ctx.EFChangeHistory.Add(change);
await ctx.SaveChangesAsync();
}
}
}
public static async void OnGameEvent(object sender, GameEventArgs eventState)
{
var E = eventState.Event;
// don't want to clog up the api with unknown events
@ -62,6 +150,8 @@ namespace SharedLibraryCore.Events
// add the new event to the list
AddNewEvent(apiEvent);
await SaveChangeHistory(E);
}
/// <summary>