public void EventOnInventoryItemAdded(string containerId, byte containerType, List <IInventoryObject> addedObjects) { //GetInventory().TryGetItem() List <Hashtable> items = new List <Hashtable>(); foreach (var addedObj in addedObjects) { ServerInventoryItem resultItem = null; if (this.Inventory.TryGetItem(addedObj.Type, addedObj.Id, out resultItem)) { items.Add(resultItem.GetInfo()); } } Hashtable eventData = new Hashtable(); eventData.Add((int)SPC.Target, containerId); eventData.Add((int)SPC.TargetType, containerType); eventData.Add((int)SPC.Items, items.ToArray()); var eventInstance = new ItemGeneric { ItemId = Avatar.Id, ItemType = Avatar.Type, CustomEventCode = (byte)CustomEventCode.InventoryItemsAdded, EventData = eventData, GameReferenceId = nebulaObject.Id, CharacterId = mCharacter.characterId }; var eData = new EventData((byte)EventCode.ItemGeneric, eventInstance); SendParameters sendParameters = new SendParameters { Unreliable = true, ChannelId = Settings.ItemEventChannel }; ((IMmoItem)Avatar).ReceiveEvent(eData, sendParameters); }