public virtual KitItem KitItemFromDataRow(DataRow dr) { if (dr == null) { return(null); } KitItem entity = new KitItem(); entity.KitItemId = (System.Int32)dr["KitItemID"]; entity.KitItemGuid = (System.Guid)dr["KitItemGUID"]; entity.KitGroupId = (System.Int32)dr["KitGroupID"]; entity.Name = dr["Name"].ToString(); entity.Description = dr["Description"].ToString(); entity.PriceDelta = (System.Decimal)dr["PriceDelta"]; entity.WeightDelta = (System.Decimal)dr["WeightDelta"]; entity.IsDefault = (System.Byte)dr["IsDefault"]; entity.DisplayOrder = (System.Int32)dr["DisplayOrder"]; entity.ExtensionData = dr["ExtensionData"].ToString(); entity.TextOptionMaxLength = dr["TextOptionMaxLength"] == DBNull.Value?(System.Int32?)null : (System.Int32?)dr["TextOptionMaxLength"]; entity.TextOptionWidth = dr["TextOptionWidth"] == DBNull.Value?(System.Int32?)null : (System.Int32?)dr["TextOptionWidth"]; entity.TextOptionHeight = dr["TextOptionHeight"] == DBNull.Value?(System.Int32?)null : (System.Int32?)dr["TextOptionHeight"]; entity.InventoryVariantId = dr["InventoryVariantID"] == DBNull.Value?(System.Int32?)null : (System.Int32?)dr["InventoryVariantID"]; entity.InventoryQuantityDelta = (System.Int32)dr["InventoryQuantityDelta"]; entity.InventoryVariantColor = dr["InventoryVariantColor"].ToString(); entity.InventoryVariantSize = dr["InventoryVariantSize"].ToString(); entity.CreatedOn = (System.DateTime)dr["CreatedOn"]; return(entity); }
private KitItem ProcessItem(Item playerItem) { KitItem item = new KitItem(); item.Amount = playerItem.amount; item.Mods = new List <string>(); item.Name = playerItem.info.shortname; item.Weapon = false; if (playerItem.info.category.ToString() == "Weapon") { BaseProjectile weapon = playerItem.GetHeldEntity() as BaseProjectile; if (weapon != null) { if (weapon.primaryMagazine != null) { item.Weapon = true; if (playerItem.contents != null) { foreach (var mod in playerItem.contents.itemList) { if (mod.info.itemid != 0) { item.Mods.Add(mod.info.shortname); } } } } } } return(item); }
static private KitItem ProcessItem(Item item, string container) { KitItem iItem = new KitItem(); iItem.amount = item.amount; iItem.mods = new List <int>(); iItem.container = container; iItem.skinid = item.skin; iItem.itemid = item.info.itemid; iItem.weapon = false; if (item.info.category.ToString() == "Weapon") { BaseProjectile weapon = item.GetHeldEntity() as BaseProjectile; if (weapon != null) { if (weapon.primaryMagazine != null) { iItem.weapon = true; if (item.contents != null) { foreach (var mod in item.contents.itemList) { if (mod.info.itemid != 0) { iItem.mods.Add(mod.info.itemid); } } } } } } return(iItem); }
public ActionResult DeleteConfirmed(int id) { KitItem KitItem = db.KitItems.Find(id); db.KitItems.Remove(KitItem); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit(KitItem KitItem) { if (ModelState.IsValid) { db.Entry(KitItem).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(KitItem)); }
// // GET: /SchoolKit/Delete/5 public ActionResult Delete(int id = 0) { KitItem KitItem = db.KitItems.Find(id); if (KitItem == null) { return(HttpNotFound()); } return(View(KitItem)); }
public virtual KitItem UpdateKitItem(KitItem entity) { if (entity.IsTransient()) { return(entity); } KitItem other = GetKitItem(entity.KitItemId); if (entity.Equals(other)) { return(entity); } string sql = @"Update KitItem set [KitItemGUID]=@KitItemGUID , [KitGroupID]=@KitGroupID , [Name]=@Name , [Description]=@Description , [PriceDelta]=@PriceDelta , [WeightDelta]=@WeightDelta , [IsDefault]=@IsDefault , [DisplayOrder]=@DisplayOrder , [ExtensionData]=@ExtensionData , [TextOptionMaxLength]=@TextOptionMaxLength , [TextOptionWidth]=@TextOptionWidth , [TextOptionHeight]=@TextOptionHeight , [InventoryVariantID]=@InventoryVariantID , [InventoryQuantityDelta]=@InventoryQuantityDelta , [InventoryVariantColor]=@InventoryVariantColor , [InventoryVariantSize]=@InventoryVariantSize , [CreatedOn]=@CreatedOn where KitItemID=@KitItemID" ; SqlParameter[] parameterArray = new SqlParameter[] { new SqlParameter("@KitItemID", entity.KitItemId) , new SqlParameter("@KitItemGUID", entity.KitItemGuid) , new SqlParameter("@KitGroupID", entity.KitGroupId) , new SqlParameter("@Name", entity.Name) , new SqlParameter("@Description", entity.Description ?? (object)DBNull.Value) , new SqlParameter("@PriceDelta", entity.PriceDelta) , new SqlParameter("@WeightDelta", entity.WeightDelta) , new SqlParameter("@IsDefault", entity.IsDefault) , new SqlParameter("@DisplayOrder", entity.DisplayOrder) , new SqlParameter("@ExtensionData", entity.ExtensionData ?? (object)DBNull.Value) , new SqlParameter("@TextOptionMaxLength", entity.TextOptionMaxLength ?? (object)DBNull.Value) , new SqlParameter("@TextOptionWidth", entity.TextOptionWidth ?? (object)DBNull.Value) , new SqlParameter("@TextOptionHeight", entity.TextOptionHeight ?? (object)DBNull.Value) , new SqlParameter("@InventoryVariantID", entity.InventoryVariantId ?? (object)DBNull.Value) , new SqlParameter("@InventoryQuantityDelta", entity.InventoryQuantityDelta) , new SqlParameter("@InventoryVariantColor", entity.InventoryVariantColor ?? (object)DBNull.Value) , new SqlParameter("@InventoryVariantSize", entity.InventoryVariantSize ?? (object)DBNull.Value) , new SqlParameter("@CreatedOn", entity.CreatedOn) }; SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.Text, sql, parameterArray); return(GetKitItem(entity.KitItemId)); }
public ActionResult Create(KitItem KitItem) { if (ModelState.IsValid) { db.KitItems.Add(KitItem); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(KitItem)); }
static bool FindItem(KitData kit, string item, out KitItem itemdata) { if (kit.Items.Any(v => string.Equals(v.Name, item, StringComparison.CurrentCultureIgnoreCase))) { itemdata = kit.Items.Single(v => string.Equals(v.Name, item, StringComparison.CurrentCultureIgnoreCase)); return(true); } itemdata = null; return(false); }
HashSet <KitItem> GetItemsByItemContainer(ItemContainer itemContainer) { HashSet <KitItem> items = new HashSet <KitItem>(); foreach (Item item in itemContainer.itemList) { KitItem kitItem = new KitItem(); kitItem.Name = item.info.displayName.english; kitItem.Id = item.info.itemid; kitItem.Amount = item.amount; items.Add(kitItem); } return(items); }
private void Kit(BasePlayer player, string kit) { if (player == null) { return; } PlayerInfo info = playerInfo[player.userID]; // Check if the kit exists if (!kitItems.ContainsKey(kit)) { player.ChatMessage("<color=#d00>ERROR</color> That kit does not exists."); return; } KitItem item = kitItems[kit]; // Check for the permissions if (!info.HasSubscription($"kit_{kit}") && !AllowKit(player, kit)) { player.ChatMessage("<color=#d00>ERROR</color> You dont have permissions for this kit, you can buy them in the shop."); return; } // Check for the cooldown int cooldown = info.HasCooldown($"kit_{kit}"); if (cooldown > 0) { player.ChatMessage($"<color=#d00>ERROR</color> Wait {cooldown} seconds."); return; } // Add the cooldown info.AddCooldown($"kit_{kit}", item.cooldown); // Execute the command string[] commands = item.command.Split('|'); foreach (string command in commands) { GameLimits.ExecuteCommand(player, command); } // Add logging MInsert(MBuild("INSERT INTO kits_history (user_id, kit_id) VALUES (@0, @1);", info.id, item.id)); }
Item BuildWeapon(KitItem kItem) { Item item = ItemManager.CreateByName(kItem.Name, 1); var weapon = item.GetHeldEntity() as BaseProjectile; if (weapon != null) { (item.GetHeldEntity() as BaseProjectile).primaryMagazine.contents = (item.GetHeldEntity() as BaseProjectile).primaryMagazine.capacity; } if (kItem.Mods != null) { foreach (var mod in kItem.Mods) { item.contents.AddItem(BuildItem(mod, 1).info, 1); } } return(item); }
private KitItem ItemToKit(Item item, string container) { KitItem kitem = new KitItem(); kitem.Amount = item.amount; kitem.Container = container; kitem.SkinID = item.skin; kitem.Blueprint = item.blueprintTarget; kitem.ShortName = item.info.shortname; kitem.Condition = item.condition; kitem.Weapon = null; kitem.Content = null; if (item.info.category == ItemCategory.Weapon) { BaseProjectile weapon = item.GetHeldEntity() as BaseProjectile; if (weapon != null) { kitem.Weapon = new Weapon(); kitem.Weapon.ammoType = weapon.primaryMagazine.ammoType.shortname; kitem.Weapon.ammoAmount = weapon.primaryMagazine.contents; } } if (item.contents != null) { kitem.Content = new List <ItemContent>(); foreach (var cont in item.contents.itemList) { kitem.Content.Add(new ItemContent() { Amount = cont.amount, Condition = cont.condition, ShortName = cont.info.shortname }); } } return(kitem); }
public static List <KitItem> ConvertToKitItems(this byte[]?block) { var output = new List <KitItem>(); if (block == null) { return(output); } using var ms = new MemoryStream(); using var br = new BinaryReader(ms); br.ReadByte(); // save version, for now ignored for (var i = 0; i < br.ReadInt32(); i++) { var kitItem = new KitItem(); kitItem.Deserialize(br); output.Add(kitItem); } return(output); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var player = src.ToPlayer(); if (args.Length < 1) { return(CommandResult.ShowUsage()); } var name = args[0].ToString(); uint cooldown = 0; var resetCooldownWhenDie = false; var cost = 0d; if (KitModule.Instance.KitManager.Contains(name)) { return(CommandResult.Lang("KIT_ALREADY_EXIST", name)); } if (args.Length > 1) { if (!args[1].IsInt) { return(CommandResult.Lang("INVALID_NUMBER", args[1])); } if (args[1].ToInt < 0) { return(CommandResult.Lang("MUST_POSITIVE")); } cooldown = args[1].ToUInt; } if (args.Length > 2) { if (!args[2].IsBool) { return(CommandResult.Lang("INVALID_BOOLEAN", args[2])); } resetCooldownWhenDie = args[2].ToBool; } if (args.Length > 3) { if (!args[3].IsDouble) { return(CommandResult.Lang("INVALID_NUMBER", args[3])); } if (args[3].ToDouble < 0) { return(CommandResult.Lang("MUST_POSITIVE")); } cost = args[3].ToDouble; } var inventory = player.Inventory; var clothing = player.Clothing; var items = new List <AbstractKitItem>(); Action <byte> addItemsFromPage = page => { var count = inventory.getItemCount(page); for (byte index = 0; index < count; index++) { var item = inventory.getItem(page, index).item; if (item == null) { continue; } var asset = GetItem(item.id).Value; KitItem kitItem; if (asset is ItemWeaponAsset) { var ammo = GetWeaponAmmo(item); var firemode = GetWeaponFiremode(item).OrElse(EFiremode.SAFETY); var kItem = new KitItemWeapon(item.id, item.durability, 1, ammo.OrElse(0), firemode) { Magazine = GetWeaponAttachment(item, AttachmentType.MAGAZINE).OrElse(null), Barrel = GetWeaponAttachment(item, AttachmentType.BARREL).OrElse(null), Sight = GetWeaponAttachment(item, AttachmentType.SIGHT).OrElse(null), Grip = GetWeaponAttachment(item, AttachmentType.GRIP).OrElse(null), Tactical = GetWeaponAttachment(item, AttachmentType.TACTICAL).OrElse(null) }; kitItem = kItem; } else if (asset is ItemMagazineAsset || asset is ItemSupplyAsset) { kitItem = new KitItemMagazine(item.id, item.durability, 1, item.amount); } else { kitItem = new KitItem(item.id, item.durability, 1); } kitItem.Metadata = item.metadata; items.Add(kitItem); } }; addItemsFromPage(0); // Primary slot addItemsFromPage(1); // Secondary slot addItemsFromPage(2); // Hands // Backpack if (clothing.backpack != 0) { items.Add(new KitItem(clothing.backpack, clothing.backpackQuality, 1) { Metadata = clothing.backpackState }); } addItemsFromPage(3); // End Backpack // Shirt if (clothing.shirt != 0) { items.Add(new KitItem(clothing.shirt, clothing.shirtQuality, 1) { Metadata = clothing.shirtState }); } addItemsFromPage(5); // End Shirt // Vest if (clothing.vest != 0) { items.Add(new KitItem(clothing.vest, clothing.vestQuality, 1) { Metadata = clothing.vestState }); } addItemsFromPage(4); // End Vest // Pants if (clothing.pants != 0) { items.Add(new KitItem(clothing.pants, clothing.pantsQuality, 1) { Metadata = clothing.pantsState }); } addItemsFromPage(6); // End Pants // Mask, Glasses & Hat if (clothing.mask != 0) { items.Add(new KitItem(clothing.mask, clothing.maskQuality, 1) { Metadata = clothing.maskState }); } if (clothing.hat != 0) { items.Add(new KitItem(clothing.hat, clothing.hatQuality, 1) { Metadata = clothing.hatState }); } if (clothing.glasses != 0) { items.Add(new KitItem(clothing.glasses, clothing.glassesQuality, 1) { Metadata = clothing.glassesState }); } // End Mask, Glasses & Hat var kit = new Kit(name, cooldown, (decimal)cost, resetCooldownWhenDie) { Items = items }; KitModule.Instance.KitManager.Add(kit); EssLang.Send(src, "CREATED_KIT", name); return(CommandResult.Success()); }
static private KitItem ProcessItem(Item item, string container) { KitItem iItem = new KitItem(); iItem.amount = item.amount; iItem.mods = new List<int>(); iItem.container = container; iItem.bp = item.IsBlueprint(); iItem.skinid = item.skin; iItem.itemid = item.info.itemid; iItem.weapon = false; if (item.info.category.ToString() == "Weapon") { BaseProjectile weapon = item.GetHeldEntity() as BaseProjectile; if (weapon != null) { if (weapon.primaryMagazine != null) { iItem.weapon = true; if (item.contents != null) foreach (var mod in item.contents.itemList) { if (mod.info.itemid != 0) iItem.mods.Add(mod.info.itemid); } } } } return iItem; }
private AbstractKitItem ParseKitItem(Kit kit, JObject itemObj) { const StringComparison strCmp = StringComparison.InvariantCultureIgnoreCase; if (itemObj.TryGetValue("money", strCmp, out var moneyToken)) { if (!UEssentials.EconomyProvider.IsPresent) { UEssentials.Logger.LogWarning("Cannot add 'Money' item because there is no active economy system."); return(null); } return(new KitItemMoney(moneyToken.Value <decimal>())); } if (itemObj.TryGetValue("xp", strCmp, out var expToken)) { return(new KitItemExperience(expToken.Value <uint>())); } if (itemObj.TryGetValue("vehicle", strCmp, out var vehicleIdToken)) { var vehicleId = vehicleIdToken.Value <ushort>(); if (Assets.find(EAssetType.VEHICLE, vehicleId) == null) { UEssentials.Logger.LogWarning($"Invalid vehicle id '{vehicleId}' in the item at {itemObj.Path} in the kit '{kit.Name}'"); return(null); } return(new KitItemVehicle(vehicleId)); } var itemIdToken = itemObj.GetValue("id", strCmp); if (itemIdToken == null) { UEssentials.Logger.LogWarning($"Missing attribute 'Id' in the item at {itemObj.Path} in the kit '{kit.Name}'"); return(null); } var itemId = itemIdToken.Value <ushort>(); var itemAsset = (ItemAsset)Assets.find(EAssetType.ITEM, itemId); var tokKitItemDurability = itemObj.GetValue("Durability", strCmp); var tokKitItemAmount = itemObj.GetValue("Amount", strCmp); var tokAmmo = itemObj.GetValue("Ammo", strCmp); var kitItemAmount = tokKitItemAmount?.Value <byte>() ?? 1; var kitItemDurability = tokKitItemDurability?.Value <byte>() ?? 100; // Parse weapon specific attributes if (itemAsset is ItemGunAsset) { var tokFireMode = itemObj.GetValue("FireMode", strCmp); EFiremode?fireMode = null; if (tokFireMode != null) { try { fireMode = (EFiremode)Enum.Parse(typeof(EFiremode), tokFireMode.Value <string>(), true); } catch (ArgumentException) { UEssentials.Logger.LogWarning($"Invalid firemode '{tokFireMode}' in the item at {itemObj.Path} in the kit '{kit.Name}'. " + $"Valid Firemodes: ${string.Join(", ", Enum.GetNames(typeof(EFiremode)))}"); } } var weaponItem = new KitItemWeapon(itemId, kitItemDurability, kitItemAmount, tokAmmo?.Value <byte>() ?? null, fireMode ) { Barrel = itemObj.GetValue("Barrel", strCmp)?.ToObject <Attachment>(), Sight = itemObj.GetValue("Sight", strCmp)?.ToObject <Attachment>(), Tactical = itemObj.GetValue("Tactical", strCmp)?.ToObject <Attachment>(), Grip = itemObj.GetValue("Grip", strCmp)?.ToObject <Attachment>(), Magazine = itemObj.GetValue("Magazine", strCmp)?.ToObject <Attachment>() }; return(weaponItem); } if (itemAsset is ItemMagazineAsset || itemAsset is ItemSupplyAsset) { var magazineAmmo = tokAmmo?.Value <byte>() ?? itemAsset.amount; return(new KitItemMagazine(itemId, kitItemDurability, kitItemAmount, magazineAmmo)); } var kitItem = new KitItem(itemId, kitItemDurability, kitItemAmount); if (itemAsset is ItemFuelAsset) { var item = kitItem; var fuelPercentage = itemObj.GetValue("FuelPercentage", strCmp)?.Value <float>() ?? 100; ItemUtil.Refuel(item.Metadata, item.Id, fuelPercentage); } return(kitItem); }
public KitItem InsertKitItem(KitItem entity) { return(_iKitItemRepository.InsertKitItem(entity)); }
void ModifyKitItems(Player player, KitData kit, string action, string[] args) { switch (action) { case "additem": if (args.Length == 0 || args.Length > 2) { SendMessage(player, InvalidArgs); return; } var itemname = args[0]; int amount; if (args.Length == 2) { if (!int.TryParse(args[1], out amount)) { amount = 1; } } else { amount = 1; } var blueprintForName = InvDefinitions.Instance.Blueprints.GetBlueprintForName(itemname, true, true); if (blueprintForName == null) { SendMessage(player, AKitItemDoesNotExist, itemname); return; } SendMessage(player, AKitItemAdded, blueprintForName.Name, amount, kit.Name); KitItem newItem; if (FindItem(kit, blueprintForName.Name, out newItem)) { newItem.Amount += amount; return; } newItem = new KitItem(blueprintForName.Name, amount); kit.Items.Add(newItem); break; case "removeitem": if (args.Length != 1) { SendMessage(player, InvalidArgs); return; } KitItem item; if (!FindItem(kit, args[0], out item)) { SendMessage(player, AKitItemNotFound, args[0]); return; } kit.Items.Remove(item); SendMessage(player, AKitItemRemoved, item.Name, kit.Name); break; } UpdateKitStacks(kit); }
public virtual KitItem DeleteKitItem(KitItem entity) { this.DeleteKitItem(entity.KitItemId); return(entity); }
public virtual Dictionary <string, Kit> Load() { var loadedKits = new Dictionary <string, Kit>(); if (!File.Exists(DataFilePath)) { File.Create(DataFilePath).Close(); LoadDefault(); } JArray kitArr; try { kitArr = JArray.Parse(File.ReadAllText(DataFilePath)); } catch (JsonReaderException ex) { UEssentials.Logger.LogError($"Invalid kit configuration ({DataFilePath})"); UEssentials.Logger.LogError(ex.ToString()); kitArr = new JArray(); } const StringComparison strCmp = StringComparison.InvariantCultureIgnoreCase; foreach (var kitObj in kitArr.Children <JObject>()) { var name = GetNotNullValue <string>(kitObj, "Name"); if (loadedKits.ContainsKey(name.ToLowerInvariant())) { UEssentials.Logger.LogWarning($"Duplicated kit name ({name})"); continue; } var kit = new Kit( name, GetValueOrDefault(kitObj, "Cooldown", 0u), GetValueOrDefault(kitObj, "Cost", 0m), GetValueOrDefault(kitObj, "ResetCooldownWhenDie", false) ); var itemIndex = 0; var economyHook = UEssentials.EconomyProvider; foreach (var itemObj in kitObj.GetValue("Items", strCmp).Children <JObject>()) { AbstractKitItem kitItem; JToken val; if ((val = itemObj.GetValue("money", strCmp)) != null) { if (!economyHook.IsPresent) { UEssentials.Logger.LogWarning("Cannot add 'Money' item because there is no active economy system."); continue; } kitItem = new KitItemMoney(val.Value <decimal>()); goto add; } if ((val = itemObj.GetValue("xp", strCmp)) != null) { kitItem = new KitItemExperience(val.Value <uint>()); goto add; } if ((val = itemObj.GetValue("vehicle", strCmp)) != null) { var vehicleId = val.Value <ushort>(); if (Assets.find(EAssetType.VEHICLE, vehicleId) == null) { UEssentials.Logger.LogWarning( $"Invalid vehicle id '{vehicleId}' in kit '{kit.Name}' at index {++itemIndex}"); continue; } kitItem = new KitItemVehicle(vehicleId); goto add; } var kitItemIdToken = itemObj.GetValue("id", strCmp); if (kitItemIdToken == null) { UEssentials.Logger.LogWarning($"Missing attribute 'Id' in kit '{kit.Name}' at index {++itemIndex}"); continue; } var kitItemId = kitItemIdToken.Value <ushort>(); var itemAsset = (ItemAsset)Assets.find(EAssetType.ITEM, kitItemId); if (itemAsset == null) { UEssentials.Logger.LogWarning($"Invalid item id '{kitItemId}' in kit '{kit.Name}' at index {++itemIndex}"); continue; } var tokKitItemDurability = itemObj.GetValue("Durability", strCmp); var tokKitItemAmount = itemObj.GetValue("Amount", strCmp); var tokAmmo = itemObj.GetValue("Ammo", strCmp); var kitItemAmount = tokKitItemAmount?.Value <byte>() ?? 1; var kitItemDurability = tokKitItemDurability?.Value <byte>() ?? 100; if (itemAsset is ItemGunAsset) // TODO: check { goto parseWeaponItem; } if (itemAsset is ItemMagazineAsset || itemAsset is ItemSupplyAsset) { var magazineAmmo = tokAmmo?.Value <byte>() ?? itemAsset.amount; kitItem = new KitItemMagazine(kitItemId, kitItemDurability, kitItemAmount, magazineAmmo); } else { kitItem = new KitItem(kitItemId, kitItemDurability, kitItemAmount); if (itemAsset is ItemFuelAsset) { var item = (KitItem)kitItem; ItemUtil.Refuel(item.Metadata, item.Id); } } goto add; parseWeaponItem: var tokFireMode = itemObj.GetValue("FireMode", strCmp); var tokBarrel = itemObj.GetValue("Barrel", strCmp); var tokSight = itemObj.GetValue("Sight", strCmp); var tokGrip = itemObj.GetValue("Grip", strCmp); var tokMagazine = itemObj.GetValue("Magazine", strCmp); var tokTactical = itemObj.GetValue("Tatical", strCmp) ?? itemObj.GetValue("Tactical", strCmp); EFiremode?fireMode = null; var ammo = tokAmmo?.Value <byte>() ?? null; if (tokFireMode != null) { try { fireMode = (EFiremode)Enum.Parse(typeof(EFiremode), tokFireMode.Value <string>(), true); } catch (ArgumentException) { UEssentials.Logger.LogWarning($"Invalid firemode '{tokFireMode.Value<string>()}' " + $"in kit '{kit.Name}', item '{itemIndex + 1}'!"); } } var weaponItem = new KitItemWeapon(kitItemId, kitItemDurability, kitItemAmount, ammo, fireMode ); Func <JToken, Attachment> deserializeAttach = json => { return(json == null ? null : JsonConvert.DeserializeObject <Attachment>(json.ToString())); }; weaponItem.Barrel = deserializeAttach(tokBarrel); weaponItem.Sight = deserializeAttach(tokSight); weaponItem.Tactical = deserializeAttach(tokTactical); weaponItem.Grip = deserializeAttach(tokGrip); weaponItem.Magazine = deserializeAttach(tokMagazine); kitItem = weaponItem; add: kit.Items.Add(kitItem); } loadedKits.Add(kit.Name.ToLowerInvariant(), kit); } return(loadedKits); }
public InvalidItem(KitData kit, KitItem item) { Kit = kit; Item = item; }
public KitItem UpdateKitItem(KitItem entity) { return(_iKitItemRepository.UpdateKitItem(entity)); }
public virtual Dictionary <string, Kit> Load() { var loadedKits = new Dictionary <string, Kit>(); if (!File.Exists(DataFilePath)) { File.Create(DataFilePath).Close(); LoadDefault(); } JArray kitArr; try { kitArr = JArray.Parse(File.ReadAllText(DataFilePath)); } catch (JsonReaderException ex) { UEssentials.Logger.LogError($"Invalid kit configuration ({DataFilePath})"); UEssentials.Logger.LogError(ex.Message); kitArr = JArray.Parse("[]"); } const StringComparison strCmp = StringComparison.InvariantCultureIgnoreCase; foreach (var kitObj in kitArr.Children <JObject>()) { var kit = new Kit( kitObj.GetValue("Name", strCmp).Value <string>(), kitObj.GetValue("Cooldown", strCmp).Value <uint>(), kitObj.GetValue("ResetCooldownWhenDie", strCmp).Value <bool>() ); var rawCost = kitObj.GetValue("Cost", strCmp); if (rawCost != null) { kit.Cost = rawCost.Value <decimal>(); } var itemIndex = 0; var economyHook = EssCore.Instance.HookManager.GetActiveByType <UconomyHook>(); foreach (var itemObj in kitObj.GetValue("items", strCmp).Children <JObject>()) { AbstractKitItem kitItem; if (itemObj.GetValue("money", strCmp) != null && economyHook.IsPresent) { kitItem = new KitItemMoney(itemObj.GetValue("money", strCmp).Value <decimal>()); goto add; } if (itemObj.GetValue("xp", strCmp) != null) { kitItem = new KitItemExperience(itemObj.GetValue("xp", strCmp).Value <uint>()); goto add; } if (itemObj.GetValue("vehicle", strCmp) != null) { var vehicleId = itemObj.GetValue("vehicle", strCmp).Value <ushort>(); if (Assets.find(EAssetType.VEHICLE, vehicleId) == null) { UEssentials.Logger.LogWarning($"Invalid vehicle id. Kit: {kit.Name} item Index: {itemIndex++}"); continue; } kitItem = new KitItemVehicle(vehicleId); goto add; } var tokKitItemId = itemObj.GetValue("id", strCmp); var tokKitItemDurability = itemObj.GetValue("Durability", strCmp); var tokKitItemAmount = itemObj.GetValue("Amount", strCmp); var tokAmmo = itemObj.GetValue("Ammo", strCmp); var itemAsset = (ItemAsset)Assets.find(EAssetType.ITEM, tokKitItemId?.Value <ushort>() ?? 0); if (tokKitItemId == null || itemAsset == null) { UEssentials.Logger.LogWarning($"Invalid item id. Kit: {kit.Name} item Index: {itemIndex++}"); continue; } var kitItemId = tokKitItemId.Value <ushort>(); var kitItemAmount = tokKitItemAmount?.Value <byte>() ?? 1; var kitItemDurability = tokKitItemDurability?.Value <byte>() ?? 100; if (itemAsset.UseableType == EUseableType.GUN) { goto weaponItem; } if (itemAsset is ItemMagazineAsset || itemAsset is ItemSupplyAsset) { kitItem = new KitItemMagazine(kitItemId, kitItemDurability, kitItemAmount, tokAmmo?.Value <byte>() ?? 1); } else { kitItem = new KitItem(kitItemId, kitItemDurability, kitItemAmount); if (itemAsset is ItemFuelAsset) { ((KitItem)kitItem).Metadata[0] = 1; } } goto add; weaponItem: var tokFireMode = itemObj.GetValue("FireMode", strCmp); var tokBarrel = itemObj.GetValue("Barrel", strCmp); var tokSight = itemObj.GetValue("Sight", strCmp); var tokGrip = itemObj.GetValue("Grip", strCmp); var tokMagazine = itemObj.GetValue("Magazine", strCmp); var tokTactical = itemObj.GetValue("Tatical", strCmp) ?? itemObj.GetValue("Tactical", strCmp); EFiremode?fireMode = null; var ammo = tokAmmo?.Value <byte>() ?? null; if (tokFireMode != null) { try { fireMode = (EFiremode)Enum.Parse(typeof(EFiremode), tokFireMode.Value <string>(), true); } catch (ArgumentException) { UEssentials.Logger.LogWarning($"Invalid firemode '{tokFireMode.Value<string>()}' " + $"in kit '{kit.Name}', item '{itemIndex + 1}'!"); } } kitItem = new KitItemWeapon(kitItemId, kitItemDurability, kitItemAmount, ammo, fireMode); var weaponItem = (KitItemWeapon)kitItem; Func <JToken, Attachment> deserializeAttach = json => { return(json == null ? null : JsonConvert.DeserializeObject <Attachment>(json.ToString())); }; weaponItem.Barrel = deserializeAttach(tokBarrel); weaponItem.Sight = deserializeAttach(tokSight); weaponItem.Tactical = deserializeAttach(tokTactical); weaponItem.Grip = deserializeAttach(tokGrip); weaponItem.Magazine = deserializeAttach(tokMagazine); add: kit.Items.Add(kitItem); } loadedKits.Add(kit.Name.ToLowerInvariant(), kit); } return(loadedKits); }
public virtual KitItem InsertKitItem(KitItem entity) { KitItem other = new KitItem(); other = entity; if (entity.IsTransient()) { string sql = @"Insert into KitItem ( [KitItemGUID] ,[KitGroupID] ,[Name] ,[Description] ,[PriceDelta] ,[WeightDelta] ,[IsDefault] ,[DisplayOrder] ,[ExtensionData] ,[TextOptionMaxLength] ,[TextOptionWidth] ,[TextOptionHeight] ,[InventoryVariantID] ,[InventoryQuantityDelta] ,[InventoryVariantColor] ,[InventoryVariantSize] ,[CreatedOn] ) Values ( @KitItemGUID , @KitGroupID , @Name , @Description , @PriceDelta , @WeightDelta , @IsDefault , @DisplayOrder , @ExtensionData , @TextOptionMaxLength , @TextOptionWidth , @TextOptionHeight , @InventoryVariantID , @InventoryQuantityDelta , @InventoryVariantColor , @InventoryVariantSize , @CreatedOn ); Select scope_identity()" ; SqlParameter[] parameterArray = new SqlParameter[] { new SqlParameter("@KitItemID", entity.KitItemId) , new SqlParameter("@KitItemGUID", entity.KitItemGuid) , new SqlParameter("@KitGroupID", entity.KitGroupId) , new SqlParameter("@Name", entity.Name) , new SqlParameter("@Description", entity.Description ?? (object)DBNull.Value) , new SqlParameter("@PriceDelta", entity.PriceDelta) , new SqlParameter("@WeightDelta", entity.WeightDelta) , new SqlParameter("@IsDefault", entity.IsDefault) , new SqlParameter("@DisplayOrder", entity.DisplayOrder) , new SqlParameter("@ExtensionData", entity.ExtensionData ?? (object)DBNull.Value) , new SqlParameter("@TextOptionMaxLength", entity.TextOptionMaxLength ?? (object)DBNull.Value) , new SqlParameter("@TextOptionWidth", entity.TextOptionWidth ?? (object)DBNull.Value) , new SqlParameter("@TextOptionHeight", entity.TextOptionHeight ?? (object)DBNull.Value) , new SqlParameter("@InventoryVariantID", entity.InventoryVariantId ?? (object)DBNull.Value) , new SqlParameter("@InventoryQuantityDelta", entity.InventoryQuantityDelta) , new SqlParameter("@InventoryVariantColor", entity.InventoryVariantColor ?? (object)DBNull.Value) , new SqlParameter("@InventoryVariantSize", entity.InventoryVariantSize ?? (object)DBNull.Value) , new SqlParameter("@CreatedOn", entity.CreatedOn) }; var identity = SqlHelper.ExecuteScalar(this.ConnectionString, CommandType.Text, sql, parameterArray); if (identity == DBNull.Value) { throw new DataException("Identity column was null as a result of the insert operation."); } return(GetKitItem(Convert.ToInt32(identity))); } return(entity); }