public void Execute(IRocketPlayer caller, string[] command) { var player = (UnturnedPlayer)caller; if (command.Length < 1) { UnturnedChat.Say(caller, pluginInstance.Translate("KitFormat"), pluginInstance.MessageColor); return; } Kit kit = pluginInstance.KitsCache.FirstOrDefault(x => x.Name.Equals(command[0], StringComparison.OrdinalIgnoreCase)); if (kit == null) { UnturnedChat.Say(caller, pluginInstance.Translate("KitNotFound"), pluginInstance.MessageColor); return; } if (!caller.HasPermission("kit." + kit.Name)) { UnturnedChat.Say(caller, pluginInstance.Translate("KitNoPermission"), pluginInstance.MessageColor); return; } KitCooldown cooldown = pluginInstance.Cooldowns.FirstOrDefault(x => x.Player.CSteamID.Equals(player.CSteamID) && x.Kit.Name.Equals(kit.Name)); if (cooldown != null && cooldown.Timer.Enabled) { UnturnedChat.Say(caller, pluginInstance.Translate("KitCooldown", (kit.Cooldown - (DateTime.Now - cooldown.TimeStarted).TotalSeconds).ToString("0")), pluginInstance.MessageColor); return; } foreach (var item in kit.Items) { Item itemObj = new Item(item.ItemId, true); itemObj.metadata = item.State; player.Player.inventory.forceAddItem(itemObj, true); } if (kit.Experience > 0) { player.Experience += kit.Experience; } if (kit.Vehicle != 0) { player.GiveVehicle(kit.Vehicle); } if (cooldown == null) { cooldown = new KitCooldown(player, kit); pluginInstance.Cooldowns.Add(cooldown); } cooldown.Start(); UnturnedChat.Say(caller, pluginInstance.Translate("KitSuccess", kit.Name), pluginInstance.MessageColor); }
public void RegisterCooldown(string playerId, Kit kit) { var kitCooldown = new KitCooldown() { PlayerId = playerId, KitName = kit.Name, ExpireDate = DateTime.UtcNow.AddSeconds(kit.Cooldown) }; database.AddKitCooldown(kitCooldown); GlobalCooldowns[playerId] = DateTime.UtcNow.AddSeconds(KitsPlugin.Instance.Configuration.Instance.GlobalCooldown); }
public void AddKitCooldown(KitCooldown cooldown) { Data.Add(cooldown); DataStorage.Save(Data); }