Skip to content

Commit 22f2794

Browse files
authored
Add some Minecraft (bedrock/mcpe) macros
Tested in editors on PC. Todo: test within Minecraft on both PC and XBOX
1 parent c157dcd commit 22f2794

4 files changed

Lines changed: 386 additions & 0 deletions

File tree

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# MACROPAD Hotkeys example: Universal Numpad
2+
3+
from adafruit_hid.keycode import Keycode # REQUIRED if using Keycode.* values
4+
5+
app = { # REQUIRED dict, must be named 'app'
6+
'name' : 'Minecraft Hotbar', # Application name
7+
'macros' : [ # List of button macros...
8+
# COLOR LABEL KEY SEQUENCE
9+
# 1st row ----------
10+
(0x202000, '7', ['7']),
11+
(0x202000, '8', ['8']),
12+
(0x202000, '9', ['9']),
13+
# 2nd row ----------
14+
(0x202000, '4', ['4']),
15+
(0x202000, '5', ['5']),
16+
(0x202000, '6', ['6']),
17+
# 3rd row ----------
18+
(0x202000, '1', ['1']),
19+
(0x202000, '2', ['2']),
20+
(0x202000, '3', ['3']),
21+
# 4th row ----------
22+
(0x202000, 'Prev', [Keycode.PAGE_DOWN]),
23+
(0x000000, '', []),
24+
(0x202000, 'Next', [Keycode.PAGE_UP]),
25+
# Encoder button ---
26+
(0x000000, '', [])
27+
]
28+
}

