minecraft-datapack-language 15.3.3__py3-none-any.whl → 15.3.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.
- minecraft_datapack_language/_version.py +2 -2
- minecraft_datapack_language/cli_build.py +35 -3
- minecraft_datapack_language/mdl_parser_js.py +31 -1
- {minecraft_datapack_language-15.3.3.dist-info → minecraft_datapack_language-15.3.5.dist-info}/METADATA +1 -1
- {minecraft_datapack_language-15.3.3.dist-info → minecraft_datapack_language-15.3.5.dist-info}/RECORD +9 -9
- {minecraft_datapack_language-15.3.3.dist-info → minecraft_datapack_language-15.3.5.dist-info}/WHEEL +0 -0
- {minecraft_datapack_language-15.3.3.dist-info → minecraft_datapack_language-15.3.5.dist-info}/entry_points.txt +0 -0
- {minecraft_datapack_language-15.3.3.dist-info → minecraft_datapack_language-15.3.5.dist-info}/licenses/LICENSE +0 -0
- {minecraft_datapack_language-15.3.3.dist-info → minecraft_datapack_language-15.3.5.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.5'
|
32
|
+
__version_tuple__ = version_tuple = (15, 3, 5)
|
33
33
|
|
34
34
|
__commit_id__ = commit_id = None
|
@@ -423,8 +423,23 @@ 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
|
+
func_namespace = statement.get('namespace', namespace) # Use specified namespace or current namespace
|
428
|
+
|
429
|
+
if scope:
|
430
|
+
# Handle scoped function call
|
431
|
+
if scope == 'global':
|
432
|
+
# Global scope uses the server armor stand
|
433
|
+
selector = "@e[type=armor_stand,tag=mdl_server,limit=1]"
|
434
|
+
else:
|
435
|
+
# Use the specified scope selector
|
436
|
+
selector = scope
|
437
|
+
|
438
|
+
# Generate execute as command
|
439
|
+
commands.append(f"execute as {selector} run function {func_namespace}:{func_name}")
|
440
|
+
else:
|
441
|
+
# Simple function call without scope
|
442
|
+
commands.append(f"function {func_namespace}:{func_name}")
|
428
443
|
|
429
444
|
elif statement['type'] == 'raw_text':
|
430
445
|
# Raw Minecraft commands
|
@@ -748,7 +763,24 @@ def _ast_to_pack(ast: Dict[str, Any], mdl_files: List[Path]) -> Pack:
|
|
748
763
|
if statement.get('type') == 'command':
|
749
764
|
function.commands.append(statement['command'])
|
750
765
|
elif statement.get('type') == 'function_call':
|
751
|
-
|
766
|
+
func_name = statement['name']
|
767
|
+
scope = statement.get('scope')
|
768
|
+
func_namespace = statement.get('namespace', namespace_name) # Use specified namespace or current namespace
|
769
|
+
|
770
|
+
if scope:
|
771
|
+
# Handle scoped function call
|
772
|
+
if scope == 'global':
|
773
|
+
# Global scope uses the server armor stand
|
774
|
+
selector = "@e[type=armor_stand,tag=mdl_server,limit=1]"
|
775
|
+
else:
|
776
|
+
# Use the specified scope selector
|
777
|
+
selector = scope
|
778
|
+
|
779
|
+
# Generate execute as command
|
780
|
+
function.commands.append(f"execute as {selector} run function {func_namespace}:{func_name}")
|
781
|
+
else:
|
782
|
+
# Simple function call without scope
|
783
|
+
function.commands.append(f"function {func_namespace}:{func_name}")
|
752
784
|
elif statement.get('type') == 'variable_assignment':
|
753
785
|
# Handle variable assignments
|
754
786
|
var_name = statement['name']
|
@@ -589,9 +589,39 @@ 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
|
+
|
613
|
+
# Extract function name from namespace:function_name format
|
614
|
+
if ':' in name:
|
615
|
+
namespace_parts = name.split(':', 1)
|
616
|
+
if len(namespace_parts) == 2:
|
617
|
+
namespace_name = namespace_parts[0]
|
618
|
+
function_name = namespace_parts[1]
|
619
|
+
# Store both namespace and function name
|
620
|
+
return {"type": "function_call", "name": function_name, "scope": scope, "namespace": namespace_name}
|
621
|
+
|
592
622
|
self._match(TokenType.SEMICOLON)
|
593
623
|
|
594
|
-
return {"type": "function_call", "name": name}
|
624
|
+
return {"type": "function_call", "name": name, "scope": scope}
|
595
625
|
|
596
626
|
def _parse_execute_statement(self) -> ExecuteStatement:
|
597
627
|
"""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.5
|
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.3.dist-info → minecraft_datapack_language-15.3.5.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=NdqjbaB72vB3alACXOO2w7dz3_6tduzQNYfib3o1u74,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=owE_cAA3HH7n3LjIIIgyDEHPPB-EyubrwR0NS9mUufY,43924
|
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=Ap7EDpC5wbu1qFmC8htzd8rRqSyYugt58h0AppfDD6s,40171
|
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.5.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
20
|
+
minecraft_datapack_language-15.3.5.dist-info/METADATA,sha256=TM4dfgr2yrEgiZ9Utqsl9JLpqcqMvtbE8PrgWbKjjbY,35229
|
21
|
+
minecraft_datapack_language-15.3.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
22
|
+
minecraft_datapack_language-15.3.5.dist-info/entry_points.txt,sha256=c6vjBeCiyQflvPHBRyBk2nJCSfYt3Oc7Sc9V87ySi_U,108
|
23
|
+
minecraft_datapack_language-15.3.5.dist-info/top_level.txt,sha256=ADtFI476tbKLLxEAA-aJQAfg53MA3k_DOb0KTFiggfw,28
|
24
|
+
minecraft_datapack_language-15.3.5.dist-info/RECORD,,
|
{minecraft_datapack_language-15.3.3.dist-info → minecraft_datapack_language-15.3.5.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|