diff --git a/CommandKit.cs b/CommandKit.cs index 5a70990..91a0eae 100644 --- a/CommandKit.cs +++ b/CommandKit.cs @@ -59,10 +59,10 @@ public void Execute(RocketPlayer caller, string command) } } - KeyValuePair individualCooldown = Kits.InvididualCooldown.Where(k => k.Key == caller.ToString() && k.Value.Kit == kit.Name).FirstOrDefault(); - if (!individualCooldown.Equals(default(KeyValuePair))) + KeyValuePair individualCooldown = Kits.InvididualCooldown.Where(k => k.Key == (caller.ToString() + kit.Name)).FirstOrDefault(); + if (!individualCooldown.Equals(default(KeyValuePair))) { - double individualCooldownSeconds = (DateTime.Now - individualCooldown.Value.Cooldown).TotalSeconds; + double individualCooldownSeconds = (DateTime.Now - individualCooldown.Value).TotalSeconds; if (individualCooldownSeconds < kit.Cooldown) { RocketChatManager.Say(caller, Kits.Instance.Translate("command_kit_cooldown_kit", (int)(kit.Cooldown - individualCooldownSeconds))); @@ -79,8 +79,23 @@ public void Execute(RocketPlayer caller, string command) } RocketChatManager.Say(caller, Kits.Instance.Translate("command_kit_success", kit.Name)); - Kits.GlobalCooldown.Add(caller.ToString(), DateTime.Now); - Kits.InvididualCooldown.Add(caller.ToString(), new IndividualKitCooldown() { Cooldown = DateTime.Now, Kit = kit.Name }); + if (Kits.GlobalCooldown.ContainsKey(caller.ToString())) + { + Kits.GlobalCooldown[caller.ToString()] = DateTime.Now; + } + else + { + Kits.GlobalCooldown.Add(caller.ToString(), DateTime.Now); + } + + if (Kits.GlobalCooldown.ContainsKey(caller.ToString())) + { + Kits.InvididualCooldown[caller.ToString() + kit.Name] = DateTime.Now; + } + else + { + Kits.InvididualCooldown.Add(caller.ToString() + kit.Name, DateTime.Now); + } } } } diff --git a/Kits.cs b/Kits.cs index 09dae45..eddb79e 100644 --- a/Kits.cs +++ b/Kits.cs @@ -10,17 +10,12 @@ namespace unturned.ROCKS.Kits { - public class IndividualKitCooldown { - public DateTime Cooldown; - public string Kit; - } - public class Kits : RocketPlugin { public static Kits Instance = null; public static Dictionary GlobalCooldown = new Dictionary(); - public static Dictionary InvididualCooldown = new Dictionary(); + public static Dictionary InvididualCooldown = new Dictionary(); protected override void Load() {