Bedican Compass - Help

User contributed commands

User contributed commands available within the Bedican Compass are listed below, and should be typed on their own line.

If you would like to contribute your own set, please see the section below and contact me.

Thank you to all contributors !

_Jonty (v1):

/utimeDisplay time in London
/utime {location}Display time in {location}
/ignoringDisplay how many ignores you have
/ignoring {avname}Display how many ignores for {avname} (Only if profile public)
/online {avname}Display if {avname} is online
/weatherDisplay weather in London
/weather {location}Display weather in {location}

Riot_Girl_1 (v1):

/rg or /riotOpens Riot_Girl_1 sales
/guidelines or /dgOpens developer guidelines
/submit or /subOpens developer submissions
/undoteleUndo teleport
/scheduleOpen MySchedule
/decorView decor

Flattering (v4):

/schedule or /sch or /scOpen MySchedule
/devpriceOpens developer prices
/tagcolor or /tagcolourOpens nametag colour chooser
/spaOpens list of spa locations
/frOpens pending friend requests
/historyOpens transaction history (same as /thist)
/messagebar or /mbOpens the message bar
/scbarOpens the shortcut bar
/buyOpens page to buy more tbux
/popOpens population chart

Creating your own commands

The types of user defined commands available are shown below.

echoUsed to send text to the main window.
varUsed to set an EnvironmentVarible within the There Client. Similar to predefined command /var. This type allows upto 1 parameter.
webUsed to launch a web browser. Similar to predefined command /web. This type allows upto 2 parameters.
telUsed to teleport to doid. Similar to predefined command /goto #{doid}.
telNameUsed to teleport to a place name. Similar to predefined command /goto {place name}.
aliasUsed to redefine the trigger of a predefined command. Any parameters are carried through the conversion.
invokeScriptHookUsed to invoke a script hook. This type does not allow parameters.
perfKnobUsed to set a performance setting.
targetedReturnAllow another user to invoke return text by specifying you as a target. e.g. /hello {username} would cause {username} to trigger the hello command.
xmlRequestPerforms an xml request, and displays /result/echo from the xml of that request (if present) to the main window.

Parameters should be marked with $1 and $2 for parameters 1 and 2 respectively.

A command can be created to perform multiple actions, This can be achieved by simply creating multiple commands with the same trigger.

Please note: User defined commands are limited to 8 characters per trigger, 2 default parameters, 80 characters for the return value, and only the first return value encountered being used with regards to multiple actions. Anything beyond these limits will be ignored. This is due to There Client restrictions and/or abuse potential.

Examples can be seen included within the file "bedican.xml" and the sample config file below:

