From 965df8fbdb42a53ab574404b8dab31a6210970b4 Mon Sep 17 00:00:00 2001 From: Henry Gabryjelski Date: Fri, 20 Aug 2021 12:14:29 -0700 Subject: [PATCH] handle delays and add note for auto-equip --- Macropad_Hotkeys/macros/minecraft-pe-equip.py | 165 ++++++++++-------- 1 file changed, 89 insertions(+), 76 deletions(-) diff --git a/Macropad_Hotkeys/macros/minecraft-pe-equip.py b/Macropad_Hotkeys/macros/minecraft-pe-equip.py index 0b7e3941d..14ec121c0 100644 --- a/Macropad_Hotkeys/macros/minecraft-pe-equip.py +++ b/Macropad_Hotkeys/macros/minecraft-pe-equip.py @@ -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]), ] }