function initCommands()

in suite/chatzilla/content/commands.js [13:361]


function initCommands() {
  // Keep this in sync with the command.js section in chatzilla.properties.
  var cmdary = [
    /* "real" commands */ ["about", cmdAbout, CMD_CONSOLE],
    ["alias", cmdAlias, CMD_CONSOLE, "[<alias-name> [<command-list>]]"],
    ["attach", cmdAttach, CMD_CONSOLE, "<irc-url>"],
    ["away", cmdAway, CMD_CONSOLE, "[<reason>]"],
    ["back", cmdAway, CMD_CONSOLE],
    ["ban", cmdBanOrExcept, CMD_NEED_CHAN | CMD_CONSOLE, "[<nickname>]"],
    ["cancel", cmdCancel, CMD_CONSOLE],
    ["charset", cmdCharset, CMD_CONSOLE, "[<new-charset>]"],
    [
      "channel-motif",
      cmdMotif,
      CMD_NEED_CHAN | CMD_CONSOLE,
      "[<motif> [<channel>]]",
    ],
    [
      "channel-pref",
      cmdPref,
      CMD_NEED_CHAN | CMD_CONSOLE,
      "[<pref-name> [<pref-value>]]",
    ],
    ["cmd-copy", "cmd-docommand cmd_copy", 0],
    ["cmd-selectall", "cmd-docommand cmd_selectAll", 0],
    ["cmd-copy-link-url", "cmd-docommand cmd_copyLink", 0, "<url>"],
    ["cmd-prefs", cmdChatZillaPrefs, 0],
    ["cmd-chatzilla-prefs", cmdChatZillaPrefs, 0],
    ["cmd-chatzilla-opts", cmdChatZillaPrefs, 0],
    ["cmd-docommand", cmdDoCommand, 0, "<cmd-name>"],
    ["create-tab-for-view", cmdCreateTabForView, 0, "<view>"],
    ["custom-away", customAway, 0],
    ["op", cmdChanUserMode, CMD_NEED_CHAN | CMD_CONSOLE, "<nickname> [<...>]"],
    ["dcc-accept", cmdDCCAccept, CMD_CONSOLE, "[<nickname> [<type> [<file>]]]"],
    ["dcc-accept-list", cmdDCCAutoAcceptList, CMD_NEED_NET | CMD_CONSOLE],
    [
      "dcc-accept-list-add",
      cmdDCCAutoAcceptAdd,
      CMD_NEED_NET | CMD_CONSOLE,
      "<nickname>",
    ],
    [
      "dcc-accept-list-remove",
      cmdDCCAutoAcceptDel,
      CMD_NEED_NET | CMD_CONSOLE,
      "<nickname>",
    ],
    ["dcc-chat", cmdDCCChat, CMD_NEED_SRV | CMD_CONSOLE, "[<nickname>]"],
    ["dcc-close", cmdDCCClose, CMD_CONSOLE, "[<nickname> [<type> [<file>]]]"],
    ["dcc-decline", cmdDCCDecline, CMD_CONSOLE, "[<nickname>]"],
    ["dcc-list", cmdDCCList, CMD_CONSOLE, "[<type>]"],
    [
      "dcc-send",
      cmdDCCSend,
      CMD_NEED_SRV | CMD_CONSOLE,
      "[<nickname> [<file>]]",
    ],
    ["dcc-show-file", cmdDCCShowFile, CMD_CONSOLE, "<file>"],
    ["delayed", cmdDelayed, CMD_CONSOLE, "<delay> <rest>"],
    [
      "deop",
      cmdChanUserMode,
      CMD_NEED_CHAN | CMD_CONSOLE,
      "<nickname> [<...>]",
    ],
    ["describe", cmdDescribe, CMD_NEED_SRV | CMD_CONSOLE, "<target> <action>"],
    ["hop", cmdChanUserMode, CMD_NEED_CHAN | CMD_CONSOLE, "<nickname> [<...>]"],
    [
      "dehop",
      cmdChanUserMode,
      CMD_NEED_CHAN | CMD_CONSOLE,
      "<nickname> [<...>]",
    ],
    [
      "voice",
      cmdChanUserMode,
      CMD_NEED_CHAN | CMD_CONSOLE,
      "<nickname> [<...>]",
    ],
    [
      "devoice",
      cmdChanUserMode,
      CMD_NEED_CHAN | CMD_CONSOLE,
      "<nickname> [<...>]",
    ],
    ["clear-view", cmdClearView, CMD_CONSOLE, "[<view>]"],
    ["client", cmdClient, CMD_CONSOLE],
    ["commands", cmdCommands, CMD_CONSOLE, "[<pattern>]"],
    ["ctcp", cmdCTCP, CMD_NEED_SRV | CMD_CONSOLE, "<target> <code> [<params>]"],
    ["default-charset", cmdCharset, CMD_CONSOLE, "[<new-charset>]"],
    ["delete-view", cmdDeleteView, CMD_CONSOLE, "[<view>]"],
    ["desc", cmdDesc, CMD_CONSOLE, "[<description>]"],
    ["disable-plugin", cmdDisablePlugin, CMD_CONSOLE],
    ["disconnect", cmdDisconnect, CMD_NEED_SRV | CMD_CONSOLE, "[<reason>]"],
    ["disconnect-all", cmdDisconnectAll, CMD_CONSOLE, "[<reason>]"],
    ["echo", cmdEcho, CMD_CONSOLE, "<message>"],
    ["edit-networks", cmdEditNetworks, CMD_CONSOLE],
    ["enable-plugin", cmdEnablePlugin, CMD_CONSOLE, "<plugin>"],
    ["eval", cmdEval, CMD_CONSOLE, "<expression>"],
    ["evalsilent", cmdEval, CMD_CONSOLE, "<expression>"],
    ["except", cmdBanOrExcept, CMD_NEED_CHAN | CMD_CONSOLE, "[<nickname>]"],
    ["find", cmdFind, 0, "[<rest>]"],
    ["find-again", cmdFindAgain, 0],
    ["focus-input", cmdFocusInput, 0],
    ["font-family", cmdFontFamily, CMD_CONSOLE, "[<font>]"],
    ["font-size", cmdFontSize, CMD_CONSOLE, "[<font-size>]"],
    ["goto-startup", cmdGotoStartup, CMD_CONSOLE],
    ["goto-url", cmdGotoURL, 0, "<url> [<anchor>]"],
    ["goto-url-newwin", cmdGotoURL, 0, "<url> [<anchor>]"],
    ["goto-url-newtab", cmdGotoURL, 0, "<url> [<anchor>]"],
    ["help", cmdHelp, CMD_CONSOLE, "[<pattern>]"],
    ["hide-view", cmdHideView, CMD_CONSOLE, "[<view>]"],
    ["identify", cmdIdentify, CMD_NEED_SRV | CMD_CONSOLE, "[<password>]"],
    ["idle-away", cmdAway, 0],
    ["idle-back", cmdAway, 0],
    ["ignore", cmdIgnore, CMD_NEED_NET | CMD_CONSOLE, "[<mask>]"],
    ["input-text-direction", cmdInputTextDirection, 0, "<dir>"],
    ["install-plugin", cmdInstallPlugin, CMD_CONSOLE, "[<url> [<name>]]"],
    [
      "invite",
      cmdInvite,
      CMD_NEED_SRV | CMD_CONSOLE,
      "<nickname> [<channel-name>]",
    ],
    ["join", cmdJoin, CMD_NEED_SRV | CMD_CONSOLE, "[<channel-name> [<key>]]"],
    [
      "join-charset",
      cmdJoin,
      CMD_NEED_SRV | CMD_CONSOLE,
      "[<channel-name> <charset> [<key>]]",
    ],
    [
      "jump-to-anchor",
      cmdJumpToAnchor,
      CMD_NEED_NET,
      "<anchor> [<channel-name>]",
    ],
    ["kick", cmdKick, CMD_NEED_CHAN | CMD_CONSOLE, "<nickname> [<reason>]"],
    ["kick-ban", cmdKick, CMD_NEED_CHAN | CMD_CONSOLE, "<nickname> [<reason>]"],
    [
      "knock",
      cmdKnock,
      CMD_NEED_SRV | CMD_CONSOLE,
      "<channel-name> [<reason>]",
    ],
    [
      "leave",
      cmdLeave,
      CMD_NEED_NET | CMD_CONSOLE,
      "[<channel-name>] [<reason>]",
    ],
    ["links", cmdSimpleCommand, CMD_NEED_SRV | CMD_CONSOLE],
    ["list", cmdList, CMD_NEED_SRV | CMD_CONSOLE, "[<channel-name>]"],
    ["list-plugins", cmdListPlugins, CMD_CONSOLE, "[<plugin>]"],
    ["load", cmdLoad, CMD_CONSOLE, "<url>"],
    ["log", cmdLog, CMD_CONSOLE, "[<state>]"],
    ["map", cmdSimpleCommand, CMD_NEED_SRV | CMD_CONSOLE],
    ["marker", cmdMarker, CMD_CONSOLE],
    ["marker-clear", cmdMarker, CMD_CONSOLE],
    ["marker-set", cmdMarker, CMD_CONSOLE],
    ["match-users", cmdMatchUsers, CMD_NEED_CHAN | CMD_CONSOLE, "<mask>"],
    ["me", cmdMe, CMD_CONSOLE, "<action>"],
    ["motd", cmdSimpleCommand, CMD_NEED_SRV | CMD_CONSOLE],
    [
      "mode",
      cmdMode,
      CMD_NEED_SRV | CMD_CONSOLE,
      "[<target>] [<modestr> [<param> [<...>]]]",
    ],
    ["motif", cmdMotif, CMD_CONSOLE, "[<motif>]"],
    ["msg", cmdMsg, CMD_NEED_SRV | CMD_CONSOLE, "<nickname> <message>"],
    ["name", cmdName, CMD_CONSOLE, "[<username>]"],
    ["names", cmdNames, CMD_NEED_SRV | CMD_CONSOLE, "[<channel-name>]"],
    ["network", cmdNetwork, CMD_CONSOLE, "<network-name>"],
    [
      "network-motif",
      cmdMotif,
      CMD_NEED_NET | CMD_CONSOLE,
      "[<motif> [<network>]]",
    ],
    [
      "network-pref",
      cmdPref,
      CMD_NEED_NET | CMD_CONSOLE,
      "[<pref-name> [<pref-value>]]",
    ],
    ["networks", cmdNetworks, CMD_CONSOLE],
    ["nick", cmdNick, CMD_CONSOLE, "[<nickname>]"],
    ["notice", cmdNotice, CMD_NEED_SRV | CMD_CONSOLE, "<nickname> <message>"],
    ["notify", cmdNotify, CMD_NEED_SRV | CMD_CONSOLE, "[<nickname> [<...>]]"],
    ["open-at-startup", cmdOpenAtStartup, CMD_CONSOLE, "[<toggle>]"],
    ["oper", cmdOper, CMD_NEED_SRV | CMD_CONSOLE, "<opername> [<password>]"],
    ["ping", cmdPing, CMD_NEED_SRV | CMD_CONSOLE, "<nickname>"],
    [
      "plugin-pref",
      cmdPref,
      CMD_CONSOLE,
      "<plugin> [<pref-name> [<pref-value>]]",
    ],
    ["pref", cmdPref, CMD_CONSOLE, "[<pref-name> [<pref-value>]]"],
    ["print", cmdPrint, CMD_CONSOLE],
    ["query", cmdQuery, CMD_NEED_SRV | CMD_CONSOLE, "<nickname> [<message>]"],
    ["quit", cmdQuit, CMD_CONSOLE, "[<reason>]"],
    ["quote", cmdQuote, CMD_NEED_NET | CMD_CONSOLE, "<irc-command>"],
    ["rename", cmdRename, CMD_CONSOLE, "[<label>]"],
    ["reload-plugin", cmdReload, CMD_CONSOLE, "<plugin>"],
    ["rlist", cmdRlist, CMD_NEED_SRV | CMD_CONSOLE, "<regexp>"],
    ["reconnect", cmdReconnect, CMD_NEED_NET | CMD_CONSOLE, "[<reason>]"],
    ["reconnect-all", cmdReconnectAll, CMD_CONSOLE, "[<reason>]"],
    [
      "rejoin",
      cmdRejoin,
      CMD_NEED_SRV | CMD_NEED_CHAN | CMD_CONSOLE,
      "[<reason>]",
    ],
    ["reload-ui", cmdReloadUI, 0],
    ["save", cmdSave, CMD_CONSOLE, "[<filename> [<savetype>]]"],
    ["say", cmdSay, CMD_CONSOLE, "<message>"],
    ["server", cmdServer, CMD_CONSOLE, "<hostname> [<port> [<password>]]"],
    ["set-current-view", cmdSetCurrentView, 0, "<view>"],
    ["stats", cmdSimpleCommand, CMD_NEED_SRV | CMD_CONSOLE, "[<params>]"],
    ["squery", cmdSquery, CMD_NEED_SRV | CMD_CONSOLE, "<service> [<commands>]"],
    ["sslserver", cmdServer, CMD_CONSOLE, "<hostname> [<port> [<password>]]"],
    ["ssl-exception", cmdSSLException, 0, "[<hostname> <port> [<connect>]]"],
    ["stalk", cmdStalk, CMD_CONSOLE, "[<text>]"],
    ["supports", cmdSupports, CMD_NEED_SRV | CMD_CONSOLE],
    ["sync-font", cmdSync, 0],
    ["sync-header", cmdSync, 0],
    ["sync-log", cmdSync, 0],
    ["sync-motif", cmdSync, 0],
    ["sync-timestamp", cmdSync, 0],
    ["testdisplay", cmdTestDisplay, CMD_CONSOLE],
    ["text-direction", cmdTextDirection, 0, "<dir>"],
    ["time", cmdTime, CMD_NEED_SRV | CMD_CONSOLE, "[<nickname>]"],
    ["timestamps", cmdTimestamps, CMD_CONSOLE, "[<toggle>]"],
    ["toggle-ui", cmdToggleUI, CMD_CONSOLE, "<thing>"],
    ["toggle-pref", cmdTogglePref, 0, "<pref-name>"],
    ["toggle-group", cmdToggleGroup, 0, "<group-id>"],
    ["topic", cmdTopic, CMD_NEED_CHAN | CMD_CONSOLE, "[<new-topic>]"],
    ["unalias", cmdAlias, CMD_CONSOLE, "<alias-name>"],
    ["unignore", cmdIgnore, CMD_NEED_NET | CMD_CONSOLE, "<mask>"],
    ["unban", cmdBanOrExcept, CMD_NEED_CHAN | CMD_CONSOLE, "<nickname>"],
    ["unexcept", cmdBanOrExcept, CMD_NEED_CHAN | CMD_CONSOLE],
    ["uninstall-plugin", cmdUninstallPlugin, CMD_CONSOLE, "<plugin>"],
    ["unstalk", cmdUnstalk, CMD_CONSOLE, "<text>"],
    ["urls", cmdURLs, CMD_CONSOLE, "[<number>]"],
    ["user", cmdUser, CMD_CONSOLE, "[<username> <description>]"],
    ["userhost", cmdUserhost, CMD_NEED_SRV | CMD_CONSOLE, "<nickname> [<...>]"],
    ["userip", cmdUserip, CMD_NEED_SRV | CMD_CONSOLE, "<nickname> [<...>]"],
    ["usermode", cmdUsermode, CMD_CONSOLE, "[<new-mode>]"],
    ["user-motif", cmdMotif, CMD_NEED_USER | CMD_CONSOLE, "[<motif> [<user>]]"],
    [
      "user-pref",
      cmdPref,
      CMD_NEED_USER | CMD_CONSOLE,
      "[<pref-name> [<pref-value>]]",
    ],
    ["version", cmdVersion, CMD_NEED_SRV | CMD_CONSOLE, "[<nickname>]"],
    ["websearch", cmdWebSearch, CMD_CONSOLE, "<selected-text>"],
    ["who", cmdWho, CMD_NEED_SRV | CMD_CONSOLE, "<rest>"],
    ["whois", cmdWhoIs, CMD_NEED_SRV | CMD_CONSOLE, "<nickname> [<...>]"],
    ["whowas", cmdWhoWas, CMD_NEED_SRV | CMD_CONSOLE, "<nickname> [<limit>]"],
    ["wii", cmdWhoIsIdle, CMD_NEED_SRV | CMD_CONSOLE, "<nickname> [<...>]"],

    /* aliases */
    ["exit", "quit", CMD_CONSOLE, "[<reason>]"],
    ["j", "join", CMD_CONSOLE, "[<channel-name> [<key>]]"],
    ["pass", "quote PASS", CMD_CONSOLE, "<password>"],
    ["part", "leave", CMD_CONSOLE],
    ["raw", "quote", CMD_CONSOLE],
    // Shortcuts to useful URLs:
    ["faq", "goto-url-newtab faq", 0],
    // Used to display a nickname in the menu only.
    ["label-user", "echo", 0, "<unspecified>"],
    ["label-user-multi", "echo", 0, "<unspecified>"],
    // These are all the font family/size menu commands...
    ["font-family-default", "font-family default", 0],
    ["font-family-serif", "font-family serif", 0],
    ["font-family-sans-serif", "font-family sans-serif", 0],
    ["font-family-monospace", "font-family monospace", 0],
    ["font-family-other", "font-family other", 0],
    ["font-size-default", "font-size default", 0],
    ["font-size-small", "font-size small", 0],
    ["font-size-medium", "font-size medium", 0],
    ["font-size-large", "font-size large", 0],
    ["font-size-other", "font-size other", 0],
    ["font-size-bigger", "font-size bigger", 0],
    // This next command is not visible; it maps to Ctrl-=, which is what
    // you get when the user tries to do Ctrl-+ (previous command's key).
    ["font-size-bigger2", "font-size bigger", 0],
    ["font-size-smaller", "font-size smaller", 0],
    ["toggle-oas", "open-at-startup toggle", 0],
    ["toggle-ccm", "toggle-pref collapseMsgs", 0],
    ["toggle-copy", "toggle-pref copyMessages", 0],
    ["toggle-usort", "toggle-pref sortUsersByMode", 0],
    ["toggle-umode", "toggle-pref showModeSymbols", 0],
    ["toggle-timestamps", "timestamps toggle", 0],
    ["motif-dark", "motif dark", 0],
    ["motif-light", "motif light", 0],
    ["sync-output", "evalsilent syncOutputFrame(this)", 0],
    ["userlist", "toggle-ui userlist", CMD_CONSOLE],
    ["tabstrip", "toggle-ui tabstrip", CMD_CONSOLE],
    ["statusbar", "toggle-ui status", CMD_CONSOLE],
    ["header", "toggle-ui header", CMD_CONSOLE],

    // text-direction aliases
    ["rtl", "text-direction rtl", CMD_CONSOLE],
    ["ltr", "text-direction ltr", CMD_CONSOLE],
    ["toggle-text-dir", "text-direction toggle", 0],
    ["irtl", "input-text-direction rtl", CMD_CONSOLE],
    ["iltr", "input-text-direction ltr", CMD_CONSOLE],
    // Services aliases
    ["cs", "quote cs", 0],
    ["ms", "quote ms", 0],
    ["ns", "quote ns", 0],
  ];

  // set the stringbundle associated with these commands.
  cmdary.stringBundle = client.defaultBundle;

  client.commandManager = new CommandManager(client.defaultBundle);
  client.commandManager.defaultFlags = CMD_CONSOLE;
  client.commandManager.isCommandSatisfied = isCommandSatisfied;
  client.commandManager.defineCommands(cmdary);

  var restList = [
    "reason",
    "action",
    "text",
    "message",
    "params",
    "font",
    "expression",
    "ircCommand",
    "prefValue",
    "newTopic",
    "file",
    "password",
    "commandList",
    "commands",
    "description",
    "selectedText",
  ];
  var stateList = ["connect"];

  client.commandManager.argTypes.__aliasTypes__(restList, "rest");
  client.commandManager.argTypes.__aliasTypes__(stateList, "state");
  client.commandManager.argTypes.plugin = parsePlugin;
}