first commit

This commit is contained in:
Beyhan Oğur
2026-09-03 04:45:36 +03:00
commit d5f52cc3d3
1038 changed files with 169579 additions and 0 deletions
@@ -0,0 +1,107 @@
using System;
using System.Linq;
using ClassicAssist.Shared;
using ClassicAssist.Shared.Resources;
using ClassicAssist.UO.Network.PacketFilter;
using ClassicAssist.UO.Network.Packets;
using ClassicAssist.UO.Objects;
using UOC = ClassicAssist.Shared.UO.Commands;
namespace ClassicAssist.Data.Macros.Commands
{
public static class PropertiesCommands
{
[CommandsDisplay( Category = nameof( Strings.Properties ),
Parameters = new[] { nameof( ParameterType.SerialOrAlias ), nameof( ParameterType.Timeout ) } )]
public static bool WaitForProperties( object obj, int timeout )
{
int serial = AliasCommands.ResolveSerial( obj );
if ( serial == 0 )
{
UOC.SystemMessage( Strings.Invalid_or_unknown_object_id );
return false;
}
PacketFilterInfo pfi = new PacketFilterInfo( 0xD6,
new[] { PacketFilterConditions.IntAtPositionCondition( serial, 5 ) } );
PacketWaitEntry we = Engine.PacketWaitEntries.Add( pfi, PacketDirection.Incoming, true );
Engine.SendPacketToServer( new BatchQueryProperties( serial ) );
try
{
bool result = we.Lock.WaitOne( timeout );
return result;
}
finally
{
Engine.PacketWaitEntries.Remove( we );
}
}
[CommandsDisplay( Category = nameof( Strings.Properties ),
Parameters = new[] { nameof( ParameterType.SerialOrAlias ), nameof( ParameterType.String ) } )]
public static bool Property( object obj, string value )
{
int serial = AliasCommands.ResolveSerial( obj );
if ( serial == 0 )
{
UOC.SystemMessage( Strings.Invalid_or_unknown_object_id );
return false;
}
Entity entity = (Entity) Engine.Items.GetItem( serial ) ?? Engine.Mobiles.GetMobile( serial );
if ( entity?.Properties != null )
{
return entity.Properties.Any( pe => pe.Text.ToLower().Contains( value.ToLower() ) );
}
UOC.SystemMessage( Strings.Item_properties_null_or_not_loaded___ );
return false;
}
[CommandsDisplay( Category = nameof( Strings.Properties ),
Parameters = new[]
{
nameof( ParameterType.SerialOrAlias ), nameof( ParameterType.String ),
nameof( ParameterType.IntegerValue )
} )]
public static T PropertyValue<T>( object obj, string property, int argument = 0 )
{
int serial = AliasCommands.ResolveSerial( obj );
if ( serial == 0 )
{
UOC.SystemMessage( Strings.Invalid_or_unknown_object_id );
return default;
}
Entity entity = (Entity) Engine.Items.GetItem( serial ) ?? Engine.Mobiles.GetMobile( serial );
if ( entity?.Properties != null )
{
Property p = entity.Properties.FirstOrDefault( pe => pe.Text.ToLower().Contains( property.ToLower() ) );
if ( p == null )
{
return default;
}
if ( p.Arguments[0].Trim().Equals( string.Empty ) )
{
return default;
}
return (T) Convert.ChangeType( p?.Arguments?[argument], typeof( T ) );
}
UOC.SystemMessage( Strings.Item_properties_null_or_not_loaded___ );
return default;
}
}
}