Skip to content
Browse files

Command Manager update

* Overhauled the Command Manager UI
  - Order of fields is changed to reflect what is probably more useful:
    * Full syntax display
    * Description/Special notes (documentation)
    * Node-specific features
      - For Commands: Aliases, Required Rank, Required Flags, Requirement details, Disable checkbox, Delete button [enabled for scripts only]
      [newly added:]
      - For Parameters: Match, Match Case Sensitive, Match Error, Command requirement details
      - For Restrictions: Match, Match Case Sensitive, Match Error, Match Shared Error checkbox, Match Is Fatal checkbox, Required Rank, Required Flags, Command requirements details
  - Description/Special notes fields don't always show their scrollbar (perhaps a RichTextBox is required to make it appear conditionally)
  - Rank and flag fields are now simple text boxes that disallow certain inputs
  - Alias list is a list view with a much clearer interface
  - Delete key can be used to delete entries from the Alias list (perhaps a context menu action would be useful for the same functionality)
  - Adding aliases is checked against the entire command database for enabled commands with conflicting names or aliases
  - The Command Manager now creates a copy of the command database on load and allows the same workflow of saving to this copy until "apply and close" is clicked (the window's Default button)
  - As such, the Cancel/Apply and close buttons are there- the window now has a Default and Cancel button like most other StealthBot windows
  - The overall look and feel is now much more in line with the User Database Manager
  - Required ranks of 0 or negative should not appear in the Rank field on load
  - Clearing the rank or flags fields should properly save empty <rank>, <flags>, or <access> tags, as appropriate
  - Implemented the <documentation> tag (description and special notes) save/loading [this was already supported in the XML]
  - Implemented access to the Match system for Parameters and Restrictions, as listed above
  - The Command Manager indicates the currently selected command is modified with a "*" at the end of the window and command form captions
  - The Command Manager uses the Command (CommandDoc), Paramaeter, and Restriction .ToString() functions to describe commands, parameters, and restrictions, for the window and command form captions and the syntax system
  - Deleting commands no longer refreshes the list twice or returns to the Internal Bot Commands list
  - The Delete Command button can no longer become enabled for Internal Bot Commands, and attempting to delete them is disallowed
  - The Delete Command button is hidden for Parameter and Restriction nodes
  - TabIndex and keyboard usability handled

* Command database system changes:
  - Implemented a "RestrictionsSharedError" As String property on Parameters, realized as:
        <shared-error>error message</shared-error>
    If no specific error is defined when a Restriction fails, the <shared-error> message is sent instead.
    The Command Manager allows you to check "Error message global for this parameter" to save the error message to the RestrictionsSharedError property instead of the Restriction's MatchError property
    This requires an update to the "Commands.xsd", provided in this update, to be installed with the bot
  - CommandDoc, Parameter, and Restriction objects have a ToString function, marked as a "default" method
  - The command search system now has an EnabledOnly parameter, where the default is False, that allows parts of the system to get only the enabled commands in a consistent and non-confusing manner
    - EnabledOnly search is used when searching for command activation and alias conflicts
    - All other usages (Command Manager, .help, and command search from scripts) use EnabledOnly = False
  - GetCommands() and GetCommandCount() now use consistent code and location (clsCommandDocObjStatic), and both properly handle enabled commands and passing vbNullChar to search all commands
    - This fixes GetCommands() in scripts not checking the @enabled XML property the correct way and being useles
  - .help enjoyed some corrections to its output due to the changes in the syntax string generation and requirements details string generation

* clsDBEntryObj.ToString is marked as a "default" method
* clsUserStats.ToString is marked as a "default" method
* A bunch of "getX" and "setX" identifiers are now "GetX" and "SetX" to be more in line with the rest of the bot
  • Loading branch information...
nmbook committed Mar 21, 2017
1 parent 5c0a16f commit a3799b1b8139182cab753df36cbd50db609f38a9
@@ -1,12 +1,12 @@
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\..\..\..\Windows\SysWOW64\stdole2.tlb#OLE Automation
Reference=*\G{420B2830-E718-11CF-893D-00A0C9054228}#1.0#0#..\..\..\..\..\..\Windows\SysWOW64\scrrun.dll#Microsoft Scripting Runtime
Reference=*\G{3F4DACA7-160D-11D2-A8E9-00104B365C9F}#5.5#0#..\..\..\..\..\..\Windows\system32\vbscript.dll\3#Microsoft VBScript Regular Expressions 5.5
Reference=*\G{F5078F18-C551-11D3-89B9-0000F81FE221}#6.0#0#..\..\..\..\..\..\Windows\System32\msxml6.dll#Microsoft XML, v6.0
Reference=*\G{8B217740-717D-11CE-AB5B-D41203C10000}#1.0#0#..\..\..\..\..\..\Windows\SysWow64\TLBINF32.DLL#TypeLib Information
Reference=*\G{0E59F1D2-1FBE-11D0-8FF2-00A0D10038BC}#1.0#0#..\..\..\..\..\..\Windows\SysWOW64\msscript.ocx#Microsoft Script Control 1.0
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\SysWOW64\stdole2.tlb#OLE Automation
Reference=*\G{420B2830-E718-11CF-893D-00A0C9054228}#1.0#0#C:\Windows\SysWOW64\scrrun.dll#Microsoft Scripting Runtime
Reference=*\G{3F4DACA7-160D-11D2-A8E9-00104B365C9F}#5.5#0#C:\Windows\SysWOW64\vbscript.dll\3#Microsoft VBScript Regular Expressions 5.5
Reference=*\G{F5078F18-C551-11D3-89B9-0000F81FE221}#6.0#0#C:\Windows\SysWOW64\msxml6.dll#Microsoft XML, v6.0
Reference=*\G{8B217740-717D-11CE-AB5B-D41203C10000}#1.0#0#C:\WINDOWS\SysWow64\TLBINF32.DLL#TypeLib Information
Reference=*\G{0E59F1D2-1FBE-11D0-8FF2-00A0D10038BC}#1.0#0#C:\Windows\SysWOW64\msscript.ocx#Microsoft Script Control 1.0
Object={0E59F1D2-1FBE-11D0-8FF2-00A0D10038BC}#1.0#0; msscript.ocx
Object={F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0; comdlg32.ocx
Object={F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0; COMDLG32.OCX
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX
Object={248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0; MSWINSCK.OCX
Object={48E59290-9880-11CF-9754-00AA00C00908}#1.0#0; MSINET.OCX

0 comments on commit a3799b1

Please sign in to comment.
You can’t perform that action at this time.