mirror of
https://github.com/RaidMax/IW4M-Admin.git
synced 2025-06-10 23:31:13 -05:00
fixed issue with not escaping regex for validating commands
This commit is contained in:
@ -10,6 +10,8 @@ using SharedLibrary.Objects;
|
||||
using SharedLibrary.Services;
|
||||
using StatsPlugin.Models;
|
||||
using SharedLibrary.Commands;
|
||||
using SharedLibrary.Configuration;
|
||||
using StatsPlugin.Config;
|
||||
|
||||
namespace StatsPlugin.Helpers
|
||||
{
|
||||
@ -17,7 +19,6 @@ namespace StatsPlugin.Helpers
|
||||
{
|
||||
private ConcurrentDictionary<int, ServerStats> Servers;
|
||||
private ConcurrentDictionary<int, ThreadSafeStatsService> ContextThreads;
|
||||
private ConcurrentDictionary<int, StreakMessage> StreakMessages;
|
||||
private ILogger Log;
|
||||
private IManager Manager;
|
||||
|
||||
@ -25,7 +26,6 @@ namespace StatsPlugin.Helpers
|
||||
{
|
||||
Servers = new ConcurrentDictionary<int, ServerStats>();
|
||||
ContextThreads = new ConcurrentDictionary<int, ThreadSafeStatsService>();
|
||||
StreakMessages = new ConcurrentDictionary<int, StreakMessage>();
|
||||
Log = mgr.GetLogger();
|
||||
Manager = mgr;
|
||||
}
|
||||
@ -48,7 +48,6 @@ namespace StatsPlugin.Helpers
|
||||
int serverId = sv.GetHashCode();
|
||||
var statsSvc = new ThreadSafeStatsService();
|
||||
ContextThreads.TryAdd(serverId, statsSvc);
|
||||
StreakMessages.TryAdd(serverId, new StreakMessage(sv));
|
||||
|
||||
// get the server from the database if it exists, otherwise create and insert a new one
|
||||
var server = statsSvc.ServerSvc.Find(c => c.ServerId == serverId).FirstOrDefault();
|
||||
@ -247,7 +246,7 @@ namespace StatsPlugin.Helpers
|
||||
|
||||
//statsSvc.KillStatsSvc.Insert(kill);
|
||||
//await statsSvc.KillStatsSvc.SaveChangesAsync();
|
||||
if(Manager.GetApplicationSettings().EnableAntiCheat)
|
||||
if(Plugin.Config.Configuration().EnableAntiCheat)
|
||||
{
|
||||
async Task executePenalty(Cheat.DetectionPenaltyResult penalty)
|
||||
{
|
||||
@ -313,10 +312,9 @@ namespace StatsPlugin.Helpers
|
||||
CalculateKill(attackerStats, victimStats);
|
||||
|
||||
// show encouragement/discouragement
|
||||
var streakMessageGen = StreakMessages[serverId];
|
||||
string streakMessage = (attackerStats.ClientId != victimStats.ClientId) ?
|
||||
streakMessageGen.MessageOnStreak(attackerStats.KillStreak, attackerStats.DeathStreak) :
|
||||
streakMessageGen.MessageOnStreak(-1, -1);
|
||||
StreakMessage.MessageOnStreak(attackerStats.KillStreak, attackerStats.DeathStreak) :
|
||||
StreakMessage.MessageOnStreak(-1, -1);
|
||||
|
||||
if (streakMessage != string.Empty)
|
||||
await attacker.Tell(streakMessage);
|
||||
|
@ -10,55 +10,20 @@ namespace StatsPlugin.Helpers
|
||||
{
|
||||
public class StreakMessage
|
||||
{
|
||||
private ConfigurationManager config;
|
||||
|
||||
public StreakMessage(Server sv)
|
||||
{
|
||||
config = new ConfigurationManager(sv);
|
||||
|
||||
// initialize default messages
|
||||
if (config.GetProperty<Dictionary<int, string>>("KillstreakMessages") == null)
|
||||
{
|
||||
var killstreakMessages = new Dictionary<int, string>()
|
||||
{
|
||||
{ -1, "Try not to kill yourself anymore" },
|
||||
{ 5, "Great job! You're on a ^55 killstreak!" },
|
||||
{ 10, "Amazing! ^510 kills ^7without dying!" },
|
||||
{ 25, "You better call in that nuke, ^525 killstreak^7!" }
|
||||
};
|
||||
config.AddProperty(new KeyValuePair<string, object>("KillstreakMessages", killstreakMessages));
|
||||
}
|
||||
|
||||
if (config.GetProperty<Dictionary<int, string>>("DeathstreakMessages") == null)
|
||||
{
|
||||
var deathstreakMessages = new Dictionary<int, string>()
|
||||
{
|
||||
{ 5, "Pick it up soldier, you've died ^55 times ^7in a row..." },
|
||||
{ 10, "Seriously? ^510 deaths ^7without getting a kill?" },
|
||||
};
|
||||
config.AddProperty(new KeyValuePair<string, object>("DeathstreakMessages", deathstreakMessages));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get a message from the configuration encouraging or discouraging clients
|
||||
/// </summary>
|
||||
/// <param name="killStreak">how many kills the client has without dying</param>
|
||||
/// <param name="deathStreak">how many deaths the client has without getting a kill</param>
|
||||
/// <returns>message to send to the client</returns>
|
||||
public string MessageOnStreak(int killStreak, int deathStreak)
|
||||
public static string MessageOnStreak(int killStreak, int deathStreak)
|
||||
{
|
||||
var killstreakMessage = config.GetProperty<Dictionary<int, string>>("KillstreakMessages");
|
||||
var deathstreakMessage = config.GetProperty<Dictionary<int, string>>("DeathstreakMessages");
|
||||
var killstreakMessage = Plugin.Config.Configuration().KillstreakMessages;
|
||||
var deathstreakMessage = Plugin.Config.Configuration().DeathstreakMessages;
|
||||
|
||||
string message = "";
|
||||
|
||||
if (killstreakMessage.ContainsKey(killStreak))
|
||||
message =killstreakMessage[killStreak];
|
||||
else if (deathstreakMessage.ContainsKey(deathStreak))
|
||||
message = deathstreakMessage[deathStreak];
|
||||
|
||||
return message;
|
||||
string message = killstreakMessage.FirstOrDefault(m => m.Count == killStreak)?.Message;
|
||||
message = (message == null) ? deathstreakMessage.FirstOrDefault(m => m.Count == deathStreak)?.Message : message;
|
||||
return message ?? "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user