diff --git a/Core/Commands/Parcel/ParcelReturnTargeted.cs b/Core/Commands/Parcel/ParcelReturnTargeted.cs index 1c55e28..37d88e6 100644 --- a/Core/Commands/Parcel/ParcelReturnTargeted.cs +++ b/Core/Commands/Parcel/ParcelReturnTargeted.cs @@ -5,58 +5,34 @@ using System.Text; namespace BSB.Commands.CMD_Parcel { - class ParcelReturnObjects : CoreCommand + class ParcelReturnTargeted : CoreCommand { - public override string Helpfile { get { return "Returns all object from the current parcel to their owners"; } } - - public override void Callback(string[] args, EventArgs e) - { - ParcelObjectOwnersReplyEventArgs ObjectOwners = (ParcelObjectOwnersReplyEventArgs)e; - List owner_uuids = new List(); - foreach(ParcelManager.ParcelPrimOwners owner in ObjectOwners.PrimOwners) - { - owner_uuids.Add(owner.OwnerID); - } - if (owner_uuids.Count > 0) - { - int localid = bot.GetClient.Parcels.GetParcelLocalID(bot.GetClient.Network.CurrentSim, bot.GetClient.Self.SimPosition); - Parcel p = bot.GetClient.Network.CurrentSim.Parcels[localid]; - if(parcel_static.has_parcel_perm(p,bot) == true) - { - bot.GetClient.Parcels.ReturnObjects(bot.GetClient.Network.CurrentSim, localid, ObjectReturnType.None, owner_uuids); - base.Callback(args, e, true); - } - else - { - base.Callback(args, e, false); - } - } - else - { - base.Callback(args, e, false); - } - } + public override string[] ArgTypes { get { return new[] { "Avatar" }; } } + public override string[] ArgHints { get { return new[] { "Avatar [UUID or Firstname Lastname]" }; } } + public override int MinArgs { get { return 1; } } + public override string Helpfile { get { return "Returns all objects from the current parcel for the selected avatar"; } } public override bool CallFunction(string[] args) { if (base.CallFunction(args) == true) { - if (UUID.TryParse(args[0], out UUID objectUUID) == true) + if (UUID.TryParse(args[0], out UUID avatarUUID) == true) { int localid = bot.GetClient.Parcels.GetParcelLocalID(bot.GetClient.Network.CurrentSim, bot.GetClient.Self.SimPosition); - if (bot.CreateAwaitEventReply("parcelobjectowners", this, args) == true) + Parcel p = bot.GetClient.Network.CurrentSim.Parcels[localid]; + if (parcel_static.has_parcel_perm(p, bot) == true) { - bot.GetClient.Parcels.RequestObjectOwners(bot.GetClient.Network.CurrentSim, localid); + bot.GetClient.Parcels.ReturnObjects(bot.GetClient.Network.CurrentSim, localid, ObjectReturnType.None, new List() { avatarUUID }); return true; } else { - return Failed("Unable to await reply"); + return Failed("Parcel perm check failed"); } } else { - return Failed("Invaild object UUID"); + return Failed("Invaild avatar UUID"); } } return false;