corrade-vassal – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 vero 1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4 using System.Threading;
5 using OpenMetaverse;
6  
7 namespace OpenMetaverse.TestClient
8 {
9 public class ParcelInfoCommand : Command
10 {
11 private AutoResetEvent ParcelsDownloaded = new AutoResetEvent(false);
12  
13 public ParcelInfoCommand(TestClient testClient)
14 {
15 Name = "parcelinfo";
16 Description = "Prints out info about all the parcels in this simulator";
17 Category = CommandCategory.Parcel;
18  
19 testClient.Network.Disconnected += Network_OnDisconnected;
20 }
21  
22 public override string Execute(string[] args, UUID fromAgentID)
23 {
24 StringBuilder sb = new StringBuilder();
25 string result;
26 EventHandler<SimParcelsDownloadedEventArgs> del = delegate(object sender, SimParcelsDownloadedEventArgs e)
27 {
28 ParcelsDownloaded.Set();
29 };
30  
31  
32 ParcelsDownloaded.Reset();
33 Client.Parcels.SimParcelsDownloaded += del;
34 Client.Parcels.RequestAllSimParcels(Client.Network.CurrentSim);
35  
36 if (Client.Network.CurrentSim.IsParcelMapFull())
37 ParcelsDownloaded.Set();
38  
39 if (ParcelsDownloaded.WaitOne(30000, false) && Client.Network.Connected)
40 {
41 sb.AppendFormat("Downloaded {0} Parcels in {1} " + System.Environment.NewLine,
42 Client.Network.CurrentSim.Parcels.Count, Client.Network.CurrentSim.Name);
43  
44 Client.Network.CurrentSim.Parcels.ForEach(delegate(Parcel parcel)
45 {
46 sb.AppendFormat("Parcel[{0}]: Name: \"{1}\", Description: \"{2}\" ACLBlacklist Count: {3}, ACLWhiteList Count: {5} Traffic: {4}" + System.Environment.NewLine,
47 parcel.LocalID, parcel.Name, parcel.Desc, parcel.AccessBlackList.Count, parcel.Dwell, parcel.AccessWhiteList.Count);
48 });
49  
50 result = sb.ToString();
51 }
52 else
53 result = "Failed to retrieve information on all the simulator parcels";
54  
55 Client.Parcels.SimParcelsDownloaded -= del;
56 return result;
57 }
58  
59 void Network_OnDisconnected(object sender, DisconnectedEventArgs e)
60 {
61 ParcelsDownloaded.Set();
62 }
63 }
64 }