Handles
Handles is the name given by the Eleventh Doctor to a Cyberman head that he obtained from the Maldovarium Market, and subsequently repaired.
You can craft and place Handles so that he can interact with you and the TARDIS.
To see the Handles crafting recipe, use the command /tardisrecipe handles
. Alternatively, you can give yourself or
other players a Handles with the command /tardisgive [player] handles 1
Handles can only be placed inside the TARDIS, and must be placed in an item frame.
Communicator
Outside the TARDIS you can only communicate with Handles if he is in your inventory, or you have a communicator (and
Handles is placed in the TARDIS) — use the /tardisrecipe communicator
to view the recipe, or give a communicator with
the /tardisgive [player] communicator 1
command.
Talking to Handles
Use chat to talk to Handles. All communication must be proceeded by a prefix — by default this is: “Hey Handles” — followed by one or more keywords.
Keywords for chat processing are: “takeoff”, “land”, “scan, “lock”, “unlock”, “remind”, “say”, “name”, “time”, “handbrake” — or “brake” or “park” , “travel” — travel can be to “home”, “save” [name], “player” [name], “area” [name], “biome” [name] — normal TARDIS permissions apply.
Examples
hey handles takeoff
hey handles land
hey handles handbrake on
hey handles scan the exterior
hey handles lock the door
hey handles unlock the door
hey handles remind me to get some wood in 5
hey handles say something funny
hey handles what is my name
hey handles what time is it
Reminders need to have the number of minutes (until the reminder) as the last part of the handles request
e.g. hey handles remind me to [do something] in 5
(reminder times will not be 100% accurate, because the plugin only
checks for reminders every minute — can be changed in the config)
Commands
Name a Handles Program Disk
/handles disk [name]
Remove the Handles record from the TARDIS database. Use this if Handles is destroyed accidentally.
/handles remove
Config Options
Handles comes with several configuration options, which can be edited in handles.yml
.
Most Handles options (except enabled
and reminders
) require regular expressions (regex) to properly fine tune the possible commands to listen to.
You should familiarise yourself with regex and test your responses with sites like RegExr.
All your regexes must be in single quotes!
The default configuration is listed below.
# must use single quotes to wrap regular expressions
enabled: true
prefix: '^(?:hey,?\s+)?handles(?:[,!:\s]|\.\.\.+)'
reminders:
enabled: true
schedule: 1200
core-commands:
craft: '\b(?:craft|build|make|create)\b.*\b(\w+)\s+(tardis\b)?(\b.*\b)'
remind: '\bremind\s*(?:me\s+to)?\s+(.+)\s+.+(\d+)'
say: '\bsay\s+(.+)'
name: '\bname\b'
time: '\btime\b'
call: '\bcall\b'
takeoff: '\btake\s*off\b'
land: '\bland\b'
hide: '\bhide\b'
rebuild: '\brebuild\b'
direction: '\b(?:fac(?:ing|e)|direction)\s+(\w+)'
lights: '\b(?:lights\b.*\b(off|on)|(off|on)\b.*\blights)\b'
power: '\b(?:power\b.*\b(off|on)|(off|on)\b.*\bpower)\b'
brake: '\b(?:(?:hand)*brake|park)\b'
travel:
save: '\b(?:travel|go)\s+(?:to\s+)?.*?(?:saved?(?:\s+(?:location|destination|place|point))?|destination)\s+(\w+)'
home: '\b(?:travel|go)\s+(?:to\s+)?.*?home\b'
random: '\b(?:(?:travel|go)\s+(?:to\s+)?.*?|find\b.+)\brandom\b'
player: '\b(?:travel|go)\s+(?:to\s+)?.*?player\s+(\w+)'
area: '\b(?:travel|go)\s+(?:to\s+)?.*?(?:\b(\w+)\s+area|area\s+(\w+))\s*?$'
biome: '\b(?:(?:travel|go)\s+(?:to\s+)?.*?|find\b.+)(?:\b([\w:]+)\s+biome|biome\s+(\w+))\s*?$'
cave: '\b(?:(?:travel|go)\s+(?:to\s+)?.*?|find\b.+)\bcave\b'
village: '\b(?:(?:travel|go)\s+(?:to\s+)?.*?|find\b.+)\bvillage\b'
door:
open: '\b(?:open\b.*\bdoor|door\b.*\bopen(?:ed)?)\b'
close: '\b(?:close\b.*\bdoor|door\b.*\bclosed?)\b'
lock: '\b(?:lock\b.*\bdoor|door\b.*\block(?:ed)?)\b'
unlock: '\b(?:unlock\b.*\bdoor|door\b.*\bunlock(?:ed)?)\b'
scan: '\bscan\b'
teleport: '\bteleport\b'
transmat: '\btransmat\s+(?:(?:me\s+)?to\s+(?:the\s+)?)?(.+)'
custom-commands:
weird:
regex: '\bblah\b'
permission: tardis.handles.use
commands:
- handles tell %player_name% I'm sorry %player_displayname%, I'm afraid I can't do that
- handles weird
console:
regex: '\bconsole\s+(\w+)'
permission: tardis.admin
commands:
- ^tadmin list $1
Breakdown of some options:
enabled
- boolean true/false, whether Handles is enabled, requires a server restart to changereminders.enabled
- boolean true/false, whether Handles can remind you of thingsreminders.schedule
- integer, how often Handles should check for reminders, in ticks
Interaction
Clicking on a placed handles plays a Handles voice snippet (TARDIS-SoundResourcePack required)
The TARDIS-Resource-Pack has been updated with the Handles model and textures — the Handles block is a BIRCH_BUTTON.
Clicking on Handles while sneaking opens the Handles Programming GUI where you can create
program disks, documentation yet to come, disks can be renamed with a /handles disk [name]
command). More on this
later, but it should extend Handles’ functionality a bit with events and more actions and will work with Advanced
Console Disks.
Permissions
The is one parent permission, with three children for finer control that allow players to use the Handles companion.
tardis.handles
And the children:
tardis.handles.use
tardis.handles.communicator
tardis.handles.program
Programming Handles
The programming feature is not fully tested and you may run into bugs! Please report them to the issues tab on GitHub if you do.
Clicking on Handles while sneaking opens the Handles Programming GUI where you can create program disks, allowing you to extend Handles’ functionality with events, actions, and Advanced Console Disks.
The Handles programming is block based — instructions are represented as blocks that you add in a particular order to create a program that Handles can run.