Add some Minecraft (bedrock/mcpe) macros

Tested in editors on PC.
Todo: test within Minecraft on both PC and XBOX
This commit is contained in:
Henry Gabryjelski 2021-08-17 22:53:11 -07:00 committed by GitHub
parent c157dcde0c
commit 22f27949a8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 386 additions and 0 deletions

View file

@ -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, '', [])
]
}

View file

@ -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, '', [])
]
}

View file

@ -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 <player: target> <effect: 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]),
]
}

View file

@ -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]),
]
}