Adafruit_Learning_System_Gu.../Macropad_Hotkeys/macros/minecraft-pe-equip.py
Henry Gabryjelski 31d173f3d8
pylint fix
2021-08-23 15:57:52 -07:00

267 lines
14 KiB
Python

# MACROPAD Hotkeys example: Minecraft Effects (Creative) for Bedrock Edition
# 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
# Unfortunately, bedrock edition has no single command that both
# gives an item and enchants it. Thus, have to place the item in
# the player's inventory slot, enchant it, then equip it.
#
# As a result, it is probably better to learn on less complex
# macro files before attempting to adjust settings in this one.
DELAY_AFTER_COMMAND = 0.75
DELAY_AFTER_SLASH = 0.80 # required so minecraft has time to bring up command screen
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)',
'macros': [
(0x003000, 'helm', [
'/', DELAY_AFTER_SLASH,
'replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_helmet',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s protection 4',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s respiration 3',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s aqua_affinity 1',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
CONFIGURABLE_KEY_EQUIP_CURRENTLY_HELD_ITEM]),
(0x003000, 'elytra', [
'/', DELAY_AFTER_SLASH,
'replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_chestplate',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
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',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s protection 4',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
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',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s protection 4',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s feather_falling 4',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s depth_strider 3',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s soul_speed 3',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
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',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s protection 4',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s feather_falling 4',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s frost_walker 2',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s soul_speed 3',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
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',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s fire_aspect 2',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s knockback 2',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s looting 3',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s sharpness 5',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
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',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s fire_aspect 2',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s knockback 2',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s looting 3',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s sharpness 5',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
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',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s loyalty 3',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s channeling 1',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s riptide 3',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s impaling 5',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
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',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s power 5',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s punch 2',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
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',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s efficiency 5',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s silk_touch 1',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
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',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s efficiency 5',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s fortune 3',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
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',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s mending 1',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s fortune 3',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s efficiency 5',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s sharpness 5',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
'/', DELAY_AFTER_SLASH,
'enchant @s unbreaking 3',
DELAY_BEFORE_RETURN, Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
Keycode.PAGE_UP, -Keycode.PAGE_UP]),
]
}