mirror of
https://github.com/RaidMax/IW4M-Admin.git
synced 2025-06-11 15:52:25 -05:00
finer version numbers work correctly.
fix bug with level being reset. add {{ADMINS}} to message tokens modified offset threshold calculation
This commit is contained in:
@ -5,7 +5,7 @@
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
<MvcRazorExcludeRefAssembliesFromPublish>false</MvcRazorExcludeRefAssembliesFromPublish>
|
||||
<PackageId>RaidMax.IW4MAdmin.Application</PackageId>
|
||||
<Version>2.1.0</Version>
|
||||
<Version>2.1.1</Version>
|
||||
<Authors>RaidMax</Authors>
|
||||
<Company>Forever None</Company>
|
||||
<Product>IW4MAdmin</Product>
|
||||
|
@ -28,8 +28,10 @@ namespace IW4MAdmin.Application
|
||||
Console.OutputEncoding = Encoding.UTF8;
|
||||
Console.ForegroundColor = ConsoleColor.Gray;
|
||||
|
||||
Version = Assembly.GetExecutingAssembly().GetName().Version.Major + Assembly.GetExecutingAssembly().GetName().Version.Minor / 10.0f;
|
||||
Version = Math.Round(Version, 2);
|
||||
Version = Assembly.GetExecutingAssembly().GetName().Version.Major +
|
||||
Assembly.GetExecutingAssembly().GetName().Version.Minor / 10.0f +
|
||||
Assembly.GetExecutingAssembly().GetName().Version.Build / 100.0f;
|
||||
Version = Math.Round(Version, 3);
|
||||
|
||||
Console.WriteLine("=====================================================");
|
||||
Console.WriteLine(" IW4M ADMIN");
|
||||
|
@ -81,14 +81,18 @@ namespace IW4MAdmin.Application
|
||||
|
||||
public async Task UpdateStatus(object state)
|
||||
{
|
||||
var taskList = new List<Task>();
|
||||
var taskList = new Dictionary<int, Task>();
|
||||
|
||||
while (Running)
|
||||
{
|
||||
taskList.Clear();
|
||||
var tasksToRemove = taskList.Where(t => t.Value.Status == TaskStatus.RanToCompletion)
|
||||
.Select(t => t.Key).ToList();
|
||||
|
||||
tasksToRemove.ForEach(t => taskList.Remove(t));
|
||||
|
||||
foreach (var server in Servers)
|
||||
{
|
||||
taskList.Add(Task.Run(async () =>
|
||||
var newTask = Task.Run(async () =>
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -101,7 +105,12 @@ namespace IW4MAdmin.Application
|
||||
Logger.WriteDebug($"Exception: {e.Message}");
|
||||
Logger.WriteDebug($"StackTrace: {e.StackTrace}");
|
||||
}
|
||||
}));
|
||||
});
|
||||
|
||||
if (!taskList.ContainsKey(server.GetHashCode()))
|
||||
{
|
||||
taskList.Add(server.GetHashCode(), newTask);
|
||||
}
|
||||
}
|
||||
#if DEBUG
|
||||
Logger.WriteDebug($"{taskList.Count} servers queued for stats updates");
|
||||
@ -110,7 +119,7 @@ namespace IW4MAdmin.Application
|
||||
Logger.WriteDebug($"There are {workerThreads - availableThreads} active threading tasks");
|
||||
#endif
|
||||
|
||||
await Task.WhenAll(taskList.ToArray());
|
||||
await Task.WhenAny(taskList.Values.ToArray());
|
||||
|
||||
GameEvent sensitiveEvent;
|
||||
while ((sensitiveEvent = Handler.GetNextSensitiveEvent()) != null)
|
||||
|
@ -145,7 +145,7 @@ namespace IW4MAdmin
|
||||
{
|
||||
client.CurrentAlias = existingAlias;
|
||||
client.CurrentAliasId = existingAlias.AliasId;
|
||||
await Manager.GetClientService().Update(client);
|
||||
client = await Manager.GetClientService().Update(client);
|
||||
}
|
||||
player = client.AsPlayer();
|
||||
}
|
||||
@ -160,11 +160,14 @@ namespace IW4MAdmin
|
||||
var activePenalties = await Manager.GetPenaltyService().GetActivePenaltiesAsync(player.AliasLinkId, player.IPAddress);
|
||||
var currentBan = activePenalties.FirstOrDefault(b => b.Expires > DateTime.UtcNow);
|
||||
var currentAutoFlag = activePenalties.Where(p => p.Type == Penalty.PenaltyType.Flag && p.PunisherId == 1)
|
||||
.Where(p => p.Active)
|
||||
.OrderByDescending(p => p.When)
|
||||
.FirstOrDefault();
|
||||
|
||||
// remove their auto flag status after a week
|
||||
if (currentAutoFlag != null && (DateTime.Now - currentAutoFlag.When).TotalDays > 7)
|
||||
if (player.Level == Player.Permission.Flagged &&
|
||||
currentAutoFlag != null &&
|
||||
(DateTime.Now - currentAutoFlag.When).TotalDays > 7)
|
||||
{
|
||||
player.Level = Player.Permission.User;
|
||||
}
|
||||
@ -193,7 +196,6 @@ namespace IW4MAdmin
|
||||
|
||||
Logger.WriteInfo($"Client {player} connecting...");
|
||||
|
||||
|
||||
if (!Manager.GetApplicationSettings().Configuration().EnableClientVPNs &&
|
||||
await VPNCheck.UsingVPN(player.IPAddressString, Manager.GetApplicationSettings().Configuration().IPHubAPIKey))
|
||||
{
|
||||
@ -831,7 +833,7 @@ namespace IW4MAdmin
|
||||
CustomCallback = await ScriptLoaded();
|
||||
string mainPath = EventParser.GetGameDir();
|
||||
#if DEBUG
|
||||
basepath.Value = @"\\192.168.88.253\mw2";
|
||||
basepath.Value = @"\\192.168.88.253\logs\games_mp.log";
|
||||
#endif
|
||||
string logPath;
|
||||
if (GameName == Game.IW5)
|
||||
@ -1064,6 +1066,7 @@ namespace IW4MAdmin
|
||||
Manager.GetMessageTokens().Add(new SharedLibraryCore.Helpers.MessageToken("TOTALPLAYERS", (Server s) => Manager.GetClientService().GetTotalClientsAsync().Result.ToString()));
|
||||
Manager.GetMessageTokens().Add(new SharedLibraryCore.Helpers.MessageToken("VERSION", (Server s) => Application.Program.Version.ToString()));
|
||||
Manager.GetMessageTokens().Add(new SharedLibraryCore.Helpers.MessageToken("NEXTMAP", (Server s) => SharedLibraryCore.Commands.CNextMap.GetNextMap(s).Result));
|
||||
Manager.GetMessageTokens().Add(new SharedLibraryCore.Helpers.MessageToken("ADMINS", (Server s) => SharedLibraryCore.Commands.CListAdmins.OnlineAdmins(s)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user