/// <summary> /// Calls <see cref="ClientInterestArea.OnItemUnsubscribed">ClientInterestArea.OnItemUnsubscribed</see> and sends event <see cref="ItemUnsubscribed"/> to the client. /// </summary> /// <param name="item"> /// The mmo item. /// </param> protected override void OnItemUnsubscribed(Item item) { base.OnItemUnsubscribed(item); var unsubscribeEvent = new ItemUnsubscribed { ItemId = item.Id, ItemType = item.Type, InterestAreaId = this.Id }; var eventData = new EventData((byte)EventCode.ItemUnsubscribed, unsubscribeEvent); this.Peer.SendEvent(eventData, new SendParameters { ChannelId = Settings.ItemEventChannel }); }
/// <summary> /// Notifies peer about item exited area. /// </summary> public override void OnItemExit(Item item) { base.OnItemExit(item); var unsubscribeEvent = new ItemUnsubscribed { ItemId = item.Id, InterestAreaId = this.Id }; var eventData = new EventData((byte)EventCode.ItemUnsubscribed, unsubscribeEvent); this.peer.SendEvent(eventData, new SendParameters { ChannelId = Settings.ItemEventChannel }); }
protected override void OnItemUnsubscribed(Item item) { //ConsoleLogging.Get.Print("ON PLAYER ITEM UNSUBSSCRIBED: {0}, {1}", item.Id.Substring(0, 3), (ItemType)item.Type); base.OnItemUnsubscribed(item); var unsubscribeEvent = new ItemUnsubscribed { ItemId = item.Id, ItemType = item.Type, InterestAreaId = this.Id }; var eventData = new EventData((byte)EventCode.ItemUnsubscribed, unsubscribeEvent); this.Peer.SendEvent(eventData, new SendParameters { ChannelId = Settings.ItemEventChannel }); }
private OperationResponse ItemOperationUnsubscribeItem(Item item, UnsubscribeItem operation) { if (item.Disposed) { return(operation.GetOperationResponse((int)ReturnCode.ItemNotFound, "ItemNotFound")); } this.interestItems.UnsubscribeItem(item); var unsubscribeEvent = new ItemUnsubscribed { ItemId = item.Id }; var eventData = new EventData((byte)EventCode.ItemUnsubscribed, unsubscribeEvent); this.Peer.SendEvent(eventData, new SendParameters { ChannelId = Settings.ItemEventChannel }); // don't send response operation.OnComplete(); return(null); }