protected override void OnTarget(Mobile from, object target) { Mobile mob = target as Mobile; if (mob == null || mob.NetState == null) { from.SendMessage("You must target a Mobile with a NetState!"); return; } if (Command == LogPacketCommandType.StartLogging) { mob.NetState.LogPackets = true; mob.SendEverything(); } else if (Command == LogPacketCommandType.Execute) { mob.NetState.LogPackets = false; new LogExecuteTimer(mob.NetState); } else if (Command == LogPacketCommandType.SendOne) { if (mob.NetState.Logger != null && mob.NetState.Logger.Packets.Count > 0) { PacketSimulation sim = mob.NetState.Logger.Packets.Dequeue(); sim.Process(mob.NetState); } else { from.SendMessage("No logged packets to send!"); } } else if (Command == LogPacketCommandType.Delete) { if (mob.NetState.Logger != null && mob.NetState.Logger.Packets.Count > 0) { mob.NetState.Logger.Packets.Clear(); } mob.NetState.LogPackets = false; } }
protected override void OnTick() { try { if (State == null || State.Logger == null || State.Logger.Packets.Count == 0) { Stop(); return; } PacketSimulation sim = State.Logger.Packets.Peek(); if (DateTime.UtcNow > sim.ProcessedTime + TimeDifference) { State.Logger.Packets.Dequeue(); sim.Process(State); } } catch (Exception e) { Console.WriteLine("PacketLogExecute error: " + e.Message); Console.WriteLine(e.StackTrace); Stop(); } }