minecraft-datapack-language 15.3.2__py3-none-any.whl → 15.3.4__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.
- minecraft_datapack_language/_version.py +2 -2
- minecraft_datapack_language/cli_build.py +33 -3
- minecraft_datapack_language/mdl_parser_js.py +22 -1
- {minecraft_datapack_language-15.3.2.dist-info → minecraft_datapack_language-15.3.4.dist-info}/METADATA +1 -1
- {minecraft_datapack_language-15.3.2.dist-info → minecraft_datapack_language-15.3.4.dist-info}/RECORD +9 -9
- {minecraft_datapack_language-15.3.2.dist-info → minecraft_datapack_language-15.3.4.dist-info}/WHEEL +0 -0
- {minecraft_datapack_language-15.3.2.dist-info → minecraft_datapack_language-15.3.4.dist-info}/entry_points.txt +0 -0
- {minecraft_datapack_language-15.3.2.dist-info → minecraft_datapack_language-15.3.4.dist-info}/licenses/LICENSE +0 -0
- {minecraft_datapack_language-15.3.2.dist-info → minecraft_datapack_language-15.3.4.dist-info}/top_level.txt +0 -0
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
28
28
|
commit_id: COMMIT_ID
|
29
29
|
__commit_id__: COMMIT_ID
|
30
30
|
|
31
|
-
__version__ = version = '15.3.
|
32
|
-
__version_tuple__ = version_tuple = (15, 3,
|
31
|
+
__version__ = version = '15.3.4'
|
32
|
+
__version_tuple__ = version_tuple = (15, 3, 4)
|
33
33
|
|
34
34
|
__commit_id__ = commit_id = None
|
@@ -423,8 +423,22 @@ def _process_statement(statement: Any, namespace: str, function_name: str, state
|
|
423
423
|
|
424
424
|
elif statement['type'] == 'function_call':
|
425
425
|
func_name = statement['name']
|
426
|
-
|
427
|
-
|
426
|
+
scope = statement.get('scope')
|
427
|
+
|
428
|
+
if scope:
|
429
|
+
# Handle scoped function call
|
430
|
+
if scope == 'global':
|
431
|
+
# Global scope uses the server armor stand
|
432
|
+
selector = "@e[type=armor_stand,tag=mdl_server,limit=1]"
|
433
|
+
else:
|
434
|
+
# Use the specified scope selector
|
435
|
+
selector = scope
|
436
|
+
|
437
|
+
# Generate execute as command
|
438
|
+
commands.append(f"execute as {selector} run function {namespace}:{func_name}")
|
439
|
+
else:
|
440
|
+
# Simple function call without scope
|
441
|
+
commands.append(f"function {namespace}:{func_name}")
|
428
442
|
|
429
443
|
elif statement['type'] == 'raw_text':
|
430
444
|
# Raw Minecraft commands
|
@@ -748,7 +762,23 @@ def _ast_to_pack(ast: Dict[str, Any], mdl_files: List[Path]) -> Pack:
|
|
748
762
|
if statement.get('type') == 'command':
|
749
763
|
function.commands.append(statement['command'])
|
750
764
|
elif statement.get('type') == 'function_call':
|
751
|
-
|
765
|
+
func_name = statement['name']
|
766
|
+
scope = statement.get('scope')
|
767
|
+
|
768
|
+
if scope:
|
769
|
+
# Handle scoped function call
|
770
|
+
if scope == 'global':
|
771
|
+
# Global scope uses the server armor stand
|
772
|
+
selector = "@e[type=armor_stand,tag=mdl_server,limit=1]"
|
773
|
+
else:
|
774
|
+
# Use the specified scope selector
|
775
|
+
selector = scope
|
776
|
+
|
777
|
+
# Generate execute as command
|
778
|
+
function.commands.append(f"execute as {selector} run function {namespace_name}:{func_name}")
|
779
|
+
else:
|
780
|
+
# Simple function call without scope
|
781
|
+
function.commands.append(f"function {namespace_name}:{func_name}")
|
752
782
|
elif statement.get('type') == 'variable_assignment':
|
753
783
|
# Handle variable assignments
|
754
784
|
var_name = statement['name']
|
@@ -589,9 +589,30 @@ class MDLParser:
|
|
589
589
|
name_token = self._match(TokenType.STRING)
|
590
590
|
name = name_token.value.strip('"').strip("'")
|
591
591
|
|
592
|
+
# Check for scope selector after function name
|
593
|
+
scope = None
|
594
|
+
if '<' in name and name.endswith('>'):
|
595
|
+
# Extract scope selector from function name
|
596
|
+
parts = name.split('<', 1)
|
597
|
+
if len(parts) == 2:
|
598
|
+
function_name = parts[0]
|
599
|
+
scope_selector = parts[1][:-1] # Remove closing >
|
600
|
+
scope = scope_selector
|
601
|
+
name = function_name
|
602
|
+
else:
|
603
|
+
# Malformed scope selector
|
604
|
+
raise create_parser_error(
|
605
|
+
message="Malformed scope selector in function call",
|
606
|
+
file_path=self.source_file,
|
607
|
+
line=self._peek().line,
|
608
|
+
column=self._peek().column,
|
609
|
+
line_content=name,
|
610
|
+
suggestion="Use format: function \"namespace:function_name<@selector>\""
|
611
|
+
)
|
612
|
+
|
592
613
|
self._match(TokenType.SEMICOLON)
|
593
614
|
|
594
|
-
return {"type": "function_call", "name": name}
|
615
|
+
return {"type": "function_call", "name": name, "scope": scope}
|
595
616
|
|
596
617
|
def _parse_execute_statement(self) -> ExecuteStatement:
|
597
618
|
"""Parse execute statement."""
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: minecraft-datapack-language
|
3
|
-
Version: 15.3.
|
3
|
+
Version: 15.3.4
|
4
4
|
Summary: Compile JavaScript-style MDL language or Python API into a Minecraft datapack (1.21+ ready). Features variables, control flow, error handling, and VS Code extension.
|
5
5
|
Project-URL: Homepage, https://www.mcmdl.com
|
6
6
|
Project-URL: Documentation, https://www.mcmdl.com/docs
|
{minecraft_datapack_language-15.3.2.dist-info → minecraft_datapack_language-15.3.4.dist-info}/RECORD
RENAMED
@@ -1,8 +1,8 @@
|
|
1
1
|
minecraft_datapack_language/__init__.py,sha256=i-qCchbe5b2Fshgc6yCU9mddOLs2UBt9SAcLqfUIrT0,606
|
2
|
-
minecraft_datapack_language/_version.py,sha256=
|
2
|
+
minecraft_datapack_language/_version.py,sha256=VBgspE8SeVlI_5KjUnpoKLbxrMSzz1rysOdbcXXNdwg,706
|
3
3
|
minecraft_datapack_language/ast_nodes.py,sha256=pgjI2Nlap3ixFPgWqGSkqncG9zB91h5BKgRjtcJqMew,2118
|
4
4
|
minecraft_datapack_language/cli.py,sha256=p5A_tEEXugN2NhQFbbgfwi4FxbWYD91RWeKR_A3Vuec,6263
|
5
|
-
minecraft_datapack_language/cli_build.py,sha256=
|
5
|
+
minecraft_datapack_language/cli_build.py,sha256=curfcVYXZczDPRE-eiBPokwU10_Z-xdvnCHVcoXFfuk,43667
|
6
6
|
minecraft_datapack_language/cli_check.py,sha256=bPq9gHsxQ1CIiftkrAtRCifWkVAyjp5c8Oay2NNQ1qs,6277
|
7
7
|
minecraft_datapack_language/cli_help.py,sha256=jUTHUQBONAZKVTdQK9tNPXq4c_6xpsafNOvHDjkEldg,12243
|
8
8
|
minecraft_datapack_language/cli_new.py,sha256=uaKH0VBC43XBt_Hztc35-BfC9bYlsDdLbAfe_42rrtI,8235
|
@@ -13,12 +13,12 @@ minecraft_datapack_language/linter.py,sha256=7UqbygC5JPCGg-BSOq65NB2xEJBu_OUOYII
|
|
13
13
|
minecraft_datapack_language/mdl_errors.py,sha256=a_-683gjF3gfGRpDMbRgCXmXD9_aYYBmLodNH6fe29A,11596
|
14
14
|
minecraft_datapack_language/mdl_lexer_js.py,sha256=F8I6A2CjV1sGn8a7OgG66nRKm-0jKxQpOq3fkUgkYlA,26201
|
15
15
|
minecraft_datapack_language/mdl_linter.py,sha256=z85xoAglENurCh30bR7kEHZ_JeMxcYaLDcGNRAl-RAI,17253
|
16
|
-
minecraft_datapack_language/mdl_parser_js.py,sha256=
|
16
|
+
minecraft_datapack_language/mdl_parser_js.py,sha256=JAwjsC6hdTrZYtNelpt03vOMqphAEbTwK68ejXwJsqQ,39702
|
17
17
|
minecraft_datapack_language/pack.py,sha256=nYiXQ3jgJlDfc4m-65f7C2LFhDRioaUU_XVy6Na4SJI,34625
|
18
18
|
minecraft_datapack_language/utils.py,sha256=Aq0HAGlXqj9BUTEjaEilpvzEW0EtZYYMMwOqG9db6dE,684
|
19
|
-
minecraft_datapack_language-15.3.
|
20
|
-
minecraft_datapack_language-15.3.
|
21
|
-
minecraft_datapack_language-15.3.
|
22
|
-
minecraft_datapack_language-15.3.
|
23
|
-
minecraft_datapack_language-15.3.
|
24
|
-
minecraft_datapack_language-15.3.
|
19
|
+
minecraft_datapack_language-15.3.4.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
20
|
+
minecraft_datapack_language-15.3.4.dist-info/METADATA,sha256=W90GO33CEecqTWLBbxpxeNHcDb_n2K34zv5pagEDLAw,35229
|
21
|
+
minecraft_datapack_language-15.3.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
22
|
+
minecraft_datapack_language-15.3.4.dist-info/entry_points.txt,sha256=c6vjBeCiyQflvPHBRyBk2nJCSfYt3Oc7Sc9V87ySi_U,108
|
23
|
+
minecraft_datapack_language-15.3.4.dist-info/top_level.txt,sha256=ADtFI476tbKLLxEAA-aJQAfg53MA3k_DOb0KTFiggfw,28
|
24
|
+
minecraft_datapack_language-15.3.4.dist-info/RECORD,,
|
{minecraft_datapack_language-15.3.2.dist-info → minecraft_datapack_language-15.3.4.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|