<bedican>

        <!-- Used to config the global app -->
        <config>
            <browser>1</browser>
            <panel>0</panel>
        </config>

        <listener>

            <!-- Used to config the listener -->
            <config>
                <startup>1</startup>
                <ping>1</ping>
                <log>1</log>
                <user_prefix>/</user_prefix>
            </config>

            <!-- Call the user defined commands upon starting the compass -->
            <autoexec>
                <com>talk</com>
                <com>sndzones</com>
            </autoexec>

            <!-- User defined commands -->
            <user_defined>

                <!--
                    A sample command of type var, also demonstrating the use of a
                    default parameter from the trigger "zones":

                    Typing "/zones 1" will set showOtherZones to 1
                    Typing "/zones 0" will set showOtherZones to 0
                    Typing "/zones" will set showOtherZones to 1, this is due to
                        the default parameter being included and being 1
                -->
                <com>
                    <type>var</type>
                    <trigger>zones</trigger>
                    <do>
                        <var>showOtherZones</var>
                        <value>$1</value>
                        <default>
                            <param id="1">1</param>
                        </default>
                    </do>
                </com>

                <!--
                    A sample command of type var, also demonstrating a no parameter
                    command from the trigger "sndzones":

                    Typing "/sndzones" will set showSoundZones to 1
                -->
                <com>
                    <type>var</type>
                    <trigger>sndzones</trigger>
                    <do>
                        <var>showSoundZones</var>
                        <value>1</value>
                    </do>
                </com>

                <!--
                    A sample command of type web, also demonstrating the overriding
                    of a predefined command with the trigger "web"
                    and the use of a default parameter:

                    This command will only override the predefined command of the
                    same trigger due to the user defined command prefix being the
                    same as the predefined command prefix

                    Typing "/web {url}" will open a browser with the given {url}
                    Typing "/web" will open a browser with the location of http://info.there.com
                -->
                <com>
                    <type>web</type>
                    <trigger>web</trigger>
                    <return>brb, I have a browser over my face. Ouch !</return>
                    <do>
                        <url>$1$2</url>
                        <default>
                            <param id="1">http://info.there.com</param>
                        </default>
                    </do>
                </com>

                <!--
                    A sample command of type echo from the trigger "talk":

                    Typing "/talk" results in the return text being sent to the main window
                -->
                <com>
                    <trigger>talk</trigger>
                    <return>Hey, Im just logging in, I may not see your text yet !!</return>
                </com>

                <!--
                    A sample command of type tel, also demonstrating return text
                    from the trigger "home":

                    Typing "/home" results in the teleportation to the given doid
                        and return text being sent to the main window
                -->
                <com>
                    <type>tel</type>
                    <trigger>home</trigger>
                    <return>Teleporting ...</return>
                    <do>
                        <doid>123456789</doid>
                    </do>
                </com>

                <!--
                    Two sample commands of type var, demonstrating multiple commands
                    of the same trigger and the use of default parameters,
                    using the trigger "smap":

                    Typing "/smap 1" will set both hostHud and trendSec to 1
                    Typing "/smap 0" will set both hostHud and trendSec to 0
                    Typing "/smap" will set both hostHud and trendSec to 1,
                        this is due to the default parameter being included
                        and being 1 (the default params can be different if desired)
                -->
                <com>
                    <type>var</type>
                    <trigger>smap</trigger>
                    <do>
                        <var>hostHud</var>
                        <value>$1</value>
                        <default>
                            <param id="1">1</param>
                        </default>
                    </do>
                </com>
                <com>
                    <type>var</type>
                    <trigger>smap</trigger>
                    <do>
                        <var>trendSec</var>
                        <value>$1</value>
                        <default>
                            <param id="1">1</param>
                        </default>
                    </do>
                </com>

                <!--
                    A sample command of type invokeScriptHook. Script hook paths
                    can be determined from http://localhost:9999
                -->
                <com>
                    <type>invokeScriptHook</type>
                    <trigger>spoon</trigger>
                    <do>
                        <path>/mainMenu/My%20Things/Handheld%20Spoon/Hold/activate</path>
                    </do>
                </com>

                <!--
                    A sample command of type alias. The command is converted
                    to the inbuilt command and any parameters are carried through.
                -->
                <com>
                    <type>alias</type>
                    <trigger>f</trigger>
                    <do>
                        <convert>ff</convert>
                    </do>
                </com>

                <!--
                    A sample command of type telName. Use the case sensitive name
                    listed under places, (see /places for a list).
                -->
                <com>
                    <type>telName</type>
                    <trigger>zeph</trigger>
                    <do>
                        <name>Zephyr</name>
                    </do>
                </com>

                <!--
                    A sample command of type alias to allow the user bedicus
                    to trigger it to display your current time. Care should be taken
                    when allowing other users to trigger commands.

                    This is a permissive process (by the need to configure it) for this reason.
                -->
                <com>
                    <type>alias</type>
                    <trigger>xtime</trigger>
                    <who>bedicus</who>
                    <do>
                        <convert>time</convert>
                    </do>
                </com>

                <!--
                    A sample command of type alias to allow anyone (excluding yourself)
                    to trigger it to display your current time. Care should be taken
                    when allowing other users to trigger commands.

                    This is a permissive process (by the need to configure it) for this reason.
                -->
                <com>
                    <type>alias</type>
                    <trigger>ytime</trigger>
                    <who>%%</who>
                    <do>
                        <convert>time</convert>
                    </do>
                </com>

                <!--
                    A sample command of type alias to allow anyone (including yourself)
                    to trigger it to display your current time. Care should be taken
                    when allowing other users to trigger commands.

                    This is a permissive process (by the need to configure it) for this reason.
                -->
                <com>
                    <type>alias</type>
                    <trigger>ztime</trigger>
                    <who>%</who>
                    <do>
                        <convert>time</convert>
                    </do>
                </com>

                <!--
                    A sample command of type targetedReturn to allow a specific user
                    to trigger some text, the user must use the format /{trigger} {target}
                    to trigger this command.

                    The return value may include the token $who which is substituted
                    for the username of the user triggering this command.

                    As above, a specific user, % (anyone) or %% (anyone but you) may be used
                    to trigger this command.

                    The target can be anything, however if you wish to allow a user
                    to be able to type /hello {your username} to trigger this command
                    then you can either explicitly specify your username as the target,
                    or use the placeholder $me, (this is useful when using multiple accounts
                    and not needing to define a command per account).

                    Care should be taken when allowing other users to trigger commands.
                    This is a permissive process (by the need to configure it) for this reason.
                -->
                <com>
                    <type>targetedReturn</type>
                    <trigger>hello</trigger>
                    <who>%</who>
                    <return>'hi' Hello $who</return>
                    <do>
                        <target>$me</target>
                        <!--
                            Allow default target, i.e. will still be actioned if no target
                            is specified, e.g. "/hello"
                        -->
                        <allow-default>true</allow-default>
                    </do>
                </com>

                <!--
                    A sample command to make the return text be sent to the main window,
                    however with the option to allow a specific user to trigger it.

                    Since it is not targeted (as like with the type targetedReturn)
                    this means anyone with this command configured would perform this action
                    as a target is not specified as part of the command.

                    As above, a specific user, % (anyone) or %% (anyone but you) may be used
                    to trigger this command.

                    Care should be taken when allowing other users to trigger commands.
                    This is a permissive process (by the need to configure it) for this reason.
                -->
                <com>
                    <trigger>bow</trigger>
                    <who>%</who>
                    <return>'bow'</return>
                </com>

                <!--
                    A sample command to set a performance setting with using 2 parameters,
                    including defaults.

                    Setting will be parameter 1, while the value parameter 2.
                    e.g. /pkvs {name} {value} will set the {name} setting to {value}.

                    Since this command has two default parameters defined,
                    using /pkvs without any parameters, will set the viewScale to 2.0.
                -->
                <com>
                    <type>perfKnob</type>
                    <trigger>pkvs</trigger>
                    <return>Setting perfKnob $1 to $2</return>
                    <do>
                        <setting>$1</setting>
                        <value>$2</value>
                          <default>
                            <param id="1">viewScale</param>
                            <param id="2">2.0</param>
                        </default>
                    </do>
                </com>

                <!--
                    A sample command to set a performance setting directly.
                    i.e. /pkvs2 will set the viewScale setting to 2.0.
                -->
                <com>
                    <type>perfKnob</type>
                    <trigger>pkvs2</trigger>
                    <return>Setting perfKnob viewScale to 2.0</return>
                    <do>
                        <setting>viewScale</setting>
                        <value>2.0</value>
                    </do>
                </com>

                <!--
                    A sample command to request an xml document on the web.

                    $time maybe used within the url parameter to give the current
                    timestamp for use as a cache buster.

                    The domain used, must hold a valid crossdomain.xml policy allowing
                    access from all domains (being as we are requesting from a local machine).

                    If single-param option is present and true, the text after the command
                    will be treated as a single parameter maintaining spaces, and not
                    munged in to two where appropriate (this is a there client feature).
                    This means, when using this option, the script serving the xml document
                    will need to handle the spaces that the there client injects.
                -->
                <com>
                    <type>xmlRequest</type>
                    <trigger>xmlreq</trigger>
                    <return>Calling an xml service somewhere on the web</return>
                    <do>
                        <single-param>true</single-param>
                        <url>http://domain.tld/path/to/file.xml?t=$time&p1=$1&p2=$2</url>
                        <default>
                            <param id="1">default1</param>
                            <param id="2">default2</param>
                        </default>
                    </do>
                </com>

                <!--
                    Two sample commands, showing how two users may use the same
                    command to trigger an outfit change on both avatars. The
                    commands must be present in both installs of the compass, each
                    with the other avatar name.

                    The first command only actions if the the user bedicus types the
                    command /twins {outfit}, the second if you do, but both have the
                    same effect of being an alias for /outfit {outfit}.
                -->
                <com>
                    <type>alias</type>
                    <trigger>twins</trigger>
                    <who>bedicus</who>
                    <do>
                        <convert>outfit</convert>
                    </do>
                </com>
                <com>
                    <type>alias</type>
                    <trigger>twins</trigger>
                    <do>
                        <convert>outfit</convert>
                    </do>
                </com>

            </user_defined>

        </listener>

        <msgbar>
            <config>
                <startup>0</startup>
            </config>
        </msgbar>

    </bedican>