private void OnNpcFish(PacketReceiveEvent <NpcFish> evt) { var packet = evt.Packet; var position = new Vector2f(16 * packet.X, 16 * packet.Y); _events.Forward(evt, new NpcFishEvent(evt.Sender, position, packet.Id), _log); }
private void OnNpcAddBuff(PacketReceiveEvent <NpcAddBuff> evt) { var packet = evt.Packet; var buff = new Buff(packet.Id, packet.Ticks); _events.Forward(evt, new NpcAddBuffEvent(this[packet.NpcIndex], evt.Sender, buff), _log); }
private void OnChestInventory(PacketReceiveEvent <ChestInventory> evt) { var packet = evt.Packet; var item = new ItemStack(packet.Id, packet.Prefix, packet.StackSize); _events.Forward(evt, new ChestInventoryEvent(this[packet.ChestIndex], evt.Sender, packet.Slot, item), _log); }
private void PacketReceive_EventCanceled <TPacket, TEvent>(TPacket packet, IPlayer sender) where TPacket : IPacket where TEvent : Event { Action <PacketReceiveEvent <TPacket> >?registeredHandler = null; var events = Mock.Of <IEventManager>(); var log = Mock.Of <ILogger>(); Mock.Get(events) .Setup(em => em.RegisterHandler(It.IsAny <Action <PacketReceiveEvent <TPacket> > >(), log)) .Callback <Action <PacketReceiveEvent <TPacket> >, ILogger>( (handler, log) => registeredHandler = handler); using var signService = new OrionSignService(events, log); var evt = new PacketReceiveEvent <TPacket>(packet, sender); Mock.Get(events) .Setup(em => em.Raise(It.IsAny <TEvent>(), log)) .Callback <TEvent, ILogger>((evt, log) => evt.Cancel()); Assert.NotNull(registeredHandler); registeredHandler !(evt); Assert.True(evt.IsCanceled); Mock.Get(events).VerifyAll(); }
private void PacketReceive_EventTriggered <TPacket, TEvent>( TPacket packet, IPlayer sender, Expression <Func <TEvent, bool> > match) where TPacket : IPacket where TEvent : Event { Action <PacketReceiveEvent <TPacket> >?registeredHandler = null; var events = Mock.Of <IEventManager>(); var log = Mock.Of <ILogger>(); Mock.Get(events) .Setup(em => em.RegisterHandler(It.IsAny <Action <PacketReceiveEvent <TPacket> > >(), log)) .Callback <Action <PacketReceiveEvent <TPacket> >, ILogger>( (handler, log) => registeredHandler = handler); using var world = new OrionWorld(events, log); var evt = new PacketReceiveEvent <TPacket>(packet, sender); Mock.Get(events) .Setup(em => em.Raise(It.Is(match), log)); Assert.NotNull(registeredHandler); registeredHandler !(evt); Mock.Get(events).VerifyAll(); }
private void OnSignRead(PacketReceiveEvent <SignRead> evt) { var packet = evt.Packet; var sign = FindSign(packet.X, packet.Y); if (sign is null) { return; } _events.Forward(evt, new SignReadEvent(sign, evt.Sender), _log); }
private void OnChestOpen(PacketReceiveEvent <ChestOpen> evt) { var packet = evt.Packet; var chest = FindChest(packet.X, packet.Y); if (chest is null) { return; } _events.Forward(evt, new ChestOpenEvent(chest, evt.Sender), _log); }
private void HandleRead() { while (listening) { string inn = In.ReadLine(); if (inn.EndsWith("\n")) { inn = inn.Substring(0, inn.Length - 1); } byte[] data = Constants.ENCODING.GetBytes(inn); byte header = data[0]; bool send = (header >> 7 == 1); if (!send) { byte id = (byte)(header & 0x0111111); byte[] restOfData = new byte[data.Length - 1]; for (int i = 1; i < data.Length; i++) { restOfData[i - 1] = data[i]; } switch (id) { case 0x00000001: MessageBox.Show("Ping Recieved!"); break; case 0x00000010: PacketReceiveEvent.Invoke(this, new PacketReceiveEventArgs(new PacketMessageReceive(restOfData))); break; } } } }
private void OnNpcCatch(PacketReceiveEvent <NpcCatch> evt) { var packet = evt.Packet; _events.Forward(evt, new NpcCatchEvent(this[packet.NpcIndex], evt.Sender), _log); }