diff options
author | Justin Clark-Casey (justincc) | 2012-06-25 23:55:14 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-06-25 23:55:14 +0100 |
commit | 854f2a913cdedfa252b69d5c3118d35604ab6b4a (patch) | |
tree | 04d68295478b00bba678796f6417ba79ba7c21d3 /OpenSim | |
parent | minor: update currently commented out log message at top of AvatarFactoryModu... (diff) | |
download | opensim-SC-854f2a913cdedfa252b69d5c3118d35604ab6b4a.zip opensim-SC-854f2a913cdedfa252b69d5c3118d35604ab6b4a.tar.gz opensim-SC-854f2a913cdedfa252b69d5c3118d35604ab6b4a.tar.bz2 opensim-SC-854f2a913cdedfa252b69d5c3118d35604ab6b4a.tar.xz |
Add "show region at" command to grid service to get the details of a region at a specific location. "show region" command becomes "show region name" to disambiguate
This is the same format as used by "show object name", etc.
"deregister region" also becomes "deregister region id"
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Services/GridService/GridService.cs | 91 |
1 files changed, 69 insertions, 22 deletions
diff --git a/OpenSim/Services/GridService/GridService.cs b/OpenSim/Services/GridService/GridService.cs index 11897f8..7d2dadb 100644 --- a/OpenSim/Services/GridService/GridService.cs +++ b/OpenSim/Services/GridService/GridService.cs | |||
@@ -85,20 +85,27 @@ namespace OpenSim.Services.GridService | |||
85 | if (MainConsole.Instance != null) | 85 | if (MainConsole.Instance != null) |
86 | { | 86 | { |
87 | MainConsole.Instance.Commands.AddCommand("Regions", true, | 87 | MainConsole.Instance.Commands.AddCommand("Regions", true, |
88 | "deregister region", | 88 | "deregister region id", |
89 | "deregister region <Region UUID>", | 89 | "deregister region id <Region UUID>", |
90 | "Deregister a region manually.", | 90 | "Deregister a region manually.", |
91 | String.Empty, | 91 | String.Empty, |
92 | HandleDeregisterRegion); | 92 | HandleDeregisterRegion); |
93 | 93 | ||
94 | MainConsole.Instance.Commands.AddCommand("Regions", true, | 94 | MainConsole.Instance.Commands.AddCommand("Regions", true, |
95 | "show region", | 95 | "show region name", |
96 | "show region <Region name>", | 96 | "show region name <Region name>", |
97 | "Show details on a region", | 97 | "Show details on a region", |
98 | String.Empty, | 98 | String.Empty, |
99 | HandleShowRegion); | 99 | HandleShowRegion); |
100 | 100 | ||
101 | MainConsole.Instance.Commands.AddCommand("Regions", true, | 101 | MainConsole.Instance.Commands.AddCommand("Regions", true, |
102 | "show region at", | ||
103 | "show region at <x-coord> <y-coord>", | ||
104 | "Show details on a region at the given co-ordinate.", | ||
105 | "For example, show region at 1000 1000", | ||
106 | HandleShowRegionAt); | ||
107 | |||
108 | MainConsole.Instance.Commands.AddCommand("Regions", true, | ||
102 | "set region flags", | 109 | "set region flags", |
103 | "set region flags <Region name> <flags>", | 110 | "set region flags <Region name> <flags>", |
104 | "Set database flags for region", | 111 | "Set database flags for region", |
@@ -504,13 +511,13 @@ namespace OpenSim.Services.GridService | |||
504 | 511 | ||
505 | private void HandleDeregisterRegion(string module, string[] cmd) | 512 | private void HandleDeregisterRegion(string module, string[] cmd) |
506 | { | 513 | { |
507 | if (cmd.Length != 3) | 514 | if (cmd.Length != 4) |
508 | { | 515 | { |
509 | MainConsole.Instance.Output("Syntax: degregister region <Region UUID>"); | 516 | MainConsole.Instance.Output("Syntax: degregister region id <Region UUID>"); |
510 | return; | 517 | return; |
511 | } | 518 | } |
512 | 519 | ||
513 | string rawRegionUuid = cmd[2]; | 520 | string rawRegionUuid = cmd[3]; |
514 | UUID regionUuid; | 521 | UUID regionUuid; |
515 | 522 | ||
516 | if (!UUID.TryParse(rawRegionUuid, out regionUuid)) | 523 | if (!UUID.TryParse(rawRegionUuid, out regionUuid)) |
@@ -542,34 +549,74 @@ namespace OpenSim.Services.GridService | |||
542 | 549 | ||
543 | private void HandleShowRegion(string module, string[] cmd) | 550 | private void HandleShowRegion(string module, string[] cmd) |
544 | { | 551 | { |
545 | if (cmd.Length != 3) | 552 | if (cmd.Length != 4) |
546 | { | 553 | { |
547 | MainConsole.Instance.Output("Syntax: show region <region name>"); | 554 | MainConsole.Instance.Output("Syntax: show region name <region name>"); |
548 | return; | 555 | return; |
549 | } | 556 | } |
550 | List<RegionData> regions = m_Database.Get(cmd[2], UUID.Zero); | 557 | |
558 | string regionName = cmd[3]; | ||
559 | |||
560 | List<RegionData> regions = m_Database.Get(regionName, UUID.Zero); | ||
551 | if (regions == null || regions.Count < 1) | 561 | if (regions == null || regions.Count < 1) |
552 | { | 562 | { |
553 | MainConsole.Instance.Output("Region not found"); | 563 | MainConsole.Instance.Output("No region with name {0} found", regionName); |
554 | return; | 564 | return; |
555 | } | 565 | } |
556 | 566 | ||
557 | foreach (RegionData r in regions) | 567 | OutputRegionsToConsole(regions); |
568 | } | ||
569 | |||
570 | private void HandleShowRegionAt(string module, string[] cmd) | ||
571 | { | ||
572 | if (cmd.Length != 5) | ||
558 | { | 573 | { |
559 | OpenSim.Data.RegionFlags flags = (OpenSim.Data.RegionFlags)Convert.ToInt32(r.Data["flags"]); | 574 | MainConsole.Instance.Output("Syntax: show region at <x-coord> <y-coord>"); |
575 | return; | ||
576 | } | ||
560 | 577 | ||
561 | ConsoleDisplayList dispList = new ConsoleDisplayList(); | 578 | int x, y; |
562 | dispList.AddRow("Region Name", r.RegionName); | 579 | if (!int.TryParse(cmd[3], out x)) |
563 | dispList.AddRow("Region ID", r.RegionID); | 580 | { |
564 | dispList.AddRow("Location", string.Format("{0},{1}", r.coordX, r.coordY)); | 581 | MainConsole.Instance.Output("x-coord must be an integer"); |
565 | dispList.AddRow("URI", r.Data["serverURI"]); | 582 | return; |
566 | dispList.AddRow("Owner ID", r.Data["owner_uuid"]); | 583 | } |
567 | dispList.AddRow("Flags", flags); | ||
568 | 584 | ||
569 | MainConsole.Instance.Output(dispList.ToString()); | 585 | if (!int.TryParse(cmd[4], out y)) |
586 | { | ||
587 | MainConsole.Instance.Output("y-coord must be an integer"); | ||
588 | return; | ||
570 | } | 589 | } |
571 | 590 | ||
572 | return; | 591 | RegionData region = m_Database.Get(x * (int)Constants.RegionSize, y * (int)Constants.RegionSize, UUID.Zero); |
592 | if (region == null) | ||
593 | { | ||
594 | MainConsole.Instance.OutputFormat("No region found at {0},{1}", x, y); | ||
595 | return; | ||
596 | } | ||
597 | |||
598 | OutputRegionToConsole(region); | ||
599 | } | ||
600 | |||
601 | private void OutputRegionToConsole(RegionData r) | ||
602 | { | ||
603 | OpenSim.Data.RegionFlags flags = (OpenSim.Data.RegionFlags)Convert.ToInt32(r.Data["flags"]); | ||
604 | |||
605 | ConsoleDisplayList dispList = new ConsoleDisplayList(); | ||
606 | dispList.AddRow("Region Name", r.RegionName); | ||
607 | dispList.AddRow("Region ID", r.RegionID); | ||
608 | dispList.AddRow("Location", string.Format("{0},{1}", r.coordX, r.coordY)); | ||
609 | dispList.AddRow("URI", r.Data["serverURI"]); | ||
610 | dispList.AddRow("Owner ID", r.Data["owner_uuid"]); | ||
611 | dispList.AddRow("Flags", flags); | ||
612 | |||
613 | MainConsole.Instance.Output(dispList.ToString()); | ||
614 | } | ||
615 | |||
616 | private void OutputRegionsToConsole(List<RegionData> regions) | ||
617 | { | ||
618 | foreach (RegionData r in regions) | ||
619 | OutputRegionToConsole(r); | ||
573 | } | 620 | } |
574 | 621 | ||
575 | private int ParseFlags(int prev, string flags) | 622 | private int ParseFlags(int prev, string flags) |