handle delays and add note for auto-equip

This commit is contained in:
Henry Gabryjelski 2021-08-20 12:14:29 -07:00
parent da36ebd360
commit 965df8fbdb

View file

@ -1,9 +1,14 @@
# MACROPAD Hotkeys example: Minecraft Effects (Creative) for Bedrock Edition
# NOTE: There appears to be a line length limit. Exceeding that limit appears
# Note: Must enable "full keyboad gameplay" to equip armor automatically.
# This is found under "settings", then "keyboard and mouse".
# NOTE: There is a line length limit (? ~100 char ?). Exceeding that limit appears
# to result in silent failure. Therefore, the key sequences are split
# across multiple lines.
from adafruit_hid.keycode import Keycode # REQUIRED if using Keycode.* values
# See https://minecraft.fandom.com/wiki/Effect
@ -17,9 +22,14 @@ from adafruit_hid.keycode import Keycode # REQUIRED if using Keycode.* values
from adafruit_hid.keycode import Keycode # REQUIRED if using Keycode.* values
DELAY_AFTER_COMMAND = 0.10
DELAY_AFTER_COMMAND = 0.75
DELAY_AFTER_SLASH = 0.80 # required so minecraft has time to bring up command screen
CONFIGURABLE_KEY_EQUIP_CURRENTLY_HELD_ITEM = 'E'
DELAY_BEFORE_RETURN = 0.10 # give minecraft time to show all the keys pressed...
# If "full-keyboard gameplay" is not enabled, armor can be left in inventory
# CONFIGURABLE_KEY_EQUIP_CURRENTLY_HELD_ITEM = Keycode.PAGE_UP
CONFIGURABLE_KEY_EQUIP_CURRENTLY_HELD_ITEM = Keycode.E
app = {
'name': 'Minecraft PE (equip)',
@ -27,230 +37,233 @@ app = {
(0x003000, 'helm', [
'/', DELAY_AFTER_SLASH,
'replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_helmet',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s protection 4',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s respiration 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s aqua_affinity 1',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
CONFIGURABLE_KEY_EQUIP_CURRENTLY_HELD_ITEM]),
(0x003000, 'plate', [
(0x003000, 'elytra', [
'/', DELAY_AFTER_SLASH,
'replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_chestplate',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s protection 4',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
CONFIGURABLE_KEY_EQUIP_CURRENTLY_HELD_ITEM]),
(0x003000, 'legs', [
'/', DELAY_AFTER_SLASH,
'replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_leggings',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s protection 4',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
CONFIGURABLE_KEY_EQUIP_CURRENTLY_HELD_ITEM]),
(0x003000, 'boots', [
'/', DELAY_AFTER_SLASH,
'replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_boots',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s protection 4',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s feather_falling 4',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s depth_strider 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s soul_speed 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
CONFIGURABLE_KEY_EQUIP_CURRENTLY_HELD_ITEM]),
(0x003000, 'frosty', [
'/', DELAY_AFTER_SLASH,
'replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_boots',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s protection 4',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s feather_falling 4',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s frost_walker 2',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s soul_speed 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
CONFIGURABLE_KEY_EQUIP_CURRENTLY_HELD_ITEM]),
(0x300000, 'feedme', [
'/', DELAY_AFTER_SLASH,
'replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_sword',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s fire_aspect 2',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s knockback 2',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s looting 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s sharpness 5',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
Keycode.PAGE_UP, -Keycode.PAGE_UP]),
(0x300000, 'excal', [
'/', DELAY_AFTER_SLASH,
'replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_sword',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s fire_aspect 2',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s knockback 2',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s looting 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s sharpness 5',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
Keycode.PAGE_UP, -Keycode.PAGE_UP]),
(0x300000, 'trident', [
'/', DELAY_AFTER_SLASH,
'replaceitem entity @s slot.weapon.mainhand 0 destroy trident',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s loyalty 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s channeling 1',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s riptide 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s impaling 5',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
Keycode.PAGE_UP, -Keycode.PAGE_UP]),
(0x300000, 'bow', [
'/', DELAY_AFTER_SLASH,
'replaceitem entity @s slot.weapon.mainhand 0 destroy bow',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s power 5',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s punch 2',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
Keycode.PAGE_UP, -Keycode.PAGE_UP]),
(0x000030, 'silky', [
'/', DELAY_AFTER_SLASH,
'replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_pickaxe',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s efficiency 5',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s silk_touch 1',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
Keycode.PAGE_UP, -Keycode.PAGE_UP]),
(0x000030, 'pickme', [
'/', DELAY_AFTER_SLASH,
'replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_pickaxe',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s efficiency 5',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s fortune 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
Keycode.PAGE_UP, -Keycode.PAGE_UP]),
(0x000030, 'axe', [
'/', DELAY_AFTER_SLASH,
'replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_axe',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s fortune 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s efficiency 5',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s sharpness 5',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
Keycode.PAGE_UP, -Keycode.PAGE_UP]),
]
}