Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
Excerpt

How to define a command handler function....

 

Syntax

Code Block
themeRDark
languagejavascript
linenumberstrue
var myHandler = function myHandler(command, player, message, cdo) {
	// your code here
 
	// return a string or array of strings
	return "Command was: "+command;
}

Parameters

ParameterTypeMandatoryNotesChat Ver
commandString(tick)

The command that was issued.

You can create a single handler function and use it as the handler for multiple chat commands, switching internally on the command name.

(warning) Will always be converted to lowercase.

0.1
playerNumber(tick)

The ID of the player that issued the command.

This is particularly useful if you want to start a chat conversation with that player in response to the command they just issued.

0.1
messageArray of String(tick)

An array containing each word in the player's message.

The string at message[0] will always be the command name (same as command parameter).

If you want the full message as a single string, access it via: cdo.message

0.1
cdoConversation Descriptor Object

The conversation object associated with 'player' – see Conversation Mode for details.

Note: If your command handler function is invoked, then obviously there isn't an active conversation with that player. The conversation object is provided in case you want to add some data to it and start a new conversation as a result of the command that was just invoked.

0.1

Return Values

ValueTypeNotesChat Ver
<string>StringA single line chat message to send back to the player.0.1
<array>Array of StringA multi-line chat message to send back to the player.0.1

undefined

null

Undefined

Null

If your handler function returns nothing, no message will be sent back to the player.0.1
<error>ErrorIf an exception is thrown, the chat API will convert it in to a single line message and send back to the player.0.1

Example

Code Block
themeRDark
languagejavascript
titleSingle command, with different output based on second keyword
linenumberstrue
var helpHandler = function helpHandler(command, player, message, cdo) {
  // command == message[0] == "help"
  // message[1] == second keyword (eg. 'foo' if user sent '.help foo')
  switch (message[1]) {
    case "foo": return "some help for foo";
    case "bar": return "some help for bar";
    default   : return ["Type '.help <whatever>' where",
                        "Where <whatever> can be either 'foo' or 'bar'"];
  }
}
 
registerChatCommandchat.on("help", helpHandler);
 
/* user can now send commands such as:
 
.help = Type '.help <whatever>' where <whatever> can be either 'foo' or 'bar'
.help foo = some help for foo
.help bar = some help for bar
*/
Code Block
themeRDark
languagejavascript
titleSingle handler for multiple commands
linenumberstrue
var multiHandler = function multiHandler(command, player, message, cdo) {
  switch (command) {
    case "foo": return "your command: foo";
    case "bar": return "your command: bar";
    default   : return "yourunknown command: "+command+" (which I don't understand)";
  }
}
 
registerChatCommandchat.on("foo", multiHnadler); // .foo = your command: foo
registerChatCommandchat.on("bar", multiHandler); // .bar = your command: bar
registerChatCommandchat.on("moo", multiHandler); // .moo = yourunknown command: moo (which I don't understand)
Div
classbox

Availability
Status
colourYellow
titleBeta

Requires:

Div
classbox

Chat API

Topics:

Child pages (Children Display)
alltrue
depthall
pageChat API
excerpttrue