Helps if I save the file before submitting

This commit is contained in:
Madpeter 2020-04-26 01:46:27 +01:00
parent 5338733ed0
commit 47246eb189

View file

@ -5,58 +5,34 @@ using System.Text;
namespace BSB.Commands.CMD_Parcel 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 string[] ArgTypes { get { return new[] { "Avatar" }; } }
public override string[] ArgHints { get { return new[] { "Avatar [UUID or Firstname Lastname]" }; } }
public override void Callback(string[] args, EventArgs e) public override int MinArgs { get { return 1; } }
{ public override string Helpfile { get { return "Returns all objects from the current parcel for the selected avatar"; } }
ParcelObjectOwnersReplyEventArgs ObjectOwners = (ParcelObjectOwnersReplyEventArgs)e;
List<UUID> owner_uuids = new List<UUID>();
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 bool CallFunction(string[] args) public override bool CallFunction(string[] args)
{ {
if (base.CallFunction(args) == true) 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); 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<UUID>() { avatarUUID });
return true; return true;
} }
else else
{ {
return Failed("Unable to await reply"); return Failed("Parcel perm check failed");
} }
} }
else else
{ {
return Failed("Invaild object UUID"); return Failed("Invaild avatar UUID");
} }
} }
return false; return false;