267 lines
14 KiB
Python
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]),
|
|
]
|
|
}
|