internal UserItem AddNewItem(UInt32 Id, UInt32 BaseItem, string ExtraData, uint Group, bool insert, bool fromRoom, int limno, int limtot, UInt32 songID = 0) { isUpdated = false; if (insert) { if (fromRoom) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("UPDATE items SET room_id='' WHERE id=" + Id + " LIMIT 1"); } Item baseItem = SilverwaveEnvironment.GetGame().GetItemManager().GetItem(BaseItem); if (baseItem != null && baseItem.InteractionType == InteractionType.musicdisc) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("DELETE FROM room_items_songs WHERE item_id = " + Id); } } } else { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("INSERT INTO items (base_item, user_id) VALUES (" + BaseItem + ", " + UserId + ")"); Id = (uint)dbClient.insertQuery(); SendNewItems(Convert.ToInt32(Id)); if(Group > 0) dbClient.runFastQuery("INSERT INTO items_groups VALUES (" + Id + ", " + Group + ")"); if (!string.IsNullOrEmpty(ExtraData)) { dbClient.setQuery("UPDATE items SET extra_data=@extradata WHERE id=" + Id + " LIMIT 1"); dbClient.addParameter("extradata", ExtraData); dbClient.runQuery(); } if (limno > 0) { // dbClient.runFastQuery("INSERT INTO items_limited VALUES (" + Id + ", " + limno + ", " + limtot + ")"); } } } } UserItem ItemToAdd = new UserItem(Id, BaseItem, ExtraData, Group); if (UserHoldsItem(Id)) { RemoveItem(Id, false); } if (ItemToAdd.GetBaseItem().InteractionType == InteractionType.musicdisc) discs.Add(ItemToAdd.Id, ItemToAdd); if (ItemToAdd.isWallItem) wallItems.Add(ItemToAdd.Id, ItemToAdd); else floorItems.Add(ItemToAdd.Id, ItemToAdd); if (mRemovedItems.Contains(Id)) mRemovedItems.Remove(Id); if (!mAddedItems.ContainsKey(Id)) mAddedItems.Add(Id, ItemToAdd); return ItemToAdd; //Console.WriteLine("Item added: " + BaseItem); }
internal void OfferItem(UInt32 UserId, UserItem Item) { TradeUser User = GetTradeUser(UserId); if (User == null || Item == null || !Item.GetBaseItem().AllowTrade || User.HasAccepted || TradeStage != 1) { return; } ClearAccepted(); if(!User.OfferedItems.Contains(Item)) User.OfferedItems.Add(Item); UpdateTradeWindow(); }
public SongItem(UserItem item) { this.itemID = item.Id; this.songID = TextHandling.Parse(item.ExtraData); this.baseItem = item.GetBaseItem(); }