Handles, as you propably already know was Cyberman head companion of 11th Doctor in his final story The Time Of The Doctor. I believe, that Handles might be excellent addition to TARDIS plugin as well.
How it could be done:
Handles could be custom player head, so it would not require recource pack. There is however no need for any real Minecraft account to have Handles skin, because it is possible to add custom heads/skins using this website: https://mineskin.org/
Once custom head is generated, it gives you data you can use with ProtocolLib plugin to add custom head.
Handles could be very rare drop from Cyberman (from TARDISWeepingAngels plugin)
You could place Handles either on ground (will drop itself once mined) or just keep it in the hotbar. If one of these conditions is true, handles will hear you. If player has multiple Handleses, only one of them will be used.
What would it do:
There could exist different voice commands Handles would obey. Here are some idead of those voice commands. Just write commands in the chat and Handles will responce (I also made several alternative versions of commands).There should also prefix for commands so that it would be easier to detect regular chatting from voice commands. More about prefix later
- call my TARDIS here/TARDIS call/call TARDIS/TARDIS here
- takeoff TARDIS/takeoff my TARDIS/takeoff/TARDIS land
- land TARDIS/land my TARDIS/land/TARDIS land
- hide TARDIS/TARDIS hide/hide/hide my TARDIS
- rebuild TARDIS/TARDIS rebuild/rebuild/rebuild my TARDIS
- beam me up/tp TARDIS/teleport TARDIS/tp to TARDIS/teleport to TARDIS/teleport to the TARDIS/tp to the TARDIS
- travel to save [save]/save [save] (If inside the TARDIS, it will set destination, if outside, TARDIS will travel give destination remotely)
- travel to player [player]/player [player] (If inside the TARDIS, it will set destination, if outside, TARDIS will travel give destination remotely)
- travel to area [area]/area [area] (If inside the TARDIS, it will set destination, if outside, TARDIS will travel give destination remotely)
- travel [anything]/ travel to [anything (Handles will give you help about how to give voice commands about traveling)
- how do I craft [insert item here]/how to craft [insert item here]/craft [insert item here]/how to [insert item here] how [insert item here]
- lock/lock TARDIS/lock the TARDIS/lock my TARDIS
- unlock/unlock TARDIS/unlock the TARDIS/unlock my TARDIS
- remind me to [insert thing to remind here] (Handles would simply ask when)
- say [something] (Handles will say what you asked it to say)
- who am I/what is my name/my name (Handles would tell you your name)
- what is the time/clock/time (Handles will tell you ingame time)
If command is invalid, Handles will say "Sorry, that is not available command"
Before voice command itself, there would be prefix. By default it would be "Hey Handles" (not case-sensitive). This could, however be changed in the config to be something else.
In order not to make Handles too op, there should be certain radius where Handles can hear you. By default it could be 30 blocks. However, if player crafts and wear communicator device, players own Handles will be able to hear player even if they are in separated dimensions. Also, if companion uses Telepathic circuit, he will be able to give voice commands for the Handles, but only if Handles is placed on the ground by its owner (and within radius)
I already explained how it works. It could be crafted like this:
Communicator would be wearable item:
tardis.handles.obtain (allows player to obtain Handles as a loot)
tardis.handles.use (allows player to actually use Handles)
tardis.handles.communicator (allows player to use communicator)
tardis.handles.admin (allows player to speak for his Handles even from separate dimensions even if player doesnt have communicator)
tardis.handles.tp (allows player to use Handles to teleport inside his TARDIS via command)
tardis.handles.remote (allows player to remotely make TARDIS travel for given destination via Handles)
tardis.handles.scan (allows player to use TARDIS scan even outside of the TARDIS)
If player has tardis.handles.admin he can use all of the feature of the Handles even if he doesnt have separated permissions to use them
How handles might look like (ignore armorstand):
Overall, Handles could be alternative way of controlling the TARDIS. There could also be way of making custom commands via configuration files. Here is btw skin my Handles uses (do whatever you want with it).
I quite like this idea, but feel it needs something more, perhaps combining with this suggestion: In-Game Programming / logic gates
Also I don't think you actually need the alternative commands, just the prefix and a keyword, so if the player types:
"Hey Handles blah blah hide blah" or
"Hey Handles hide blah blah blah" or
"Hey Handles blah blah blah hide"
It knows to hide the TARDIS.
You don't need ProtocolLib either.
Also think Handles should only be able to be placed inside the TARDIS on a pedestal (a single fence or cobblestone wall) and must be carried in the inventory when out and about.
Oh I didnt know you dont need ProtocolLib for that. Anyway, using just keyword and prefix is good idea, and so is Handles pedestal. On my server I like to keep my Handles (Yes, some of the ideas mentioned in this already exist on my server) on armorstand, so that I can take him and put him back in place when ever I like without having to rename him back to "Handles" all the time.
I should be able to get the plugin to rename Handles after he has been placed, but maybe just using an armour stand for the pedestal would be simpler...
Custom block model, not final texture
Well that looks great! I love it! Which block are you going to give that custom model btw.?
At the moment it uses light grey glazed terracotta, which works quite well because it is directional (and I really don't like the default glazed textures).
It does have an issue though, in that if it isn't placed on a pedestal the bounding box makes the block it is placed on transparent. Might have to use something like the end rod, but that doesn't rotate when placed in different directions. Will have to experiment a bit more...
New texture, and some interactivity, plus solved the transparent block issue :)
looks great :)
Little side question (I know this has nothing to do with Handles): In TARDISWeepingAngels plugin you are able to build Weeping Angel from blocks, but I dont remember how (I couldnt find any pictures about it). Could you tell me?
~3000 lines of code added so far...
sounds good. What do you think, ho many more lines of code it will take until it is finished?
If TARDISWeepingAngels is not installed on the server, how do you get Handles?
Maybe via crafting? Maybe it should be crafted with skeleton skull surrounded with iron ingots? Somethingt like that?
Oh yeah, one more thing I forgot to mention. Long time ago I suggested adding gramophoned for the TARDIS plugin. If those ever get added, you could say "Hey Handles, play [music]" to play specific music used by the gramophone via Handles.
There is a build ready for testing on the Jenkins server...
handles: true #whether Handles is enabled on the server (requires restart)
prefix: Hey Handles #the key word to trigger Handles chat processing
enabled: true #whether reminders are enabled
schedule: 1200 #number of ticks between reminder checks (1200 = 1 minute)
description: Allow players to use the Handles companion.
There may be changes, so I'd recommend running on a test server for now...
Hey, is it a problem if i ask you to update the wiki on the plugin to have the handles programming tutorial. hope not. ps this is addressed to eccentricnz
EDIT: The travel player command doesn't work with underscores
To post a comment, please
or register a new account.