[Home] [Downloads] [Search] [Help/forum]

MUSHclient scripting

Description of MUSHclient world function: world.DoCommand

Name DoCommand
Type Method
Summary Queues a MUSHclient menu command
Prototype long DoCommand(BSTR Command);

View list of data type meanings


Queues an internal MUSHclient command, as if you had selected it from the menu or typed the corresponding keyboard accelerator. This lets you script things that are available from menus but might not be provided for directly in the scripting language (eg. connect to worlds in startup list).

The command is actually entered in the Windows message queue using the PostMessage operating-system call. What this means is that the command you specify is not done immediately, but will be actioned next time through the main "message loop".

The reason for this is that some commands (eg. world.DoCommand "close", or world.DoCommand "ExitClient") would crash the client because the program (or window) would close while the script was still executing. Similarly any command that opened a dialog box would mean that the script would be paused until the dialog box was closed.

That means that this sort of thing will *not* work:

world.DoCommand "copy"
mystring = world.GetClipboard

This is because the copy command is deferred until later, whereas the GetClipboard is executed immediately (as it is an inbuilt script command).

The intention of DoCommand is that you can bind aliases to internal commands, or automate some actions, but not to directly execute MUSHclient actions while a script is running. For instance, you might make an alias:

Alias: #chats
Send: DoCommand "chatsessions"
Send to: Script

To find the current list of commands you can use:

/world.Debug "internal_commands"

Also see world.GetInternalCommandsList to get the list in a script.

The current list is (as at version 3.73):

ASCIIart, About, ActivateInputArea, ActivityList, ActivityToolbar,
ActivityViewCloseWorld, ActivityViewSaveWorld, ActivityViewSaveWorldAs, AltA,
AltB, AltDownArrow, AltJ, AltK, AltL, AltM, AltN, AltO, AltP, AltQ, AltR,
AltS, AltT, AltU, AltUpArrow, AltV, AltX, AltY, AltZ, AlwaysOnTop,
ArrangeIcons, AutoConnect, AutoSay, Base64Decode, Base64Encode,
BookmarkSelection, BugReports, CascadeWindows, ChatSessions,
ClearCommandHistory, ClearOutput, Close, CloseAllNotepadWindows, ColourPicker,
CommandEnd, CommandHistory, CommandHome, CompleteFunction, ConfigureAliases,
ConfigureAutosay, ConfigureChat, ConfigureColours, ConfigureCommands,
ConfigureCustomColours, ConfigureKeypad, ConfigureLogging, ConfigureMacros,
ConfigureMudaddress, ConfigureMxpPueblo, ConfigureNameAndPassword,
ConfigureNotes, ConfigureOutput, ConfigurePasteToWorld, ConfigurePrinting,
ConfigureScripting, ConfigureSendFile, ConfigureTimers, ConfigureTriggers,
ConfigureVariables, Connect, ConnectToAllOpenWorlds,
ConnectToWorldsInStartupList, Connect_Or_Reconnect, ContextHelp,
ConvertHTMLspecial, Copy, CopyAsHTML, CtrlKeypad0, CtrlKeypad1, CtrlKeypad2,
CtrlKeypad3, CtrlKeypad4, CtrlKeypad5, CtrlKeypad6, CtrlKeypad7, CtrlKeypad8,
CtrlKeypad9, CtrlKeypadDash, CtrlKeypadDot, CtrlKeypadPlus, CtrlKeypadSlash,
CtrlKeypadStar, CtrlN, CtrlP, CtrlZ, Cut, DebugIncomingPackets,
DebugWorldInput, DiscardQueuedCommands, Disconnect, DoMapperComment,
DoMapperSpecial, DosToMac, DosToUnix, East, EditScriptFile, End, Examine,
ExitClient, Find, FindAgain, FindNextNotepad, FindNotepad, FlipToNotepad,
Forum, FreezeOutput, FullScreenMode, FunctionList, FunctionsWebPage,
GenerateCharacterName, GenerateUniqueID, GettingStarted, GlobalPreferences,
GlobalReplace, GoToBookmark, GoToLine, GoToMatchingBrace, GoToNotepadLine,
GoToURL, Help, HelpContents, HelpIndex, HighlightWord, Immediate, Import,
Info, InfoBar, InputGlobalChange, InsertDateTime, Keypad0, Keypad1, Keypad2,
Keypad3, Keypad4, Keypad5, Keypad6, Keypad7, Keypad8, Keypad9, KeypadDash,
KeypadDot, KeypadPlus, KeypadSlash, KeypadStar, KeysEscape, KeysTab, LineDown,
LineUp, LogSession, Look, LowerCase, MacToDos, MacroCtrlF1, MacroCtrlF10,
MacroCtrlF11, MacroCtrlF12, MacroCtrlF2, MacroCtrlF3, MacroCtrlF5, MacroCtrlF
6, MacroCtrlF7, MacroCtrlF8, MacroCtrlF9, MacroF1, MacroF10, MacroF11, MacroF
12, MacroF2, MacroF3, MacroF4, MacroF5, MacroF6, MacroF7, MacroF8, MacroF9,
MacroShiftF1, MacroShiftF10, MacroShiftF11, MacroShiftF12, MacroShiftF2,
MacroShiftF3, MacroShiftF4, MacroShiftF5, MacroShiftF6, MacroShiftF7,
MacroShiftF8, MacroShiftF9, MakeMultiLineTrigger, Mapper, Maximize, MinimiseProgram,
Minimize, MudLists, New, NewWindow, NextCommand, NextPane, NoCommandEcho,
North, NotesWorkArea, Open, OpenWorldsInStartupList, PageDown, Pageup, Paste,
PasteFile, PasteToMush, PluginWizard, Plugins, Preferences, PreviousCommand,
Print, PrintNotepad, PrintPreview, PrintSetup, QuickConnect, Quit,
QuoteForumCodes, QuoteLines, RecallText, ReconnectOnDisconnect,
RefreshRecalledData, Register, ReloadDefaults, ReloadNamesFile,
ReloadScriptFile, RemoveBlanks, RepeatLastCommand, RepeatLastWord,
ReplaceNotepad, ResetAllTimers, ResetToolbars, Restore, Save, SaveAs, SaveSelection,
SelectAll, SelectMatchingBrace, SendMailTo, SendToAllWorlds,
SendToCommandWindow, SendToScript, SendToWorld, South, SpellCheck, Start,
StopSoundPlaying, Take, TextAttributes, TileWindows, TileWindowsVertically,
TipOfTheDay, Trace, UnconvertHTMLspecial, Undo, UnixToDos, Up, UpperCase,
UsingHelp, ViewStatusbar, ViewToolbar, ViewWorldToolbar, WebPage, West,
Whisper, WindowsSocketInformation, WordCount, World1, World10, World2, World3,
World4, World5, World6, World7, World8, World9, WrapLines, WrapOutput