Macropad_Hotkeys/macros/mc-msg.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# MACROPAD Hotkeys example: Minecraft Messaging
2+
3+
# NOTE: There appears to be a line length limit. Exceeding that limit appears
4+
# to result in silent failure. Therefore, the key sequences are split
5+
# across multiple lines.
6+
7+
from adafruit_hid.keycode import Keycode # REQUIRED if using Keycode.* values
8+
9+
DELAY_AFTER_ESCAPE = 0.05
10+
DELAY_AFTER_COMMAND = 0.10
11+
12+
app = { # REQUIRED dict, must be named 'app'
13+
'name' : 'Minecraft (/msg)', # Application name
14+
'macros' : [ # List of button macros...
15+
# COLOR LABEL KEY SEQUENCE
16+
# 1st row ----------
17+
(0x000020, 'list', [
18+
Keycode.ESCAPE, -Keycode.ESCAPE,
19+
'/list',
20+
Keycode.RETURN, -Keycode.RETURN]),
21+
(0x000020, 'list', [
22+
Keycode.ESCAPE, -Keycode.ESCAPE,
23+
'/list',
24+
Keycode.RETURN, -Keycode.RETURN]),
25+
(0x000020, 'list', [
26+
Keycode.ESCAPE, -Keycode.ESCAPE,
27+
'/list',
28+
Keycode.RETURN, -Keycode.RETURN]),
29+
# 2nd row ----------
30+
(0x000000, '', []),
31+
(0x000000, '', []),
32+
(0x000000, '', []),
33+
# 3rd row ----------
34+
(0x000000, '', []),
35+
(0x000000, '', []),
36+
(0x000000, '', []),
37+
# 4th row ----------
38+
(0x101010, 'bed', [
39+
Keycode.ESCAPE, -Keycode.ESCAPE,
40+
'/msg @a Time for bed!',
41+
Keycode.RETURN, -Keycode.RETURN]),
42+
(0x101010, 'bed', [
43+
Keycode.ESCAPE, -Keycode.ESCAPE,
44+
'/msg @a Time for bed!',
45+
Keycode.RETURN, -Keycode.RETURN]),
46+
(0x101010, 'bed', [
47+
Keycode.ESCAPE, -Keycode.ESCAPE,
48+
'/msg @a Time for bed!',
49+
Keycode.RETURN, -Keycode.RETURN]),
50+
# Encoder button ---
51+
(0x000000, '', [])
52+
]
53+
}
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# MACROPAD Hotkeys example: Minecraft Effects (Creative) for Bedrock Edition
2+
3+
# NOTE: There appears to be a line length limit. Exceeding that limit appears
4+
# to result in silent failure. Therefore, the key sequences are split
5+
# across multiple lines.
6+
7+
from adafruit_hid.keycode import Keycode # REQUIRED if using Keycode.* values
8+
9+
# See https://minecraft.fandom.com/wiki/Effect
10+
11+
DELAY_AFTER_ESCAPE = 0.05
12+
DELAY_AFTER_COMMAND = 0.10
13+
14+
app = { # REQUIRED dict, must be named 'app'
15+
'name' : 'Minecraft PE (effect)', # Application name
16+
#
17+
# /effect <player: target> <effect: Effect>
18+
# [seconds: int] [amplifier: int] [hideParticles: Boolean]
19+
#
20+
'macros' : [ # List of button macros...
21+
# COLOR LABEL KEY SEQUENCE
22+
# 1st row ----------
23+
(0x002000, 'speed', [
24+
Keycode.ESCAPE, -Keycode.ESCAPE,
25+
'/effect @s speed 999999999 1 true',
26+
Keycode.RETURN, -Keycode.RETURN,
27+
Keycode.ESCAPE, -Keycode.ESCAPE]),
28+
(0x002000, 'str', [
29+
Keycode.ESCAPE, -Keycode.ESCAPE,
30+
'/effect @s strength 999999999 1 true',
31+
Keycode.RETURN, -Keycode.RETURN,
32+
Keycode.ESCAPE, -Keycode.ESCAPE]),
33+
(0x002000, 'haste', [
34+
Keycode.ESCAPE, -Keycode.ESCAPE,
35+
'/effect @s haste 999999999 1 true',
36+
Keycode.RETURN, -Keycode.RETURN,
37+
Keycode.ESCAPE, -Keycode.ESCAPE]),
38+
# 2nd row ----------
39+
(0x002000, 'jump', [
40+
Keycode.ESCAPE, -Keycode.ESCAPE,
41+
'/effect @s jump_boost 999999999 1 true',
42+
Keycode.RETURN, -Keycode.RETURN,
43+
Keycode.ESCAPE, -Keycode.ESCAPE]),
44+
(0x000030, 'breath', [
45+
Keycode.ESCAPE, -Keycode.ESCAPE,
46+
'/effect @s water_breathing 999999999 0 true',
47+
Keycode.RETURN, -Keycode.RETURN,
48+
Keycode.ESCAPE, -Keycode.ESCAPE]),
49+
(0x202020, 'darkv', [
50+
Keycode.ESCAPE, -Keycode.ESCAPE,
51+
'/effect @s night_vision 999999999 0 true',
52+
Keycode.RETURN, -Keycode.RETURN,
53+
Keycode.ESCAPE, -Keycode.ESCAPE]),
54+
# 3rd row ----------
55+
(0x300000, 'health', [
56+
Keycode.ESCAPE, -Keycode.ESCAPE,
57+
'/effect @s health_boost 999999999 4 true',
58+
Keycode.RETURN, -Keycode.RETURN,
59+
Keycode.ESCAPE, -Keycode.ESCAPE]),
60+
(0x300000, 'regen', [
61+
Keycode.ESCAPE, -Keycode.ESCAPE,
62+
'/effect @s regeneration 999999999 4 true',
63+
Keycode.RETURN, -Keycode.RETURN,
64+
Keycode.ESCAPE, -Keycode.ESCAPE]),
65+
(0x002000, 'absorb', [
66+
Keycode.ESCAPE, -Keycode.ESCAPE,
67+
'/effect @s absorption 999999999 3 true',
68+
Keycode.RETURN, -Keycode.RETURN,
69+
Keycode.ESCAPE, -Keycode.ESCAPE]),
70+
# 4th row ---------
71+
(0x002000, 'resist', [
72+
Keycode.ESCAPE, -Keycode.ESCAPE,
73+
'/effect @s resistance 999999999 3 true',
74+
Keycode.RETURN, -Keycode.RETURN,
75+
Keycode.ESCAPE, -Keycode.ESCAPE]),
76+
(0x101010, 'invis', [
77+
Keycode.ESCAPE, -Keycode.ESCAPE,
78+
'/effect @s invisibility 999999999 0 true',
79+
Keycode.RETURN, -Keycode.RETURN,
80+
Keycode.ESCAPE, -Keycode.ESCAPE]),
81+
(0x300000, 'fire_r', [
82+
Keycode.ESCAPE, -Keycode.ESCAPE,
83+
'/effect @s fire_resistance 999999999 0 true',
84+
Keycode.RETURN, -Keycode.RETURN,
85+
Keycode.ESCAPE, -Keycode.ESCAPE]),
86+
# Encoder button --- Remove all status effects....
87+
(0x000000, '', [
88+
Keycode.ESCAPE, -Keycode.ESCAPE,
89+
'/effect @s clear',
90+
Keycode.RETURN, -Keycode.RETURN,
91+
Keycode.ESCAPE, -Keycode.ESCAPE]),
92+
]
93+
}
Lines changed: 212 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,212 @@
1+
# MACROPAD Hotkeys example: Minecraft Effects (Creative) for Bedrock Edition
2+
3+
# NOTE: There appears to be a line length limit. Exceeding that limit appears
4+
# to result in silent failure. Therefore, the key sequences are split
5+
# across multiple lines.
6+
7+
from adafruit_hid.keycode import Keycode # REQUIRED if using Keycode.* values
8+
9+
# See https://minecraft.fandom.com/wiki/Effect
10+
11+
# Unfortunately, bedrock edition has no single command that both
12+
# gives an item and enchants it. Thus, have to place the item in
13+
# the player's inventory slot, enchant it, then equip it.
14+
15+
from adafruit_hid.keycode import Keycode # REQUIRED if using Keycode.* values
16+
17+
DELAY_AFTER_ESCAPE = 0.05
18+
DELAY_AFTER_COMMAND = 0.10
19+
20+
app = {
21+
'name': 'Minecraft PE (equip)',
22+
'macros': [
23+
(0x003000, 'helm', [
24+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
25+
'/replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_helmet',
26+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
27+
'/enchant @s mending 1',
28+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
29+
'/enchant @s protection 4',
30+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
31+
'/enchant @s respiration 3',
32+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
33+
'/enchant @s aqua_affinity 1',
34+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
35+
'/enchant @s unbreaking 3',
36+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
37+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
38+
'E']),
39+
(12288, 'plate', [
40+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
41+
'/replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_chestplate',
42+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
43+
'/enchant @s mending 1',
44+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
45+
'/enchant @s protection 4',
46+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
47+
'/enchant @s unbreaking 3',
48+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
49+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
50+
'E']),
51+
(12288, 'legs', [
52+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
53+
'/replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_leggings',
54+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
55+
'/enchant @s mending 1',
56+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
57+
'/enchant @s protection 4',
58+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
59+
'/enchant @s unbreaking 3',
60+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
61+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
62+
'E']),
63+
(12288, 'boots', [
64+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
65+
'/replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_boots',
66+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
67+
'/enchant @s mending 1',
68+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
69+
'/enchant @s protection 4',
70+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
71+
'/enchant @s feather_falling 4',
72+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
73+
'/enchant @s depth_strider 3',
74+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
75+
'/enchant @s soul_speed 3',
76+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
77+
'/enchant @s unbreaking 3',
78+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
79+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
80+
'E']),
81+
(12288, 'frosty', [
82+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
83+
'/replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_boots',
84+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
85+
'/enchant @s mending 1',
86+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
87+
'/enchant @s protection 4',
88+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
89+
'/enchant @s feather_falling 4',
90+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
91+
'/enchant @s frost_walker 2',
92+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
93+
'/enchant @s soul_speed 3',
94+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
95+
'/enchant @s unbreaking 3',
96+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
97+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
98+
'E']),
99+
(3145728, 'feedme', [
100+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
101+
'/replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_sword',
102+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
103+
'/enchant @s mending 1',
104+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
105+
'/enchant @s fire_aspect 2',
106+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
107+
'/enchant @s knockback 2',
108+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
109+
'/enchant @s looting 3',
110+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
111+
'/enchant @s sharpness 5',
112+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
113+
'/enchant @s unbreaking 3',
114+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
115+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
116+
Keycode.PAGE_UP, -Keycode.PAGE_UP]),
117+
(3145728, 'excal', [
118+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
119+
'/replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_sword',
120+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
121+
'/enchant @s mending 1',
122+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
123+
'/enchant @s fire_aspect 2',
124+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
125+
'/enchant @s knockback 2',
126+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
127+
'/enchant @s looting 3',
128+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
129+
'/enchant @s sharpness 5',
130+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
131+
'/enchant @s unbreaking 3',
132+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
133+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
134+
Keycode.PAGE_UP, -Keycode.PAGE_UP]),
135+
(3145728, 'trident', [
136+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
137+
'/replaceitem entity @s slot.weapon.mainhand 0 destroy trident',
138+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
139+
'/enchant @s mending 1',
140+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
141+
'/enchant @s loyalty 3',
142+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
143+
'/enchant @s channeling 1',
144+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
145+
'/enchant @s riptide 3',
146+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
147+
'/enchant @s impaling 5',
148+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
149+
'/enchant @s unbreaking 3',
150+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
151+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
152+
Keycode.PAGE_UP, -Keycode.PAGE_UP]),
153+
(3145728, 'bow', [
154+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
155+
'/replaceitem entity @s slot.weapon.mainhand 0 destroy bow',
156+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
157+
'/enchant @s mending 1',
158+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
159+
'/enchant @s power 5',
160+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
161+
'/enchant @s punch 2',
162+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
163+
'/enchant @s unbreaking 3',
164+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
165+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
166+
Keycode.PAGE_UP, -Keycode.PAGE_UP]),
167+
(48, 'silky', [
168+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
169+
'/replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_pickaxe',
170+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
171+
'/enchant @s mending 1',
172+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
173+
'/enchant @s efficiency 5',
174+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
175+
'/enchant @s silk_touch 1',
176+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
177+
'/enchant @s unbreaking 3',
178+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
179+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
180+
Keycode.PAGE_UP, -Keycode.PAGE_UP]),
181+
(48, 'pickme', [
182+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
183+
'/replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_pickaxe',
184+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
185+
'/enchant @s mending 1',
186+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
187+
'/enchant @s efficiency 5',
188+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
189+
'/enchant @s fortune 3',
190+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
191+
'/enchant @s unbreaking 3',
192+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
193+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
194+
Keycode.PAGE_UP, -Keycode.PAGE_UP]),
195+
(48, 'axe', [
196+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
197+
'/replaceitem entity @s slot.weapon.mainhand 0 destroy netherite_axe',
198+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
199+
'/enchant @s mending 1',
200+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
201+
'/enchant @s fortune 3',
202+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
203+
'/enchant @s efficiency 5',
204+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
205+
'/enchant @s sharpness 5',
206+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
207+
'/enchant @s unbreaking 3',
208+
Keycode.RETURN, -Keycode.RETURN, DELAY_AFTER_COMMAND,
209+
Keycode.ESCAPE, -Keycode.ESCAPE, DELAY_AFTER_ESCAPE,
210+
Keycode.PAGE_UP, -Keycode.PAGE_UP]),
211+
]
212+
}

0 commit comments

Comments
 (0)