diff --git a/Macropad_Hotkeys/macros/mc-hotbar.py b/Macropad_Hotkeys/macros/mc-hotbar.py new file mode 100644 index 000000000..04b746686 --- /dev/null +++ b/Macropad_Hotkeys/macros/mc-hotbar.py @@ -0,0 +1,28 @@ +# MACROPAD Hotkeys example: Universal Numpad + +from adafruit_hid.keycode import Keycode # REQUIRED if using Keycode.* values + +app = { # REQUIRED dict, must be named 'app' + 'name' : 'Minecraft Hotbar', # Application name + 'macros' : [ # List of button macros... + # COLOR LABEL KEY SEQUENCE + # 1st row ---------- + (0x202000, '7', ['7']), + (0x202000, '8', ['8']), + (0x202000, '9', ['9']), + # 2nd row ---------- + (0x202000, '4', ['4']), + (0x202000, '5', ['5']), + (0x202000, '6', ['6']), + # 3rd row ---------- + (0x202000, '1', ['1']), + (0x202000, '2', ['2']), + (0x202000, '3', ['3']), + # 4th row ---------- + (0x202000, 'Prev', [Keycode.PAGE_DOWN]), + (0x000000, '', []), + (0x202000, 'Next', [Keycode.PAGE_UP]), + # Encoder button --- + (0x000000, '', []) + ] +} diff --git a/Macropad_Hotkeys/macros/mc-msg.py b/Macropad_Hotkeys/macros/mc-msg.py new file mode 100644 index 000000000..d4e62a08d --- /dev/null +++ b/Macropad_Hotkeys/macros/mc-msg.py @@ -0,0 +1,53 @@ +# MACROPAD Hotkeys example: Minecraft Messaging + +# NOTE: There appears to be a line length limit. 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 + +DELAY_AFTER_ESCAPE = 0.05 +DELAY_AFTER_COMMAND = 0.10 + +app = { # REQUIRED dict, must be named 'app' + 'name' : 'Minecraft (/msg)', # Application name + 'macros' : [ # List of button macros... + # COLOR LABEL KEY SEQUENCE + # 1st row ---------- + (0x000020, 'list', [ + Keycode.ESCAPE, -Keycode.ESCAPE, + '/list', + Keycode.RETURN, -Keycode.RETURN]), + (0x000020, 'list', [ + Keycode.ESCAPE, -Keycode.ESCAPE, + '/list', + Keycode.RETURN, -Keycode.RETURN]), + (0x000020, 'list', [ + Keycode.ESCAPE, -Keycode.ESCAPE, + '/list', + Keycode.RETURN, -Keycode.RETURN]), + # 2nd row ---------- + (0x000000, '', []), + (0x000000, '', []), + (0x000000, '', []), + # 3rd row ---------- + (0x000000, '', []), + (0x000000, '', []), + (0x000000, '', []), + # 4th row ---------- + (0x101010, 'bed', [ + Keycode.ESCAPE, -Keycode.ESCAPE, + '/msg @a Time for bed!', + Keycode.RETURN, -Keycode.RETURN]), + (0x101010, 'bed', [ + Keycode.ESCAPE, -Keycode.ESCAPE, + '/msg @a Time for bed!', + Keycode.RETURN, -Keycode.RETURN]), + (0x101010, 'bed', [ + Keycode.ESCAPE, -Keycode.ESCAPE, + '/msg @a Time for bed!', + Keycode.RETURN, -Keycode.RETURN]), + # Encoder button --- + (0x000000, '', []) + ] +} diff --git a/Macropad_Hotkeys/macros/mcpe-effects.py b/Macropad_Hotkeys/macros/mcpe-effects.py new file mode 100644 index 000000000..69e9019ad --- /dev/null +++ b/Macropad_Hotkeys/macros/mcpe-effects.py @@ -0,0 +1,93 @@ +# MACROPAD Hotkeys example: Minecraft Effects (Creative) for Bedrock Edition + +# NOTE: There appears to be a line length limit. 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 + +DELAY_AFTER_ESCAPE = 0.05 +DELAY_AFTER_COMMAND = 0.10 + +app = { # REQUIRED dict, must be named 'app' + 'name' : 'Minecraft PE (effect)', # Application name + # + # /effect + # [seconds: int] [amplifier: int] [hideParticles: Boolean] + # + 'macros' : [ # List of button macros... + # COLOR LABEL KEY SEQUENCE + # 1st row ---------- + (0x002000, 'speed', [ + Keycode.ESCAPE, -Keycode.ESCAPE, + '/effect @s speed 999999999 1 true', + Keycode.RETURN, -Keycode.RETURN, + Keycode.ESCAPE, -Keycode.ESCAPE]), + (0x002000, 'str', [ + Keycode.ESCAPE, -Keycode.ESCAPE, + '/effect @s strength 999999999 1 true', + Keycode.RETURN, -Keycode.RETURN, + Keycode.ESCAPE, -Keycode.ESCAPE]), + (0x002000, 'haste', [ + Keycode.ESCAPE, -Keycode.ESCAPE, + '/effect @s haste 999999999 1 true', + Keycode.RETURN, -Keycode.RETURN, + Keycode.ESCAPE, -Keycode.ESCAPE]), + # 2nd row ---------- + (0x002000, 'jump', [ + Keycode.ESCAPE, -Keycode.ESCAPE, + '/effect @s jump_boost 999999999 1 true', + Keycode.RETURN, -Keycode.RETURN, + Keycode.ESCAPE, -Keycode.ESCAPE]), + (0x000030, 'breath', [ + Keycode.ESCAPE, -Keycode.ESCAPE, + '/effect @s water_breathing 999999999 0 true', + Keycode.RETURN, -Keycode.RETURN, + Keycode.ESCAPE, -Keycode.ESCAPE]), + (0x202020, 'darkv', [ + Keycode.ESCAPE, -Keycode.ESCAPE, + '/effect @s night_vision 999999999 0 true', + Keycode.RETURN, -Keycode.RETURN, + Keycode.ESCAPE, -Keycode.ESCAPE]), + # 3rd row ---------- + (0x300000, 'health', [ + Keycode.ESCAPE, -Keycode.ESCAPE, + '/effect @s health_boost 999999999 4 true', + Keycode.RETURN, -Keycode.RETURN, + Keycode.ESCAPE, -Keycode.ESCAPE]), + (0x300000, 'regen', [ + Keycode.ESCAPE, -Keycode.ESCAPE, + '/effect @s regeneration 999999999 4 true', + Keycode.RETURN, -Keycode.RETURN, + Keycode.ESCAPE, -Keycode.ESCAPE]), + (0x002000, 'absorb', [ + Keycode.ESCAPE, -Keycode.ESCAPE, + '/effect @s absorption 999999999 3 true', + Keycode.RETURN, -Keycode.RETURN, + Keycode.ESCAPE, -Keycode.ESCAPE]), + # 4th row --------- + (0x002000, 'resist', [ + Keycode.ESCAPE, -Keycode.ESCAPE, + '/effect @s resistance 999999999 3 true', + Keycode.RETURN, -Keycode.RETURN, + Keycode.ESCAPE, -Keycode.ESCAPE]), + (0x101010, 'invis', [ + Keycode.ESCAPE, -Keycode.ESCAPE, + '/effect @s invisibility 999999999 0 true', + Keycode.RETURN, -Keycode.RETURN, + Keycode.ESCAPE, -Keycode.ESCAPE]), + (0x300000, 'fire_r', [ + Keycode.ESCAPE, -Keycode.ESCAPE, + '/effect @s fire_resistance 999999999 0 true', + Keycode.RETURN, -Keycode.RETURN, + Keycode.ESCAPE, -Keycode.ESCAPE]), + # Encoder button --- Remove all status effects.... + (0x000000, '', [ + Keycode.ESCAPE, -Keycode.ESCAPE, + '/effect @s clear', + Keycode.RETURN, -Keycode.RETURN, + Keycode.ESCAPE, -Keycode.ESCAPE]), + ] +} diff --git a/Macropad_Hotkeys/macros/mcpe-equip.py b/Macropad_Hotkeys/macros/mcpe-equip.py new file mode 100644 index 000000000..95b5b12f6 --- /dev/null +++ b/Macropad_Hotkeys/macros/mcpe-equip.py @@ -0,0 +1,212 @@ +# MACROPAD Hotkeys example: Minecraft Effects (Creative) for Bedrock Edition + +# NOTE: There appears to be a line length limit. 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. + +from adafruit_hid.keycode import Keycode # REQUIRED if using Keycode.* values + +DELAY_AFTER_ESCAPE = 0.05 +DELAY_AFTER_COMMAND = 0.10 + +app = { + 'name': 'Minecraft PE (equip)', + 'macros': [ + (0x003000, 'helm', [ + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + '/replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_helmet', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s mending 1', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s protection 4', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s respiration 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s aqua_affinity 1', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s unbreaking 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + 'E']), + (12288, 'plate', [ + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + '/replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_chestplate', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s mending 1', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s protection 4', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s unbreaking 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + 'E']), + (12288, 'legs', [ + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + '/replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_leggings', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s mending 1', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s protection 4', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s unbreaking 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + 'E']), + (12288, 'boots', [ + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + '/replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_boots', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s mending 1', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s protection 4', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s feather_falling 4', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s depth_strider 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s soul_speed 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s unbreaking 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + 'E']), + (12288, 'frosty', [ + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + '/replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_boots', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s mending 1', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s protection 4', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s feather_falling 4', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s frost_walker 2', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s soul_speed 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s unbreaking 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + 'E']), + (3145728, 'feedme', [ + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + '/replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_sword', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s mending 1', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s fire_aspect 2', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s knockback 2', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s looting 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s sharpness 5', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s unbreaking 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + Keycode.PAGE_UP, -Keycode.PAGE_UP]), + (3145728, 'excal', [ + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + '/replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_sword', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s mending 1', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s fire_aspect 2', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s knockback 2', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s looting 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s sharpness 5', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s unbreaking 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + Keycode.PAGE_UP, -Keycode.PAGE_UP]), + (3145728, 'trident', [ + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + '/replaceitem entity @s slot.weapon.mainhand 0 destroy trident', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s mending 1', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s loyalty 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s channeling 1', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s riptide 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s impaling 5', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s unbreaking 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + Keycode.PAGE_UP, -Keycode.PAGE_UP]), + (3145728, 'bow', [ + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + '/replaceitem entity @s slot.weapon.mainhand 0 destroy bow', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s mending 1', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s power 5', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s punch 2', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s unbreaking 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + Keycode.PAGE_UP, -Keycode.PAGE_UP]), + (48, 'silky', [ + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + '/replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_pickaxe', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s mending 1', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s efficiency 5', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s silk_touch 1', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s unbreaking 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + Keycode.PAGE_UP, -Keycode.PAGE_UP]), + (48, 'pickme', [ + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + '/replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_pickaxe', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s mending 1', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s efficiency 5', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s fortune 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s unbreaking 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + Keycode.PAGE_UP, -Keycode.PAGE_UP]), + (48, 'axe', [ + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + '/replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_axe', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s mending 1', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s fortune 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s efficiency 5', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s sharpness 5', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + '/enchant @s unbreaking 3', + Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND, + Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE, + Keycode.PAGE_UP, -Keycode.PAGE_UP]), + ] +}