Note: Available in version 3.39 onwards.

VBscript example
DoCommand "WindowsSocketInformation"
DoCommand "FullScreenMode"
Jscript example
DoCommand ("WindowsSocketInformation");
DoCommand ("FullScreenMode");
PerlScript example
DoCommand ("WindowsSocketInformation");
DoCommand ("FullScreenMode");
Python example
world.DoCommand ("WindowsSocketInformation")
world.DoCommand ("FullScreenMode")
Lua example
DoCommand ("WindowsSocketInformation")
DoCommand ("FullScreenMode")
Returns eNoSuchCommand: That command name was not recognised
eOK: Did the command (or attempted to do it)

Note that even if eOK (0) is returned, the command will not necessarily successfully execute. For example, DoCommand "WordCount" would not do anything if a "world" window was active, rather than a notepad window.

View list of return code meanings

Introduced in version 3.39

See also ...

Function Description
GetInternalCommandsList Returns a list of the internal MUSHclient command names

Search for script function

Enter a word or phrase in the box below to narrow the list down to those that match.

The function name, prototype, summary, and description are searched.

Search for:   

Leave blank to show all functions.

Return codes

Many functions return a "code" which indicates the success or otherwise of the function.

You can view a list of the return codes

Function prototypes

The "prototype" part of each function description lists exactly how the function is called (what arguments, if any, to pass to it).

You can view a list of the data types used in function prototypes

View all functions


Quick links: MUSHclient. MUSHclient help. Forum shortcuts. Posting templates. Lua modules. Lua documentation.

Information and images on this site are licensed under the Creative Commons Attribution 3.0 Australia License unless stated otherwise.


Written by Nick Gammon - 5K   profile for Nick Gammon on Stack Exchange, a network of free, community-driven Q&A sites   Marriage equality

Comments to: Gammon Software support
[RH click to get RSS URL] Forum RSS feed ( https://gammon.com.au/rss/forum.xml )

[Best viewed with any browser - 2K]    [Hosted at FutureQuest]