Files
Beyhan Oğur d5f52cc3d3 first commit
2026-09-03 04:45:36 +03:00

524 lines
18 KiB
C#

//TODO
//using System.Collections.Generic;
//using System.Collections.ObjectModel;
//using System.Diagnostics;
//using System.IO;
//using System.Linq;
//using System.Threading;
//using Assistant;
//using ClassicAssist.Data.Autoloot;
//using ClassicAssist.UO.Data;
//using ClassicAssist.UO.Network;
//using ClassicAssist.UO.Network.PacketFilter;
//using ClassicAssist.UO.Objects;
//using Microsoft.VisualStudio.TestTools.UnitTesting;
//namespace ClassicAssist.Tests.Agents
//{
// [TestClass]
// public class AutolootTests
// {
// [TestMethod]
// public void WillRehueMatchingItemProperties()
// {
// const string localPath = @"C:\Users\johns\Desktop\KvG Client 2.0";
// if ( !Directory.Exists( localPath ) )
// {
// Debug.WriteLine( "Not running test, requires Cliloc.enu" );
// return;
// }
// Cliloc.Initialize( localPath );
// Item corpse = new Item( 0x40000000 ) { ID = 0x2006 };
// Engine.Items.Add( corpse );
// IncomingPacketHandlers.Initialize();
// AutolootViewModel vm = new AutolootViewModel { Enabled = true };
// AutolootEntry lootEntry = new AutolootEntry
// {
// Rehue = true,
// Autoloot = false,
// Constraints = new ObservableCollection<AutolootConstraintEntry>(),
// ID = 0x108a
// };
// AutolootConstraintEntry constraintEntry = new AutolootConstraintEntry
// {
// Property = vm.Constraints.FirstOrDefault( c => c.Name == "Faster Casting" ),
// Operator = AutolootOperator.GreaterThan,
// Value = 1
// };
// lootEntry.Constraints.Add( constraintEntry );
// vm.Items.Add( lootEntry );
// Engine.PacketWaitEntries = new PacketWaitEntries();
// AutoResetEvent are = new AutoResetEvent( false );
// void OnPacketReceivedEvent( byte[] data, int length )
// {
// if ( data[0] == 0x25 )
// {
// are.Set();
// }
// else
// {
// Assert.Fail();
// }
// }
// Engine.InternalPacketReceivedEvent += OnPacketReceivedEvent;
// Engine.PacketWaitEntries.WaitEntryAddedEvent += entry =>
// {
// byte[] containerContentsPacket =
// {
// 0x3C, 0x00, 0x19, 0x00, 0x01, 0x43, 0x13, 0xFC, 0x5E, 0x10, 0x8A, 0x00, 0x00, 0x01, 0x00, 0x13,
// 0x00, 0x82, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00
// };
// PacketHandler handler = IncomingPacketHandlers.GetHandler( 0x3C );
// handler.OnReceive( new PacketReader( containerContentsPacket, containerContentsPacket.Length, false ) );
// entry.Packet = containerContentsPacket;
// entry.Lock.Set();
// byte[] propertiesPacket =
// {
// 0xD6, 0x00, 0x53, 0x00, 0x01, 0x43, 0x13, 0xFC, 0x5E, 0x00, 0x00, 0x01, 0x6E, 0x08, 0xB4, 0x00,
// 0x0F, 0xA0, 0xEA, 0x00, 0x00, 0x00, 0x10, 0x5E, 0x94, 0x00, 0x02, 0x31, 0x00, 0x00, 0x10, 0x2E,
// 0x64, 0x00, 0x14, 0x23, 0x00, 0x31, 0x00, 0x30, 0x00, 0x34, 0x00, 0x34, 0x00, 0x30, 0x00, 0x38,
// 0x00, 0x35, 0x00, 0x09, 0x00, 0x39, 0x00, 0x00, 0x10, 0x2E, 0x3C, 0x00, 0x02, 0x32, 0x00, 0x00,
// 0x10, 0x2E, 0x3D, 0x00, 0x02, 0x31, 0x00, 0x00, 0x10, 0x2E, 0x83, 0x00, 0x02, 0x34, 0x00, 0x00,
// 0x00, 0x00, 0x00
// };
// handler = IncomingPacketHandlers.GetHandler( 0xD6 );
// handler.OnReceive( new PacketReader( propertiesPacket, propertiesPacket.Length, false ) );
// };
// vm.OnCorpseEvent( corpse.Serial );
// bool result = are.WaitOne( 5000 );
// Assert.IsTrue( result );
// Engine.Items.Clear();
// Engine.PacketWaitEntries = null;
// Engine.InternalPacketReceivedEvent -= OnPacketReceivedEvent;
// }
// [TestMethod]
// public void WillRehueMatchingObjectProperties()
// {
// Item corpse = new Item( 0x40000000 ) { ID = 0x2006 };
// Engine.Items.Add( corpse );
// IncomingPacketHandlers.Initialize();
// AutolootViewModel vm = new AutolootViewModel { Enabled = true };
// AutolootEntry lootEntry = new AutolootEntry
// {
// Rehue = true,
// Autoloot = false,
// Constraints = new ObservableCollection<AutolootConstraintEntry>(),
// ID = 0x108a
// };
// AutolootConstraintEntry autolootConstraint = new AutolootConstraintEntry
// {
// Property = vm.Constraints.FirstOrDefault( c => c.Name == "Hue" ),
// Operator = AutolootOperator.Equal,
// Value = 0
// };
// lootEntry.Constraints.Add( autolootConstraint );
// vm.Items.Add( lootEntry );
// Engine.PacketWaitEntries = new PacketWaitEntries();
// AutoResetEvent are = new AutoResetEvent( false );
// void OnPacketReceivedEvent( byte[] data, int length )
// {
// if ( data[0] == 0x25 )
// {
// are.Set();
// }
// else
// {
// Assert.Fail();
// }
// }
// Engine.InternalPacketReceivedEvent += OnPacketReceivedEvent;
// Engine.PacketWaitEntries.WaitEntryAddedEvent += entry =>
// {
// byte[] containerContentsPacket =
// {
// 0x3C, 0x00, 0x19, 0x00, 0x01, 0x43, 0x13, 0xFC, 0x5E, 0x10, 0x8A, 0x00, 0x00, 0x01, 0x00, 0x13,
// 0x00, 0x82, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00
// };
// PacketHandler handler = IncomingPacketHandlers.GetHandler( 0x3C );
// handler.OnReceive( new PacketReader( containerContentsPacket, containerContentsPacket.Length, false ) );
// entry.Packet = containerContentsPacket;
// entry.Lock.Set();
// };
// vm.OnCorpseEvent( corpse.Serial );
// bool result = are.WaitOne( 5000 );
// Assert.IsTrue( result );
// Engine.Items.Clear();
// Engine.PacketWaitEntries = null;
// Engine.InternalPacketReceivedEvent -= OnPacketReceivedEvent;
// }
// [TestMethod]
// public void WillLootMatchingObjectProperties()
// {
// const string localPath = @"C:\Users\johns\Desktop\KvG Client 2.0";
// if ( !Directory.Exists( localPath ) )
// {
// Debug.WriteLine( "Not running test, requires Cliloc.enu" );
// return;
// }
// TileData.Initialize( localPath );
// Engine.Player = new PlayerMobile( 0x01 );
// Item backpack = new Item( 0x40000001, 0x01 ) { Container = new ItemCollection( 0x40000001 ) };
// Engine.Player.SetLayer( Layer.Backpack, backpack.Serial );
// Engine.Items.Add( backpack );
// Item corpse = new Item( 0x40000000 ) { ID = 0x2006 };
// Engine.Items.Add( corpse );
// IncomingPacketHandlers.Initialize();
// AutolootViewModel vm = new AutolootViewModel { Enabled = true };
// AutolootEntry lootEntry = new AutolootEntry
// {
// Rehue = false,
// Autoloot = true,
// Constraints = new ObservableCollection<AutolootConstraintEntry>(),
// ID = 0x108a
// };
// AutolootConstraintEntry autolootConstraint = new AutolootConstraintEntry
// {
// Property = vm.Constraints.FirstOrDefault( c => c.Name == "ID" ),
// Operator = AutolootOperator.Equal,
// Value = 0x108a
// };
// lootEntry.Constraints.Add( autolootConstraint );
// vm.Items.Add( lootEntry );
// Engine.PacketWaitEntries = new PacketWaitEntries();
// AutoResetEvent are = new AutoResetEvent( false );
// void OnPacketSentEvent( byte[] data, int length )
// {
// if ( data[0] == 0x07 || data[0] == 0x08 )
// {
// are.Set();
// }
// else if ( data[0] == 0xD6 || data[0] == 0x06 )
// {
// }
// else
// {
// Assert.Fail();
// }
// }
// Engine.InternalPacketSentEvent += OnPacketSentEvent;
// Engine.PacketWaitEntries.WaitEntryAddedEvent += entry =>
// {
// byte[] containerContentsPacket =
// {
// 0x3C, 0x00, 0x19, 0x00, 0x01, 0x43, 0x13, 0xFC, 0x5E, 0x10, 0x8A, 0x00, 0x00, 0x01, 0x00, 0x13,
// 0x00, 0x82, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x64
// };
// PacketHandler handler = IncomingPacketHandlers.GetHandler( 0x3C );
// handler.OnReceive( new PacketReader( containerContentsPacket, containerContentsPacket.Length, false ) );
// entry.Packet = containerContentsPacket;
// entry.Lock.Set();
// };
// vm.OnCorpseEvent( corpse.Serial );
// bool result = are.WaitOne( 5000 );
// Assert.IsTrue( result );
// Engine.Items.Clear();
// Engine.PacketWaitEntries = null;
// Engine.InternalPacketSentEvent -= OnPacketSentEvent;
// Engine.Player = null;
// }
// [TestMethod]
// public void WontLootDisabledInGuardzone()
// {
// const string localPath = @"C:\Users\johns\Desktop\KvG Client 2.0";
// if ( !Directory.Exists( localPath ) )
// {
// Debug.WriteLine( "Not running test, requires Cliloc.enu" );
// return;
// }
// TileData.Initialize( localPath );
// Engine.Player = new PlayerMobile( 0x01 ) { X = 652, Y = 869 };
// Item backpack = new Item( 0x40000001, 0x01 ) { Container = new ItemCollection( 0x40000001 ) };
// Engine.Player.SetLayer( Layer.Backpack, backpack.Serial );
// Engine.Items.Add( backpack );
// Item corpse = new Item( 0x40000000 ) { ID = 0x2006 };
// Engine.Items.Add( corpse );
// IncomingPacketHandlers.Initialize();
// AutolootViewModel vm = new AutolootViewModel { Enabled = true, DisableInGuardzone = true };
// AutolootEntry lootEntry = new AutolootEntry
// {
// Rehue = false,
// Autoloot = true,
// Constraints = new ObservableCollection<AutolootConstraintEntry>(),
// ID = 0x108a
// };
// AutolootConstraintEntry autolootConstraint = new AutolootConstraintEntry
// {
// Property = vm.Constraints.FirstOrDefault( c => c.Name == "Hue" ),
// Operator = AutolootOperator.Equal,
// Value = 0
// };
// lootEntry.Constraints.Add( autolootConstraint );
// vm.Items.Add( lootEntry );
// Engine.PacketWaitEntries = new PacketWaitEntries();
// void OnPacketSentEvent( byte[] data, int length )
// {
// if ( data[0] == 0xD6 || data[0] == 0x06 )
// {
// return;
// }
// Assert.Fail();
// }
// Engine.InternalPacketSentEvent += OnPacketSentEvent;
// Engine.PacketWaitEntries.WaitEntryAddedEvent += entry =>
// {
// byte[] containerContentsPacket =
// {
// 0x3C, 0x00, 0x19, 0x00, 0x01, 0x43, 0x13, 0xFC, 0x5E, 0x10, 0x8A, 0x00, 0x00, 0x01, 0x00, 0x13,
// 0x00, 0x82, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00
// };
// PacketHandler handler = IncomingPacketHandlers.GetHandler( 0x3C );
// handler.OnReceive( new PacketReader( containerContentsPacket, containerContentsPacket.Length, false ) );
// entry.Packet = containerContentsPacket;
// entry.Lock.Set();
// };
// vm.OnCorpseEvent( corpse.Serial );
// Engine.Items.Clear();
// Engine.PacketWaitEntries = null;
// Engine.InternalPacketSentEvent -= OnPacketSentEvent;
// Engine.Player = null;
// }
// [TestMethod]
// public void WontRehueNotEnabledEntry()
// {
// Item corpse = new Item( 0x40000000 ) { ID = 0x2006 };
// Engine.Items.Add( corpse );
// IncomingPacketHandlers.Initialize();
// AutolootViewModel vm = new AutolootViewModel { Enabled = true };
// AutolootEntry lootEntry = new AutolootEntry
// {
// Rehue = true,
// Autoloot = false,
// Constraints = new ObservableCollection<AutolootConstraintEntry>(),
// ID = 0x108a,
// Enabled = false
// };
// vm.Items.Add( lootEntry );
// Engine.PacketWaitEntries = new PacketWaitEntries();
// void OnPacketReceivedEvent( byte[] data, int length )
// {
// Assert.Fail();
// }
// Engine.InternalPacketReceivedEvent += OnPacketReceivedEvent;
// Engine.PacketWaitEntries.WaitEntryAddedEvent += entry =>
// {
// byte[] containerContentsPacket =
// {
// 0x3C, 0x00, 0x19, 0x00, 0x01, 0x43, 0x13, 0xFC, 0x5E, 0x10, 0x8A, 0x00, 0x00, 0x01, 0x00, 0x13,
// 0x00, 0x82, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00
// };
// PacketHandler handler = IncomingPacketHandlers.GetHandler( 0x3C );
// handler.OnReceive( new PacketReader( containerContentsPacket, containerContentsPacket.Length, false ) );
// entry.Packet = containerContentsPacket;
// entry.Lock.Set();
// };
// vm.OnCorpseEvent( corpse.Serial );
// Engine.Items.Clear();
// Engine.PacketWaitEntries = null;
// Engine.InternalPacketReceivedEvent -= OnPacketReceivedEvent;
// }
// [TestMethod]
// public void WontRehueNotEnabled()
// {
// Item corpse = new Item( 0x40000000 ) { ID = 0x2006 };
// Engine.Items.Add( corpse );
// IncomingPacketHandlers.Initialize();
// AutolootViewModel vm = new AutolootViewModel { Enabled = true };
// AutolootEntry lootEntry = new AutolootEntry
// {
// Rehue = true,
// Autoloot = false,
// Constraints = new ObservableCollection<AutolootConstraintEntry>(),
// ID = 0x108a,
// Enabled = true
// };
// vm.Items.Add( lootEntry );
// vm.Enabled = false;
// Engine.PacketWaitEntries = new PacketWaitEntries();
// void OnPacketReceivedEvent( byte[] data, int length )
// {
// Assert.Fail();
// }
// Engine.InternalPacketReceivedEvent += OnPacketReceivedEvent;
// Engine.PacketWaitEntries.WaitEntryAddedEvent += entry =>
// {
// byte[] containerContentsPacket =
// {
// 0x3C, 0x00, 0x19, 0x00, 0x01, 0x43, 0x13, 0xFC, 0x5E, 0x10, 0x8A, 0x00, 0x00, 0x01, 0x00, 0x13,
// 0x00, 0x82, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00
// };
// PacketHandler handler = IncomingPacketHandlers.GetHandler( 0x3C );
// handler.OnReceive( new PacketReader( containerContentsPacket, containerContentsPacket.Length, false ) );
// entry.Packet = containerContentsPacket;
// entry.Lock.Set();
// };
// vm.OnCorpseEvent( corpse.Serial );
// Engine.Items.Clear();
// Engine.PacketWaitEntries = null;
// Engine.InternalPacketReceivedEvent -= OnPacketReceivedEvent;
// }
// [TestMethod]
// public void WontMatchNotIncluded()
// {
// PropertyEntry property1 = new PropertyEntry { ClilocIndex = -1, Clilocs = new[] { 1 }, Name = "Test" };
// PropertyEntry property2 = new PropertyEntry { ClilocIndex = -1, Clilocs = new[] { 2 }, Name = "Test 2" };
// ItemCollection container = new ItemCollection( 2 )
// {
// new Item( 1 ) { Properties = new[] { new Property { Cliloc = 1, Text = "Test" } } }
// };
// AutolootEntry filter = new AutolootEntry
// {
// Constraints = new ObservableCollection<AutolootConstraintEntry>
// {
// new AutolootConstraintEntry
// {
// Operator = AutolootOperator.Equal, Property = property1, Value = 0
// }
// }
// };
// IEnumerable<Item> matchItems = AutolootHelpers.AutolootFilter( container.GetItems(), filter );
// Assert.IsTrue( matchItems.Any() );
// container.Clear();
// container.Add( new Item( 3 )
// {
// Properties = new[]
// {
// new Property { Cliloc = 1, Text = "Test" }, new Property { Cliloc = 2, Text = "Test 2" }
// }
// } );
// filter.Constraints.Add( new AutolootConstraintEntry
// {
// Operator = AutolootOperator.NotPresent, Property = property2, Value = 0
// } );
// matchItems = AutolootHelpers.AutolootFilter( container.GetItems(), filter );
// Assert.IsTrue( !matchItems.Any() );
// Engine.Items.Clear();
// }
// [TestCleanup]
// public void Cleanup()
// {
// ActionPacketQueue.Clear();
// }
// }
//}