source: binary-improvements2/CommandExtensions/src/Commands/ListItems.cs@ 419

Last change on this file since 419 was 405, checked in by alloc, 21 months ago

Refactored console commands for A21 caching

File size: 1.3 KB
RevLine 
[391]1using System;
2using System.Collections.Generic;
3using JetBrains.Annotations;
4
5namespace CommandExtensions.Commands {
6 [UsedImplicitly]
7 public class ListItems : ConsoleCmdAbstract {
[405]8 protected override string getDescription () {
[391]9 return "lists all items that contain the given substring";
10 }
11
[405]12 protected override string[] getCommands () {
[391]13 return new[] {"listitems", "li"};
14 }
15
[405]16 protected override string getHelp () {
[391]17 return "List all available item names\n" +
18 "Usage:\n" +
19 " 1. listitems <searchString>\n" +
20 " 2. listitems *\n" +
21 "1. List only names that contain the given string.\n" +
22 "2. List all names.";
23 }
24
25 public override void Execute (List<string> _params, CommandSenderInfo _senderInfo) {
26 if (_params.Count != 1 || _params [0].Length == 0) {
27 SdtdConsole.Instance.Output ("Usage: listitems <searchString>");
28 return;
29 }
30
31 int count = ItemClass.ItemNames.Count;
32 bool showAll = _params [0].Trim ().Equals ("*");
33
34 int listed = 0;
35 for (int i = 0; i < count; i++) {
36 string s = ItemClass.ItemNames [i];
37 if (!showAll && s.IndexOf (_params [0], StringComparison.OrdinalIgnoreCase) < 0) {
38 continue;
39 }
40
[402]41 SdtdConsole.Instance.Output ($" {s}");
[391]42 listed++;
43 }
44
[402]45 SdtdConsole.Instance.Output ($"Listed {listed} matching items.");
[391]46 }
47 }
48}
Note: See TracBrowser for help on using the repository browser.