2013-10-28 07:09:42 +00:00
using System ;
using System.Collections ;
namespace Server.Commands.Generic
{
public class RegionCommandImplementor : BaseCommandImplementor
{
public RegionCommandImplementor ( )
{
2020-04-16 21:29:55 -04:00
Accessors = new string [ ] { "Region" } ;
SupportRequirement = CommandSupport . Region ;
SupportsConditionals = true ;
AccessLevel = AccessLevel . GameMaster ;
Usage = "Region <command> [condition]" ;
Description = "Invokes the command on all appropriate mobiles in your current region. Optional condition arguments can further restrict the set of objects." ;
2013-10-28 07:09:42 +00:00
}
public override void Compile ( Mobile from , BaseCommand command , ref string [ ] args , ref object obj )
{
try
{
Extensions ext = Extensions . Parse ( from , ref args ) ;
bool items , mobiles ;
2020-04-16 21:29:55 -04:00
if ( ! CheckObjectTypes ( from , command , ext , out items , out mobiles ) )
2013-10-28 07:09:42 +00:00
return ;
Region reg = from . Region ;
ArrayList list = new ArrayList ( ) ;
if ( mobiles )
{
foreach ( Mobile mob in reg . GetMobiles ( ) )
{
if ( ! BaseCommand . IsAccessible ( from , mob ) )
continue ;
if ( ext . IsValid ( mob ) )
list . Add ( mob ) ;
}
}
else
{
command . LogFailure ( "This command does not support items." ) ;
return ;
}
ext . Filter ( list ) ;
obj = list ;
}
catch ( Exception ex )
{
from . SendMessage ( ex . Message ) ;
2020-09-16 10:43:44 -04:00
Diagnostics . ExceptionLogging . LogException ( ex ) ;
2013-10-28 07:09:42 +00:00
}
}
}
2020-05-13 10:58:04 -04:00
}