dfpyre 0.4.2__py3-none-any.whl → 0.10.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of dfpyre might be problematic. Click here for more details.

dfpyre/tool/slice.py ADDED
@@ -0,0 +1,199 @@
1
+ from dataclasses import dataclass
2
+ from collections import deque
3
+ from dfpyre.core.codeblock import CodeBlock, CONDITIONAL_CODEBLOCKS, TEMPLATE_STARTERS
4
+ from dfpyre.core.items import Variable, Parameter, ParameterType
5
+
6
+
7
+ BRACKET_CODEBLOCKS = CONDITIONAL_CODEBLOCKS
8
+ BRACKET_CODEBLOCKS.add('repeat')
9
+
10
+
11
+ @dataclass
12
+ class TemplateChunk:
13
+ length: int
14
+ start_index: int
15
+ end_index: int
16
+ contents1: list['TemplateChunk'] | None # Inside brackets
17
+ contents2: list['TemplateChunk'] | None # Inside `else` brackets
18
+
19
+
20
+ def get_referenced_line_vars(codeblocks: list[CodeBlock]) -> set[str]:
21
+ referenced_vars = set()
22
+ for codeblock in codeblocks:
23
+ for argument in codeblock.args:
24
+ if isinstance(argument, Variable) and argument.scope == 'line':
25
+ referenced_vars.add(argument.name)
26
+ return referenced_vars
27
+
28
+
29
+ def find_closing_bracket(codeblocks: list[CodeBlock], start_index: int) -> int:
30
+ """
31
+ Returns the index of the cooresponding closing bracket assuming
32
+ that `start_index` is the index of the first codeblock inside the brackets.
33
+ """
34
+ nested_level = 1
35
+ for i in range(start_index, len(codeblocks)):
36
+ codeblock = codeblocks[i]
37
+ if codeblock.type != 'bracket':
38
+ continue
39
+
40
+ direction = codeblock.data['direct']
41
+ if direction == 'open':
42
+ nested_level += 1
43
+ else: # Closed
44
+ nested_level -= 1
45
+
46
+ if nested_level == 0:
47
+ return i
48
+
49
+ return -1
50
+
51
+
52
+ def get_bracket_ranges(codeblocks: list[CodeBlock], start_index: int):
53
+ bracket_range_end = find_closing_bracket(codeblocks, start_index)
54
+
55
+ if len(codeblocks) > bracket_range_end+1 and codeblocks[bracket_range_end+1].type == 'else':
56
+ else_range_start = bracket_range_end+3 # Add 3 to move inside `else` brackets
57
+ else_range_end = find_closing_bracket(codeblocks, else_range_start)
58
+ else_range = (else_range_start, else_range_end)
59
+ else:
60
+ else_range = None
61
+
62
+ bracket_range = (start_index, bracket_range_end)
63
+ return (bracket_range, else_range)
64
+
65
+
66
+ def get_template_length(codeblocks: list[CodeBlock]) -> int:
67
+ return sum(b.get_length() for b in codeblocks)
68
+
69
+
70
+ def get_template_chunks(codeblocks: list[CodeBlock], start_index: int, end_index: int) -> list[TemplateChunk]:
71
+ chunks: list[TemplateChunk] = []
72
+
73
+ index = start_index
74
+ while index < end_index:
75
+ codeblock = codeblocks[index]
76
+ if codeblock.type == 'bracket' or codeblock.type in TEMPLATE_STARTERS:
77
+ index += 1
78
+ continue
79
+
80
+ if codeblock.type in BRACKET_CODEBLOCKS:
81
+ bracket_range, else_range = get_bracket_ranges(codeblocks, index+2)
82
+ inside_bracket = codeblocks[bracket_range[0]:bracket_range[1]]
83
+ inside_bracket_length = get_template_length(inside_bracket)
84
+ chunk_contents1 = get_template_chunks(codeblocks, bracket_range[0], bracket_range[1])
85
+ if else_range is None:
86
+ chunk_length = inside_bracket_length + 4
87
+ chunk_end_index = bracket_range[1] + 1
88
+ chunk_contents2 = None
89
+ else:
90
+ inside_else = codeblocks[else_range[0]:else_range[1]]
91
+ inside_else_length = get_template_length(inside_else)
92
+ chunk_length = inside_bracket_length + inside_else_length + 8
93
+ chunk_end_index = else_range[1] + 1
94
+ chunk_contents2 = get_template_chunks(codeblocks, else_range[0], else_range[1])
95
+
96
+ chunk = TemplateChunk(length=chunk_length, start_index=index, end_index=chunk_end_index, contents1=chunk_contents1, contents2=chunk_contents2)
97
+ chunks.append(chunk)
98
+ index = chunk_end_index-1
99
+
100
+ else:
101
+ chunk = TemplateChunk(length=2, start_index=index, end_index=index+1, contents1=None, contents2=None)
102
+ chunks.append(chunk)
103
+
104
+ index += 1
105
+
106
+ return chunks
107
+
108
+
109
+ def extract_one_template(codeblocks: list[CodeBlock], target_length: int, extracted_template_name: str) -> tuple[list[CodeBlock], list[CodeBlock]]:
110
+ chunks = get_template_chunks(codeblocks, 0, len(codeblocks))
111
+ current_slice_length = 2
112
+ current_slice_start = -1
113
+ current_slice_end = -1
114
+
115
+ slices: dict[tuple[int, int], int] = {}
116
+
117
+ chunks_to_iterate: deque[list[TemplateChunk]] = deque()
118
+ chunks_to_iterate.append(chunks)
119
+
120
+ def save_current_slice():
121
+ nonlocal current_slice_start, current_slice_end, current_slice_length, slices
122
+ current_slice_range = (current_slice_start, current_slice_end)
123
+ slices[current_slice_range] = current_slice_length
124
+ current_slice_length = 2
125
+ current_slice_start = -1
126
+ current_slice_end = -1
127
+
128
+ while chunks_to_iterate:
129
+ current_chunks = chunks_to_iterate.pop()
130
+ for chunk in reversed(current_chunks):
131
+ if chunk.contents1:
132
+ chunks_to_iterate.append(chunk.contents1)
133
+ if chunk.contents2:
134
+ chunks_to_iterate.append(chunk.contents2)
135
+
136
+ if current_slice_start == -1:
137
+ current_slice_start = chunk.start_index
138
+ if current_slice_end == -1:
139
+ current_slice_end = chunk.end_index
140
+
141
+ # Check if chunk is too long
142
+ if chunk.length > target_length - 2:
143
+ save_current_slice()
144
+ continue
145
+
146
+ new_slice_length = current_slice_length + chunk.length
147
+ if new_slice_length <= target_length:
148
+ current_slice_length = new_slice_length
149
+ current_slice_start = chunk.start_index
150
+ else:
151
+ current_slice_range = (current_slice_start, current_slice_end)
152
+ slices[current_slice_range] = current_slice_length
153
+ current_slice_length = chunk.length + 2
154
+ current_slice_start = chunk.start_index
155
+ current_slice_end = chunk.end_index
156
+
157
+ save_current_slice()
158
+
159
+ sliced_range = max(slices.items(), key=lambda kv: kv[1])[0] # Extract the longest slice
160
+ extracted_codeblocks = codeblocks[sliced_range[0]:sliced_range[1]]
161
+ del codeblocks[sliced_range[0]:sliced_range[1]]
162
+
163
+ original_line_vars = get_referenced_line_vars(codeblocks)
164
+ extracted_line_vars = get_referenced_line_vars(extracted_codeblocks)
165
+ param_line_vars = set.intersection(original_line_vars, extracted_line_vars)
166
+ function_parameters = []
167
+ function_call_args = []
168
+ for line_var in param_line_vars:
169
+ function_parameters.append(Parameter(line_var, ParameterType.VAR))
170
+ function_call_args.append(Variable(line_var, 'line'))
171
+
172
+ function_codeblock = CodeBlock.new_data('func', extracted_template_name, tuple(function_parameters), tags={'Is Hidden': 'True'})
173
+ extracted_codeblocks.insert(0, function_codeblock)
174
+
175
+ call_function_codeblock = CodeBlock.new_data('call_func', extracted_template_name, tuple(function_call_args), {})
176
+ codeblocks.insert(sliced_range[0], call_function_codeblock)
177
+
178
+ return codeblocks, extracted_codeblocks
179
+
180
+
181
+ def slice_template(codeblocks: list[CodeBlock], target_length: int, template_name: str) -> list[list[CodeBlock]]:
182
+ template_length = get_template_length(codeblocks)
183
+ if template_length < target_length:
184
+ return [codeblocks]
185
+
186
+ codeblocks = codeblocks.copy()
187
+
188
+ sliced_templates: list[list[CodeBlock]] = []
189
+
190
+ # Extract single templates until the original template meets the target length
191
+ template_number = 1
192
+ while get_template_length(codeblocks) > target_length:
193
+ extracted_template_name = template_name + '_' + str(template_number)
194
+ codeblocks, extracted_codeblocks = extract_one_template(codeblocks, target_length, extracted_template_name)
195
+ sliced_templates.append(extracted_codeblocks)
196
+ template_number += 1
197
+
198
+ sliced_templates.insert(0, codeblocks)
199
+ return sliced_templates
dfpyre/util/style.py ADDED
@@ -0,0 +1,23 @@
1
+ import re
2
+ from mcitemlib.style import STYLE_CODE_REGEX, FORMAT_CODES, StyledString
3
+
4
+
5
+ def is_ampersand_coded(s: str) -> bool:
6
+ return bool(re.match(STYLE_CODE_REGEX, s))
7
+
8
+
9
+ def ampersand_to_minimessage(ampersand_code: str) -> str:
10
+ ampersand_code = ampersand_code.replace('&r', '<reset>') # bad but should work most of the time
11
+ styled_string = StyledString.from_codes(ampersand_code)
12
+ formatted_string_list = []
13
+ for substring in styled_string.substrings:
14
+ formatted_substring_list = []
15
+ for style_type, value in substring.data.items():
16
+ if style_type in FORMAT_CODES.values() and value:
17
+ formatted_substring_list.append(f'<{style_type}>')
18
+ if style_type == 'color':
19
+ formatted_substring_list.append(f'<{value}>')
20
+
21
+ formatted_substring_list.append(substring.data['text'])
22
+ formatted_string_list.append(''.join(formatted_substring_list))
23
+ return ''.join(formatted_string_list)
dfpyre/util/util.py ADDED
@@ -0,0 +1,65 @@
1
+ import base64
2
+ import gzip
3
+ import re
4
+ import warnings
5
+ from functools import wraps
6
+ from collections.abc import Iterable
7
+
8
+
9
+ COL_WARN = '\x1b[33m'
10
+ COL_RESET = '\x1b[0m'
11
+ COL_SUCCESS = '\x1b[32m'
12
+ COL_ERROR = '\x1b[31m'
13
+
14
+ NUMBER_REGEX = re.compile(r'^-?\d*\.?\d+$')
15
+
16
+
17
+ class PyreException(Exception):
18
+ pass
19
+
20
+
21
+ def warn(message: str):
22
+ print(f'{COL_WARN}! WARNING ! {message}{COL_RESET}')
23
+
24
+
25
+ def deprecated(message="This function is deprecated"):
26
+ def decorator(func):
27
+ @wraps(func)
28
+ def wrapper(*args, **kwargs):
29
+ warnings.warn(
30
+ f"{func.__name__} is deprecated. {message}",
31
+ category=DeprecationWarning,
32
+ stacklevel=2
33
+ )
34
+ return func(*args, **kwargs)
35
+ return wrapper
36
+ return decorator
37
+
38
+
39
+ def is_number(s: str) -> bool:
40
+ return bool(NUMBER_REGEX.match(s))
41
+
42
+
43
+ def df_encode(json_string: str) -> str:
44
+ """
45
+ Encodes a stringified json.
46
+ """
47
+ encoded_string = gzip.compress(json_string.encode('utf-8'))
48
+ return base64.b64encode(encoded_string).decode('utf-8')
49
+
50
+
51
+ def df_decode(encoded_string: str) -> str:
52
+ return gzip.decompress(base64.b64decode(encoded_string.encode('utf-8'))).decode('utf-8')
53
+
54
+
55
+ from collections.abc import Iterable
56
+
57
+ def flatten(nested_iterable):
58
+ """
59
+ Flattens a nested iterable.
60
+ """
61
+ for item in nested_iterable:
62
+ if isinstance(item, Iterable) and not isinstance(item, (str, bytes)):
63
+ yield from flatten(item)
64
+ else:
65
+ yield item
@@ -0,0 +1,64 @@
1
+ Metadata-Version: 2.4
2
+ Name: dfpyre
3
+ Version: 0.10.5
4
+ Summary: A package for creating and modifying code templates for the DiamondFire Minecraft server.
5
+ License-Expression: MIT
6
+ License-File: LICENSE
7
+ Keywords: diamondfire,minecraft,template,item
8
+ Author: Amp
9
+ Requires-Python: >=3.10
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.10
12
+ Classifier: Programming Language :: Python :: 3.11
13
+ Classifier: Programming Language :: Python :: 3.12
14
+ Classifier: Programming Language :: Python :: 3.13
15
+ Classifier: Programming Language :: Python :: 3.14
16
+ Provides-Extra: dev
17
+ Requires-Dist: mcitemlib (>=0.5.2)
18
+ Requires-Dist: pytest (>=9.0.2) ; extra == "dev"
19
+ Requires-Dist: rapidnbt (>=1.3.5)
20
+ Requires-Dist: twine (>=6.2.0) ; extra == "dev"
21
+ Requires-Dist: websocket-client (>=1.9.0)
22
+ Project-URL: Repository, https://github.com/Amp63/pyre
23
+ Description-Content-Type: text/markdown
24
+
25
+ # pyre
26
+
27
+ A tool for creating and modifying code templates for the DiamondFire Minecraft server.
28
+
29
+ PyPi Link: https://pypi.org/project/dfpyre/
30
+
31
+ ## Features
32
+ - All codeblock types and actions
33
+ - All code items
34
+ - Direct sending to DF via CodeClient
35
+ - Fully documented and typed actions
36
+ - Automatic type conversion (`int` to `Number`, `str` to `String`)
37
+ - Shorthand format for variables
38
+ - Convert existing templates into equivalent Python code
39
+
40
+
41
+ ## Quick Start
42
+
43
+ To get started with pyre, install the module with pip:
44
+
45
+ ```sh
46
+ pip install dfpyre
47
+ ```
48
+
49
+ I also highly recommend you install CodeClient and enable `CodeClient API` in its General config tab. This will allow you to quickly send your templates to DiamondFire. [You can download it here on Modrinth.](https://modrinth.com/mod/codeclient)
50
+
51
+ Basic Template Example:
52
+
53
+ ```py
54
+ from dfpyre import *
55
+
56
+ PlayerEvent.Join(codeblocks=[
57
+ PlayerAction.SendMessage(Text('%default has joined!'), target=Target.ALL_PLAYERS),
58
+ PlayerAction.GiveItems([Item('diamond_sword'), Item('steak', 10)])
59
+ ]).build_and_send()
60
+ ```
61
+
62
+
63
+ **For more information and examples, check out the [Wiki](https://github.com/Amp63/pyre/wiki) on Github.**
64
+
@@ -0,0 +1,29 @@
1
+ dfpyre/__init__.py,sha256=RnqRhczdc5wAvfiF-hch6mELA5GW_v1-ytSZW4QxHpg,121
2
+ dfpyre/core/actiondump.py,sha256=vhwwhoMzHmZ9-NYlZbjDxwTAOwBqJ_E1SUV3jyfPNBk,8491
3
+ dfpyre/core/codeblock.py,sha256=VF15nNDVLj6W8UOEDXNY8e81_99t-yaQBh-HrqbvBCg,8821
4
+ dfpyre/core/items.py,sha256=wXBnmx41Oa0wQdo5nESlzbVnkByN2iY33oWkhoTCWS8,18529
5
+ dfpyre/core/template.py,sha256=ZFjYcW5e8bwW8AcPeuumSuqC1mK89RE4U3FGGzqgQEk,9380
6
+ dfpyre/data/actiondump_min.json,sha256=qegRqi2bUXi729lEfym5JmuqQi_Oe1I6W7rso3r40MQ,2649461
7
+ dfpyre/data/deprecated_actions.json,sha256=1b6G31mAzykWWbQXOJkn3mjJOTsa2gvW-LATI4TF6rM,5619
8
+ dfpyre/data/method_templates/action.txt,sha256=Nu8gQjClQHa8l5tNv8NLXoLq0e1iHIceob1VGms0CC4,315
9
+ dfpyre/data/method_templates/conditional.txt,sha256=l4AZ7uhBENsiLsGXyJyAuXAZWBWBaPrnGpZy6WE9rKU,557
10
+ dfpyre/data/method_templates/event.txt,sha256=UR48UG8q9edIkmlUqB665NhfE2H0BoST-ssPUaaGWgg,383
11
+ dfpyre/data/method_templates/notarget_action.txt,sha256=Aw30ZM7mWYfcjPFEplhbXmj9Rh16aRXGNz2WE8VtnQU,223
12
+ dfpyre/data/method_templates/notarget_conditional.txt,sha256=1XC3Dtu3EbuaA2wVCiyO0sf0xd9FrKhqjNTVknoo5KU,462
13
+ dfpyre/data/method_templates/repeat.txt,sha256=d4dsICMpz66MXtSCp17f4AtiwrMrNX6MfqOHCSXeU7I,379
14
+ dfpyre/data/method_templates/repeat_while.txt,sha256=qBhB0wC6dpgoUzuFhwbkEy6oy-v2bAmZpNz6Ezelo4k,668
15
+ dfpyre/data/method_templates/select_obj_subaction.txt,sha256=gilAfZQtbQImFGtDEclv7J3qeVcyMYUhobNaAQBS7Ys,547
16
+ dfpyre/export/action_classes.py,sha256=eUzY09UZjBvAflhifLIV95LdnnmIDW_fZiAAAnjGPyU,517365
17
+ dfpyre/export/block_functions.py,sha256=WXUhXHMYFRKVA9Rw1x9mF3bmnQ_AnypvDnbi70IUALw,3422
18
+ dfpyre/gen/action_class_data.py,sha256=3kKur9iZdLcat94eKN_r4voilBNWbDxRa2cTeQcYQSk,5649
19
+ dfpyre/gen/action_literals.py,sha256=yJLNU7p2IK1HreGAV-NKMcCKahbOWS_cHia7xTB-1qY,52554
20
+ dfpyre/scripts/action_gen.py,sha256=K8tBVXUrj9jD6Tg-L2HEoa05jAmslgIfxcgAYlHjb44,8219
21
+ dfpyre/scripts/action_literal_gen.py,sha256=Fbdda3TkkcwN6zu9uR1ZPZQS-aHHelXwz6q7uLaT_hA,1531
22
+ dfpyre/tool/scriptgen.py,sha256=J1K6ciH7vTL6HcPeQ0C1cKHLKQSRTJF14AxsmqUHo98,11005
23
+ dfpyre/tool/slice.py,sha256=2X-oM62Yc7w3wQu2RYEh5xjr0AcWMAZUZFqiqfQ2OPs,7963
24
+ dfpyre/util/style.py,sha256=ZDwVospsYdeq4LJJjkf4qyV4hMIXMMrZow_c_LXtwT4,982
25
+ dfpyre/util/util.py,sha256=h-MsPFei6_J2DiS9pdf4eG82CDcMH5YYrAwE_ZtrQOs,1510
26
+ dfpyre-0.10.5.dist-info/METADATA,sha256=kYzV7cc__mJ-2enw1S0U79Rilq_SqL-LVxrXTN9yUg4,2067
27
+ dfpyre-0.10.5.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
28
+ dfpyre-0.10.5.dist-info/licenses/LICENSE,sha256=_vuDskB0ja2c-Fgm7Gt8Q8cO9NsLNpZAVyvmZwX7E6o,1060
29
+ dfpyre-0.10.5.dist-info/RECORD,,
@@ -1,5 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: poetry-core 2.2.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
-
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2023 Amp
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Amp
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
dfpyre/data/data.json DELETED
@@ -1 +0,0 @@
1
- {"meta":{"version":"4.0.0","df_patch":"6.1","updated":"2023/12/29"},"player_action":{"GiveItems":[],"SetHotbar":[],"SetInventory":[],"SetSlotItem":[],"SetEquipment":[{"option":"Main hand","tag":"Equipment Slot","slot":26}],"SetArmor":[],"ReplaceItems":[],"RemoveItems":[],"ClearItems":[],"ClearInv":[{"option":"True","tag":"Clear Crafting and Cursor","slot":25},{"option":"Entire inventory","tag":"Clear Mode","slot":26}],"SetCursorItem":[],"SaveInv":[],"LoadInv":[],"SetItemCooldown":[],"SendMessage":[{"option":"True","tag":"Inherit Styles","slot":24},{"option":"Add spaces","tag":"Text Value Merging","slot":25},{"option":"Regular","tag":"Alignment Mode","slot":26}],"SendMessageSeq":[{"option":"Regular","tag":"Alignment Mode","slot":26}],"SendTitle":[],"ActionBar":[{"option":"True","tag":"Inherit Styles","slot":25},{"option":"No spaces","tag":"Text Value Merging","slot":26}],"OpenBook":[]," SetBossBar ":[{"option":"None","tag":"Sky Effect","slot":24},{"option":"Solid","tag":"Bar Style","slot":25},{"option":"Purple","tag":"Bar Color","slot":26}]," RemoveBossBar ":[],"SendAdvancement":[{"option":"Advancement","tag":"Toast Type","slot":26}],"SetTabListInfo":[{"option":"True","tag":"Inherit Styles","slot":24},{"option":"No spaces","tag":"Text Value Merging","slot":25},{"option":"Header","tag":"Player List Field","slot":26}],"PlaySound":[{"option":"Master","tag":"Sound Source","slot":26}],"StopSound":[{"option":"Master","tag":"Sound Source","slot":26}],"PlaySoundSeq":[{"option":"Master","tag":"Sound Source","slot":26}],"PlayEntitySound":[{"option":"True","tag":"Ignore Formatting","slot":25},{"option":"Master","tag":"Sound Source","slot":26}],"ShowInv":[],"ExpandInv":[],"SetMenuItem":[]," SetInvName ":[],"AddInvRow":[{"option":"Bottom row","tag":"New Row Position","slot":26}],"RemoveInvRow":[{"option":"Bottom row","tag":"Row to Remove","slot":26}],"CloseInv":[],"OpenBlockInv":[],"SetScoreObj":[],"SetSidebar":[{"option":"Enable","tag":"Sidebar","slot":26}],"SetScore":[],"RemoveScore":[],"ClearScoreboard":[],"Damage":[{"option":"True","tag":"Ignore Formatting","slot":26}],"Heal":[],"SetHealth":[],"SetMaxHealth":[{"option":"False","tag":"Heal Player to Max Health","slot":26}],"SetAbsorption":[],"SetFoodLevel":[],"GiveFood":[],"SetSaturation":[],"GiveSaturation":[],"GiveExp":[{"option":"Points","tag":"Give Experience","slot":26}],"SetExp":[{"option":"Level","tag":"Set Experience","slot":26}],"GivePotion":[{"option":"True","tag":"Show Icon","slot":24},{"option":"True","tag":"Overwrite Effect","slot":25},{"option":"Regular","tag":"Effect Particles","slot":26}],"RemovePotion":[],"ClearPotions":[],"SetSlot":[],"SetAtkSpeed":[],"SetFireTicks":[],"SetFreezeTicks":[{"option":"Disable","tag":"Ticking Locked","slot":26}],"SetAirTicks":[],"SetInvulTicks":[],"SetFallDistance":[],"SetSpeed":[{"option":"Ground speed","tag":"Speed Type","slot":26}],"SurvivalMode":[],"AdventureMode":[],"CreativeMode":[],"SpectatorMode":[],"SetAllowFlight":[{"option":"Enable","tag":"Allow Flight","slot":26}],"SetAllowPVP":[{"option":"Disable","tag":"PVP","slot":26}],"SetDropsEnabled":[{"option":"Enable","tag":"Spawn Death Drops","slot":26}],"SetInventoryKept":[{"option":"Enable","tag":"Inventory Kept","slot":26}],"SetCollidable":[{"option":"Disable","tag":"Collision","slot":26}],"EnableBlocks":[],"DisableBlocks":[],"InstantRespawn":[{"option":"Enable","tag":"Instant Respawn","slot":26}],"SetReducedDebug":[{"option":"True","tag":"Reduced Debug Info Enabled","slot":26}],"SetHandCrafting":[{"option":"Disable","tag":"Allow Hand Crafting","slot":26}],"Teleport":[{"option":"False","tag":"Keep Velocity","slot":25},{"option":"False","tag":"Keep Current Rotation","slot":26}],"LaunchUp":[{"option":"True","tag":"Add to Current Velocity","slot":26}],"LaunchFwd":[{"option":"True","tag":"Add to Current Velocity","slot":25},{"option":"Pitch and Yaw","tag":"Launch Axis","slot":26}],"LaunchToward":[{"option":"True","tag":"Add to Current Velocity","slot":25},{"option":"False","tag":"Ignore Distance","slot":26}],"RideEntity":[{"option":"True","tag":"Ignore Formatting","slot":26}],"SetFlying":[{"option":"Enable","tag":"Flying","slot":26}],"SetGliding":[{"option":"Enable","tag":"Gliding","slot":26}],"BoostElytra":[],"SetRotation":[],"FaceLocation":[],"SetVelocity":[{"option":"False","tag":"Add to Current Velocity","slot":26}],"SpectateTarget":[{"option":"True","tag":"Ignore Formatting","slot":26}],"SetSpawnPoint":[],"SpectatorCollision":[{"option":"Enable","tag":"Spectator Collision","slot":26}],"LaunchProj":[],"ResourcePack":[],"SetPlayerTime":[],"SetPlayerWeather":[{"option":"Downfall","tag":"Weather","slot":26}],"SetRainLevel":[],"SetCompass":[],"DisplayBlock":[],"DisplayFracture":[{"option":"True","tag":"Overwrite Previous Fracture","slot":26}],"DisplayBlockOpen":[{"option":"Open","tag":"Container State","slot":26}],"DisplayGateway":[{"option":"Initial beam","tag":"Animation Type","slot":26}],"DisplaySignText":[{"option":"Front","tag":"Sign Side","slot":24},{"option":"Black","tag":"Text Color","slot":25},{"option":"Disable","tag":"Glowing","slot":26}],"DisplayHologram":[],"SetFogDistance":[],"SetWorldBorder":[],"ShiftWorldBorder":[],"RmWorldBorder":[],"DisplayPickup":[{"option":"True","tag":"Ignore Formatting","slot":26}],"SetEntityHidden":[{"option":"True","tag":"Ignore Formatting","slot":25},{"option":"Enable","tag":"Hidden","slot":26}],"Particle":[],"ParticleLine":[],"ParticleLineA":[],"ParticleCircle":[],"ParticleCircleA":[],"ParticleCuboid":[{"option":"Wireframe","tag":"Fill Type","slot":26}],"ParticleCuboidA":[{"option":"Wireframe","tag":"Fill Type","slot":26}],"ParticleSpiral":[],"ParticleSpiralA":[],"ParticleSphere":[],"ParticleRay":[],"DisplayLightning":[],"Vibration":[],"MobDisguise":[],"PlayerDisguise":[],"BlockDisguise":[],"SetDisguiseVisible":[{"option":"Disable","tag":"Disguise Visible","slot":26}],"Undisguise":[],"SetChatTag":[],"ChatStyle":[],"SetNameColor":[{"option":"Black","tag":"Name Color","slot":26}],"SetNameVisible":[{"option":"Disable","tag":"Name Tag Visible","slot":26}],"SetNamePrefix":[{"option":"Prefix","tag":"Text Type","slot":26}],"SetArrowsStuck":[],"SetStingsStuck":[],"SetVisualFire":[{"option":"True","tag":"On Fire","slot":26}],"AttackAnimation":[{"option":"Swing main arm","tag":"Animation Arm","slot":26}],"HurtAnimation":[],"WakeUpAnimation":[],"SetStatus":[],"SetSkin":[],"SetShoulder":[{"option":"Remove","tag":"Type","slot":25},{"option":"Left","tag":"Shoulder","slot":26}],"RollbackBlocks":[],"Kick":[]},"entity_action":{"Heal":[],"SetHealth":[],"SetAbsorption":[],"SetMaxHealth":[{"option":"False","tag":"Heal Mob to Max Health","slot":26}],"Damage":[{"option":"True","tag":"Ignore Formatting","slot":26}],"SetFireTicks":[],"SetFreezeTicks":[{"option":"Disable","tag":"Ticking Locked","slot":26}],"SetInvulTicks":[],"GivePotion":[{"option":"True","tag":"Overwrite Effect","slot":25},{"option":"Regular","tag":"Effect Particles","slot":26}],"RemovePotion":[],"ClearPotions":[],"SetAge":[{"option":"Don't change","tag":"Age Lock","slot":26}],"SetFallDistance":[],"SetCreeperFuse":[],"SetCreeperPower":[],"SetCloudRadius":[],"SetVillagerExp":[],"SetWitherInvul":[],"SetHorseJump":[],"SetPickupDelay":[],"SetFishingTime":[],"SetWardenAnger":[{"option":"True","tag":"Ignore Formatting","slot":26}],"MobDisguise":[],"PlayerDisguise":[],"BlockDisguise":[],"Undisguise":[],"SetGlowing":[{"option":"Enable","tag":"Glowing","slot":26}],"SetDyeColor":[{"option":"White","tag":"Dye","slot":26}],"SetFishPattern":[{"option":"White","tag":"Pattern Color","slot":24},{"option":"White","tag":"Body Color","slot":25},{"option":"Kob","tag":"Pattern","slot":26}],"SetRabbitType":[{"option":"Brown","tag":"Skin Type","slot":26}],"SetCatType":[{"option":"Tabby","tag":"Skin Type","slot":26}],"MooshroomType":[{"option":"Red","tag":"Mooshroom Variant","slot":26}],"SetFoxType":[{"option":"Red","tag":"Fox Type","slot":26}],"SetParrotColor":[{"option":"Red","tag":"Parrot Color","slot":26}],"SetHorsePattern":[{"option":"Flaxen chestnut","tag":"Horse Color","slot":25},{"option":"Stockings and blaze","tag":"Horse Markings","slot":26}],"SetAxolotlColor":[{"option":"Pink","tag":"Axolotl Color","slot":26}],"SetLlamaColor":[{"option":"Brown","tag":"Llama Color","slot":26}],"SetFrogType":[{"option":"Temperate","tag":"Frog Type","slot":26}],"SetVillagerBiome":[{"option":"Desert","tag":"Biome","slot":26}],"SnowmanPumpkin":[{"option":"Disable","tag":"Pumpkin","slot":26}],"SetEndermanBlock":[],"SetMinecartBlock":[],"ArmorStandParts":[{"option":"Enable","tag":"Arms","slot":25},{"option":"Enable","tag":"Base Plate","slot":26}],"SetBeeNectar":[{"option":"Enable","tag":"Has Nectar","slot":26}],"ProjectileItem":[],"SetVisualFire":[{"option":"True","tag":"On Fire","slot":26}],"SendAnimation":[{"option":"Hurt animation","tag":"Animation Type","slot":26}],"AttackAnimation":[{"option":"Swing main arm","tag":"Animation Arm","slot":26}],"ArmorStandPose":[{"option":"Head","tag":"Armor Stand Part","slot":26}]," SetPose ":[{"option":"Standing","tag":"Pose","slot":26}],"SetFoxLeaping":[{"option":"Enable","tag":"Leaping","slot":26}],"SetArmsRaised":[{"option":"Enable","tag":"Arms Raised","slot":26}],"SetCatResting":[{"option":"Enable","tag":"Resting","slot":26}],"SetGlowSquidDark":[],"Teleport":[{"option":"False","tag":"Keep Current Rotation","slot":26}],"LaunchUp":[{"option":"True","tag":"Add to Current Velocity","slot":26}],"LaunchFwd":[{"option":"True","tag":"Add to Current Velocity","slot":25},{"option":"Pitch and Yaw","tag":"Launch Axis","slot":26}],"LaunchToward":[{"option":"True","tag":"Add to Current Velocity","slot":25},{"option":"False","tag":"Ignore Distance","slot":26}],"SetGliding":[{"option":"Enable","tag":"Gliding","slot":26}],"SetGravity":[{"option":"Disable","tag":"Gravity","slot":26}],"RideEntity":[{"option":"True","tag":"Ignore Formatting","slot":26}],"AttachLead":[{"option":"True","tag":"Ignore Formatting","slot":26}],"SetRotation":[],"SetVelocity":[{"option":"False","tag":"Add to Current Velocity","slot":26}],"SetName":[{"option":"False","tag":"Hide Name Tag","slot":26}],"SetNameVisible":[{"option":"Enable","tag":"Name Tag Visible","slot":26}],"SetNameColor":[{"option":"Black","tag":"Name Color","slot":26}],"SetAI":[{"option":"None","tag":"AI","slot":26}],"SetSilenced":[{"option":"Enable","tag":"Silenced","slot":26}],"SetDeathDrops":[{"option":"Enable","tag":"Has Death Drops","slot":26}],"SetCollidable":[{"option":"Disable","tag":"Collision","slot":26}],"SetInvulnerable":[{"option":"Enable","tag":"Invulnerable","slot":26}],"SetMobSitting":[{"option":"Enable","tag":"Is Sitting","slot":26}],"SetBaby":[{"option":"Enable","tag":"Baby","slot":26}],"SetSize":[],"SetSheepSheared":[{"option":"Enable","tag":"Sheared","slot":26}],"SetSaddle":[{"option":"Enable","tag":"Saddle","slot":26}],"SetCarryingChest":[{"option":"Enable","tag":"Carrying Chest","slot":26}],"ArmorStandSlots":[{"option":"Take, swap or place item","tag":"Interactions","slot":25},{"option":"All","tag":"Equipment Slot","slot":26}],"SetMarker":[{"option":"Enable","tag":"Marker","slot":26}],"SetAngry":[{"option":"Enable","tag":"Angry","slot":26}],"SetRearing":[{"option":"Enable","tag":"Rearing","slot":26}],"SetRiptiding":[{"option":"Enable","tag":"Riptiding","slot":26}],"CreeperCharged":[{"option":"Enable","tag":"Charged","slot":26}],"SetInvisible":[{"option":"Enable","tag":"Invisible","slot":26}],"SetGoatScreaming":[{"option":"Enable","tag":"Screams","slot":26}],"SetGoatHorns":[{"option":"No Change","tag":"Left Horn","slot":25},{"option":"No Change","tag":"Right Horn","slot":26}],"Tame":[],"EndCrystalBeam":[],"SetPandaGene":[{"option":"Both","tag":"Set Gene","slot":25},{"option":"Aggressive","tag":"Gene Type","slot":26}],"SetProfession":[{"option":"Armorer","tag":"Profession","slot":26}],"SetProjSource":[{"option":"True","tag":"Ignore Formatting","slot":26}],"SetPersistent":[{"option":"Enable","tag":"Persistent","slot":26}],"InteractionSize":[],"InteractResponse":[{"option":"Enable","tag":"Responsive","slot":26}],"SetCelebrating":[{"option":"Enable","tag":"Celebrate","slot":26}],"SetTarget":[{"option":"True","tag":"Ignore Formatting","slot":26}],"MoveToLoc":[],"Jump":[],"Ram":[{"option":"True","tag":"Ignore Formatting","slot":26}],"FrogEat":[{"option":"True","tag":"Ignore Formatting","slot":26}],"SheepEat":[],"IgniteCreeper":[],"Explode":[],"FoxSleeping":[{"option":"Enable","tag":"Sleeping","slot":26}],"SetDragonPhase":[{"option":"Flying","tag":"Phase","slot":26}],"SetBulletTarget":[{"option":"True","tag":"Ignore Formatting","slot":26}],"UseItem":[{"option":"Main Hand","tag":"Hand","slot":25},{"option":"Enable","tag":"Use Item","slot":26}],"SetAllayDancing":[{"option":"Enable","tag":"Dancing","slot":26}],"SnifferState":[{"option":"Idle","tag":"Behavior","slot":26}],"DisplayViewRange":[],"DisplayBillboard":[{"option":"Fixed","tag":"Billboard Type","slot":26}],"DisplayShadow":[],"DisplayBrightness":[],"DispInterpolation":[],"DisplayCullingSize":[],"TDisplayText":[{"option":"True","tag":"Inherit Styles","slot":25},{"option":"No spaces","tag":"Text Value Merging","slot":26}],"TDisplayLineWidth":[],"TDisplayOpacity":[],"TDisplayAlign":[{"option":"Center","tag":"Text Alignment","slot":26}],"TDisplayShadow":[{"option":"Enable","tag":"Text Shadow","slot":26}],"TDisplaySeeThru":[{"option":"Enable","tag":"See-through","slot":26}],"TDispBackground":[],"DisplayGlowColor":[],"IDisplayItem":[],"IDisplayModelType":[{"option":"None","tag":"Model Type","slot":26}],"BDisplayBlock":[],"DisplayMatrix":[],"DispRotationEuler":[{"option":"Left Rotation","tag":"Rotation Type","slot":26}],"DispRotAxisAngle":[{"option":"Left Rotation","tag":"Rotation Type","slot":26}],"DispTranslation":[],"DisplayScale":[],"Remove":[],"SetEquipment":[{"option":"Main hand","tag":"Equipment Slot","slot":26}],"SetArmor":[],"LaunchProj":[],"ShearSheep":[],"SetCustomTag":[],"GetCustomTag":[],"RemoveCustomTag":[],"SetItem":[],"SetDigging":[{"option":"Emerge","tag":"Digging Type","slot":26}]},"game_action":{"SpawnMob":[],"SpawnItem":[{"option":"True","tag":"Apply Item Motion","slot":26}],"SpawnVehicle":[],"SpawnExpOrb":[],"Explosion":[],"SpawnTNT":[],"SpawnFangs":[],"Firework":[{"option":"False","tag":"Instant","slot":25},{"option":"Upwards","tag":"Movement","slot":26}],"LaunchProj":[],"Lightning":[],"SpawnPotionCloud":[],"FallingBlock":[{"option":"True","tag":"Reform on Impact","slot":25},{"option":"False","tag":"Hurt Hit Entities","slot":26}],"SpawnArmorStand":[{"option":"Visible","tag":"Visibility","slot":26}],"SpawnCrystal":[{"option":"True","tag":"Show Bottom","slot":26}],"SpawnEnderEye":[{"option":"Random","tag":"End of Lifespan","slot":26}],"ShulkerBullet":[],"SpawnTextDisplay":[{"option":"True","tag":"Inherit Styles","slot":25},{"option":"No spaces","tag":"Text Value Merging","slot":26}],"SpawnItemDisp":[],"SpawnBlockDisp":[],"SpawnInteraction":[{"option":"Disable","tag":"Responsive","slot":26}]," SetBlock ":[],"SetRegion":[],"CloneRegion":[{"option":"False","tag":"Ignore Air","slot":25},{"option":"True","tag":"Clone Block Entities","slot":26}],"BreakBlock":[],"SetBlockData":[{"option":"False","tag":"Overwrite Existing Data","slot":26}],"TickBlock":[],"BoneMeal":[{"option":"True","tag":"Show Particles","slot":26}],"GenerateTree":[{"option":"Oak Tree","tag":"Tree Type","slot":26}],"SetBlockGrowth":[{"option":"Growth Stage Number","tag":"Growth Unit","slot":26}],"FillContainer":[],"SetContainer":[],"SetItemInSlot":[],"ReplaceItems":[],"RemoveItems":[],"ClearItems":[],"ClearContainer":[],"SetContainerName":[],"LockContainer":[],"ChangeSign":[{"option":"Front","tag":"Sign Side","slot":26}],"SignColor":[{"option":"Front","tag":"Sign Side","slot":24},{"option":"Black","tag":"Text Color","slot":25},{"option":"Disable","tag":"Glowing","slot":26}],"SetHead":[],"SetFurnaceSpeed":[],"SetCampfireItem":[{"option":"1","tag":"Campfire Slot","slot":26}],"SetLecternBook":[],"SetBrushableItem":[],"CancelEvent":[],"UncancelEvent":[],"SetEventDamage":[],"SetEventHeal":[],"SetEventXP":[],"SetEventProj":[],"SetEventSound":[],"BlockDropsOn":[],"BlockDropsOff":[],"WebRequest":[{"option":"Post","tag":"Request Method","slot":25},{"option":"text/plain","tag":"Content Type","slot":26}],"DiscordWebhook":[]},"set_var":{"=":[],"RandomValue":[],"PurgeVars":[{"option":"Full word(s) in name","tag":"Match Requirement","slot":25},{"option":"False","tag":"Ignore Case","slot":26}],"+":[],"-":[],"x":[],"/":[{"option":"Default","tag":"Division Mode","slot":26}],"%":[{"option":"Remainder","tag":"Remainder Mode","slot":26}],"+=":[],"-=":[],"Exponent":[],"Root":[],"Logarithm":[],"ParseNumber":[],"AbsoluteValue":[],"ClampNumber":[],"WrapNum":[],"Average":[],"RandomNumber":[{"option":"Whole number","tag":"Rounding Mode","slot":26}]," RoundNumber ":[{"option":"Nearest","tag":"Round Mode","slot":26}],"MinNumber":[],"MaxNumber":[],"NormalRandom":[{"option":"Normal","tag":"Distribution","slot":26}],"Sine":[{"option":"Sine","tag":"Sine Variant","slot":25},{"option":"Degrees","tag":"Input","slot":26}],"Cosine":[{"option":"Cosine","tag":"Cosine Variant","slot":25},{"option":"Degrees","tag":"Input","slot":26}],"Tangent":[{"option":"Tangent","tag":"Tangent Variant","slot":25},{"option":"Degrees","tag":"Input","slot":26}],"PerlinNoise":[{"option":"Brownian","tag":"Fractal Type","slot":26}],"VoronoiNoise":[{"option":"Euclidean","tag":"Cell Edge Type","slot":26}],"WorleyNoise":[{"option":"Euclidean","tag":"Cell Edge Type","slot":25},{"option":"Primary","tag":"Distance Calculation","slot":26}],"Bitwise":[{"option":"|","tag":"Operator","slot":26}],"String":[{"option":"No spaces","tag":"Text Value Merging","slot":26}],"ReplaceString":[{"option":"All occurrences","tag":"Replacement Type","slot":25},{"option":"Disable","tag":"Regular Expressions","slot":26}],"RemoveString":[{"option":"Disable","tag":"Regular Expressions","slot":26}],"TrimString":[],"SplitString":[],"JoinString":[],"SetCase":[{"option":"UPPERCASE","tag":"Capitalization Type","slot":26}],"StringLength":[],"RepeatString":[],"FormatTime":[{"option":"2020/08/17 17:20:54","tag":"Format","slot":26}],"TranslateColors":[{"option":"From & to color","tag":"Translation Type","slot":26}],"StyledText":[{"option":"True","tag":"Inherit Styles","slot":25},{"option":"No spaces","tag":"Text Value Merging","slot":26}],"ClearFormatting":[],"GetMiniMessageExpr":[],"ParseMiniMessageExpr":[{"option":"False","tag":"Parse Legacy Color Codes","slot":25},{"option":"Style Only","tag":"Allowed Tags","slot":26}],"TrimStyledText":[],"ContentLength":[],"GetCoord":[{"option":"Plot coordinate","tag":"Coordinate Type","slot":25},{"option":"X","tag":"Coordinate","slot":26}],"SetCoord":[{"option":"Plot coordinate","tag":"Coordinate Type","slot":25},{"option":"X","tag":"Coordinate","slot":26}],"SetAllCoords":[{"option":"Plot coordinate","tag":"Coordinate Type","slot":26}],"ShiftOnAxis":[{"option":"X","tag":"Coordinate","slot":26}],"ShiftAllAxes":[],"ShiftInDirection":[{"option":"Forward","tag":"Direction","slot":26}],"ShiftAllDirections":[],"ShiftToward":[],"ShiftOnVector":[{"option":"False","tag":"Add Location Rotation","slot":26}],"GetDirection":[]," SetDirection ":[],"ShiftRotation":[{"option":"Pitch","tag":"Rotation Axis","slot":26}],"FaceLocation":[{"option":"Toward location","tag":"Face Direction","slot":26}],"AlignLoc":[{"option":"Keep rotation","tag":"Rotation","slot":24},{"option":"All coordinates","tag":"Coordinates","slot":25},{"option":"Block center","tag":"Alignment Mode","slot":26}],"Distance":[{"option":"Distance 3D (X/Y/Z)","tag":"Distance Type","slot":26}],"GetCenterLoc":[],"RandomLoc":[],"GetItemType":[{"option":"Item ID (golden_apple)","tag":"Return Value Type","slot":26}],"SetItemType":[]," GetItemName ":[]," SetItemName ":[]," GetItemLore ":[],"GetLoreLine":[]," SetItemLore ":[],"GetItemAmount":[],"SetItemAmount":[],"GetMaxItemAmount":[],"GetItemDura":[{"option":"Get Damage","tag":"Durability Type","slot":26}],"SetItemDura":[{"option":"Set Damage","tag":"Durability Type","slot":26}],"SetBreakability":[{"option":"Unbreakable","tag":"Breakability","slot":26}]," GetItemEnchants ":[]," SetItemEnchants ":[],"AddItemEnchant":[],"RemItemEnchant":[],"GetHeadOwner":[{"option":"Owner Name","tag":"Text Value","slot":26}],"SetHeadTexture":[]," GetBookText ":[],"SetBookText":[],"GetItemTag":[],"GetAllItemTags":[],"SetItemTag":[],"RemoveItemTag":[],"ClearItemTag":[],"SetModelData":[],"GetItemEffects":[],"SetItemEffects":[],"SetItemFlags":[{"option":"No Change","tag":"Hide Armor Trim","slot":19},{"option":"No Change","tag":"Hide Color","slot":20},{"option":"No Change","tag":"Hide Enchantments","slot":21},{"option":"No Change","tag":"Hide Attributes","slot":22},{"option":"No Change","tag":"Hide Unbreakable","slot":23},{"option":"No Change","tag":"Hide Can Destroy","slot":24},{"option":"No Change","tag":"Hide Can Place On","slot":25},{"option":"No Change","tag":"Hide Potion Effects","slot":26}],"GetCanPlaceOn":[],"SetCanPlaceOn":[],"GetCanDestroy":[],"SetCanDestroy":[],"GetItemRarity":[],"GetLodestoneLoc":[],"SetLodestoneLoc":[{"option":"False","tag":"Require Lodestone at Location","slot":26}],"SetArmorTrim":[{"option":"None","tag":"Trim Pattern","slot":25},{"option":"Amethyst","tag":"Trim Material","slot":26}],"GetItemColor":[],"SetItemColor":[],"GetItemAttribute":[{"option":"Armor","tag":"Attribute","slot":25},{"option":"Any","tag":"Active Equipment Slot","slot":26}],"AddItemAttribute":[{"option":"Armor","tag":"Attribute","slot":24},{"option":"Add number","tag":"Operation","slot":25},{"option":"Main hand","tag":"Active Equipment Slot","slot":26}],"SetMapTexture":[],"CreateList":[],"AppendValue":[],"AppendList":[],"GetListValue":[],"PopListValue":[],"SetListValue":[],"GetValueIndex":[{"option":"Ascending (first index)","tag":"Search Order","slot":26}],"ListLength":[],"InsertListValue":[],"RemoveListValue":[],"RemoveListIndex":[],"DedupList":[],"TrimList":[],"SortList":[{"option":"Ascending","tag":"Sort Order","slot":26}],"ReverseList":[],"RandomizeList":[],"FlattenList":[],"CreateDict":[],"SetDictValue":[],"GetDictValue":[],"GetDictSize":[],"RemoveDictEntry":[],"ClearDict":[],"GetDictKeys":[],"GetDictValues":[],"AppendDict":[],"SortDict":[{"option":"Sort by Key","tag":"Sorting Type","slot":25},{"option":"Ascending","tag":"Sorting Order","slot":26}],"GetBlockType":[{"option":"Block ID (oak_log)","tag":"Return Value Type","slot":26}],"GetBlockData":[],"GetAllBlockData":[{"option":"True","tag":"Hide Default","slot":26}],"GetBlockGrowth":[{"option":"Growth stage number","tag":"Growth Unit","slot":26}],"GetBlockPower":[],"GetLight":[{"option":"Combined light","tag":"Light Type","slot":26}]," GetSignText ":[{"option":"Front","tag":"Sign Side","slot":25},{"option":"1","tag":"Sign Line","slot":26}],"ContainerName":[],"ContainerLock":[],"GetContainerItems":[{"option":"False","tag":"Ignore Empty Slots","slot":26}],"GetLecternBook":[],"GetLecternPage":[],"Raycast":[{"option":"False","tag":"Entity Collision","slot":25},{"option":"All blocks","tag":"Block Collision","slot":26}],"GetParticleType":[],"SetParticleType":[],"GetParticleAmount":[],"SetParticleAmount":[],"GetParticleSprd":[{"option":"Horizontal","tag":"Spread","slot":26}],"SetParticleSprd":[],"GetParticleSize":[],"SetParticleSize":[],"GetParticleMat":[],"SetParticleMat":[],"GetParticleColor":[],"SetParticleColor":[],"GetParticleMotion":[],"SetParticleMotion":[],"GetParticleRoll":[],"SetParticleRoll":[],"Vector":[],"VectorBetween":[],"GetVectorComp":[{"option":"X","tag":"Component","slot":26}],"SetVectorComp":[{"option":"X","tag":"Component","slot":26}],"GetVectorLength":[{"option":"Length","tag":"Length Type","slot":26}],"SetVectorLength":[],"MultiplyVector":[],"AddVectors":[],"SubtractVectors":[],"AlignVector":[],"RotateAroundAxis":[{"option":"X","tag":"Axis","slot":25},{"option":"Degrees","tag":"Angle Units","slot":26}],"RotateAroundVec":[{"option":"Degrees","tag":"Angle Units","slot":26}],"ReflectVector":[],"CrossProduct":[],"DotProduct":[],"DirectionName":[],"GetPotionType":[],"SetPotionType":[],"GetPotionAmp":[],"SetPotionAmp":[],"GetPotionDur":[],"SetPotionDur":[],"GetSoundType":[],"SetSoundType":[],"GetSoundVariant":[],"SetSoundVariant":[],"GetCustomSound":[],"SetCustomSound":[],"GetSoundPitch":[{"option":"Pitch (number)","tag":"Return Value Type","slot":26}],"SetSoundPitch":[],"GetSoundVolume":[],"SetSoundVolume":[],"BlockHardness":[],"BlockResistance":[],"RGBColor":[],"HSBColor":[],"HSLColor":[],"GetColorChannels":[{"option":"RGB","tag":"Color Channels","slot":26}]},"if_player":{"IsSneaking":[],"IsSprinting":[],"IsGliding":[],"IsFlying":[],"IsGrounded":[],"IsSwimming":[],"IsBlocking":[],"UsingPack":[],"IsLookingAt":[{"option":"Ignore fluids","tag":"Fluid Mode","slot":26}]," StandingOn ":[],"IsNear":[{"option":"Sphere","tag":"Shape","slot":26}],"InWorldBorder":[],"IsHolding":[{"option":"Either hand","tag":"Hand Slot","slot":26}],"HasItem":[{"option":"Has Any Item","tag":"Check Mode","slot":26}],"IsWearing":[{"option":"Is Wearing Some","tag":"Check Mode","slot":26}],"IsUsingItem":[],"NoItemCooldown":[],"HasSlotItem":[],"MenuSlotEquals":[],"CursorItem":[],"HasRoomForItem":[{"option":"Main inventory","tag":"Checked Slots","slot":25},{"option":"Has Room for Any Item","tag":"Check Mode","slot":26}],"NameEquals":[],"SlotEquals":[],"HasPotion":[{"option":"None","tag":"Check Properties","slot":25},{"option":"Has any effect","tag":"Check Mode","slot":26}]," IsRiding ":[{"option":"True","tag":"Ignore Formatting","slot":26}],"InvOpen":[{"option":"Any Inventory","tag":"Inventory Type","slot":26}],"HasPermission":[{"option":"Developer or builder","tag":"Permission","slot":26}]},"if_entity":{"IsType":[],"NameEquals":[{"option":"True","tag":"Ignore Formatting","slot":26}]," StandingOn ":[],"IsGrounded":[],"IsNear":[{"option":"Sphere","tag":"Shape","slot":26}]," IsRiding ":[{"option":"True","tag":"Ignore Formatting","slot":26}],"HasPotion":[{"option":"None","tag":"Check Properties","slot":25},{"option":"Has any effect","tag":"Check Mode","slot":26}],"IsMob":[],"IsProj":[],"IsVehicle":[],"IsItem":[],"Exists":[],"HasCustomTag":[],"IsSheared":[]},"if_game":{"BlockEquals":[],"BlockPowered":[{"option":"Direct power","tag":"Redstone Power Mode","slot":26}],"ContainerHas":[],"ContainerHasAll":[],"HasRoomForItem":[{"option":"Has Room for Any Item","tag":"Check Mode","slot":26}]," SignHasTxt ":[{"option":"Contains","tag":"Check Mode","slot":24},{"option":"Front","tag":"Sign Side","slot":25},{"option":"All lines","tag":"Sign Line","slot":26}],"HasPlayer":[],"EventBlockEquals":[],"EventItemEquals":[{"option":"Ignore stack size/durability","tag":"Comparison Mode","slot":26}],"CommandEquals":[{"option":"True","tag":"Ignore Case","slot":25},{"option":"Check entire command","tag":"Check Mode","slot":26}],"CmdArgEquals":[{"option":"True","tag":"Ignore Case","slot":26}],"AttackIsCrit":[],"EventCancelled":[]},"if_var":{"=":[],"!=":[],">":[],">=":[],"<":[],"<=":[]," InRange ":[{"option":"Exact","tag":"Location Handling","slot":26}],"LocIsNear":[{"option":"Sphere","tag":"Shape","slot":26}],"StringMatches":[{"option":"False","tag":"Ignore Case","slot":25},{"option":"Disable","tag":"Regular Expressions","slot":26}],"Contains":[{"option":"False","tag":"Ignore Case","slot":26}],"StartsWith":[{"option":"False","tag":"Ignore Case","slot":26}],"EndsWith":[{"option":"False","tag":"Ignore Case","slot":26}],"VarExists":[],"VarIsType":[{"option":"Number","tag":"Variable Type","slot":26}],"ItemEquals":[{"option":"Exactly equals","tag":"Comparison Mode","slot":26}],"ItemHasTag":[],"ListContains":[{"option":"Has Any Value","tag":"Check Mode","slot":26}],"ListValueEq":[],"DictHasKey":[],"DictValueEquals":[]},"repeat":{"Forever":[],"While":[],"Multiple":[]," Range ":[],"ForEach":[{"option":"True","tag":"Allow List Changes","slot":26}],"ForEachEntry":[],"Grid":[],"Adjacent":[{"option":"False","tag":"Change Location Rotation","slot":24},{"option":"False","tag":"Include Origin Block","slot":25},{"option":"Adjacent (6 blocks)","tag":"Pattern","slot":26}],"Path":[{"option":"False","tag":"Rotate Location","slot":26}],"Sphere":[{"option":"False","tag":"Point Locations Inwards","slot":26}]},"select_obj":{"EventTarget":[{"option":"Default","tag":"Event Target","slot":26}],"RandomPlayer":[],"LastEntity":[],"PlayerName":[],"EntityName":[{"option":"True","tag":"Ignore Formatting","slot":26}],"AllPlayers":[],"AllEntities":[],"PlayersCond":[],"EntitiesCond":[],"Invert":[],"FilterCondition":[],"FilterRandom":[],"FilterDistance":[{"option":"False","tag":"Ignore Y-Axis","slot":25},{"option":"Nearest","tag":"Compare Mode","slot":26}],"FilterSort":[{"option":"Ascending","tag":"Sort Order","slot":26}],"FilterRay":[{"option":"Solid blocks","tag":"Block Collision","slot":26}],"Reset":[]},"control":{"Wait":[{"option":"Ticks","tag":"Time Unit","slot":26}],"Return":[],"End":[],"Skip":[],"StopRepeat":[]},"event":{"Join":[],"Leave":[],"Command":[],"RightClick":[],"LeftClick":[],"ClickEntity":[],"ClickPlayer":[],"PlaceBlock":[],"BreakBlock":[],"SwapHands":[],"ChangeSlot":[],"TameEntity":[],"Walk":[],"Jump":[],"Sneak":[],"Unsneak":[],"StartSprint":[],"StopSprint":[],"StartFly":[],"StopFly":[],"Riptide":[],"Dismount":[],"HorseJump":[],"VehicleJump":[],"ClickMenuSlot":[],"ClickInvSlot":[],"PickUpItem":[],"DropItem":[],"Consume":[],"BreakItem":[],"CloseInv":[],"Fish":[],"PlayerTakeDmg":[],"PlayerDmgPlayer":[],"DamageEntity":[],"EntityDamagePlayer":[],"PlayerHeal":[],"ShootBow":[],"ShootProjectile":[],"ProjHit":[],"ProjDmgPlayer":[],"CloudImbuePlayer":[],"Death":[],"KillPlayer":[],"PlayerResurrect":[],"KillMob":[],"MobKillPlayer":[],"Respawn":[],"PackLoad":[],"PackDecline":[],"LoadCrossbow":[]},"entity_event":{"EntityDmgEntity":[],"EntityKillEntity":[],"EntityDmg":[],"ProjDmgEntity":[],"ProjKillEntity":[],"EntityDeath":[],"EntityExplode":[],"VehicleDamage":[],"BlockFall":[],"FallingBlockLand":[],"EntityResurrect":[],"RegrowWool":[]},"extras":{"func":[{"item":{"id":"bl_tag","data":{"option":"False","tag":"Is Hidden","action":"dynamic","block":"func"}},"slot":26}],"process":[{"item":{"id":"bl_tag","data":{"option":"False","tag":"Is Hidden","action":"dynamic","block":"process"}},"slot":26}],"start_process":[{"item":{"id":"bl_tag","data":{"option":"Don't copy","tag":"Local Variables","action":"dynamic","block":"start_process"}},"slot":25},{"item":{"id":"bl_tag","data":{"option":"With current targets","tag":"Target Mode","action":"dynamic","block":"start_process"}},"slot":26}],"call_function":[],"bracket":[]}}