You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Minecraft Script ist eine Programmiersprache für Entwickler der mcfunctions, sowie für die Minecraft Map und Package Erschaffer. Die .mcscript Dateien werden dabei zu mcfunction compiled und generiert. Dies bietet dem Entwickler erweiterte Möglichkeiten, wie zum Beispiel Modals, Loops, Variablen, Konstanten und Command-Wrapping.
10
11
@@ -25,6 +26,7 @@ English documentation [here](https://github.com/Stevertus/mcscript/blob/master/R
25
26
- [Globale Dateien](#global)
26
27
4)[Syntax](#syntax)
27
28
-[Command Grouping](#groups)
29
+
-[Funktionen](#functions)
28
30
-[Variablen](#vars)
29
31
-[Boolean Variablen](#boolean)
30
32
-[Konstanten](#consts)
@@ -38,6 +40,7 @@ English documentation [here](https://github.com/Stevertus/mcscript/blob/master/R
38
40
-[forEach-Loops](#foreach)
39
41
-[Modals](#modals)
40
42
-[System Modals](#systemModals)
43
+
-[Fehler und Debugging](#debugging)
41
44
5)[IDEs und Syntax Highlighting](#ide)
42
45
<aid="install"></a>
43
46
## 1) Installation
@@ -78,12 +81,13 @@ Dieser Command wandelt alle .mcscript Dateien in .mcfunction Format um. Was in d
78
81
In der Konsole werden alle generierten Dateien angezeigt oder ein Fehler ausgeworfen, falls etwas nicht korrekt war.
79
82
80
83
Alternativ kannst mit `mcscript compile *filepath*` einen speziellen Pfad oder spezielle Datei angeben.
84
+
Mit der zusätzlichen `-fullErr` flag können ganze Fehler mit code Referenzen angezeigt werden.
81
85
<aid="cli-watch"></a>
82
86
### 2.3 mcscript watch
83
87
84
88
Hiermit wird dein Code automatisch compiled, wenn du irgendwelche Änderungen machst (speicherst). So musst du nicht bei jeder Änderung den obigen Command eingeben.
85
89
86
-
Auch hier kann ein Pfad angegeben werden.
90
+
Auch hier kann ein Pfad angegeben und -fullErr verwendet werden.
87
91
<aid="cli-add"></a>
88
92
### 2.4 mcscript add [url or package]
89
93
Dieser Conmmand kann ein datapack zu deiner Welt hinzufügen.
@@ -167,7 +171,7 @@ Zwei Leerzeilen können mit "##" erreicht werden.
167
171
"as, at, positioned,align,dimension,rotated,anchored" können zusammengefasst werden:
168
172
169
173
170
-
as('@a'){
174
+
as(@a){
171
175
/commands => /execute positioned ~ ~ ~ run command
172
176
}
173
177
@@ -182,18 +186,44 @@ asat(@s){
182
186
"Gruppen können auch aufgelistet werden:
183
187
184
188
185
-
as('@p'), at('@s'), positioned('~ ~1 ~'){
189
+
as(@p), at(@s), positioned('~ ~1 ~'){
186
190
/say command
187
191
}
188
192
==> /execute as @p at @s positioned ~ ~-1 ~ run say command
==> /execute as @p at @s positioned ~ ~-1 ~ if entity @s[tag=mytag] run say command
199
+
<aid="functions"></a>
200
+
### 4.2 Funktionen
201
+
```
202
+
[run] function "name|path" {
203
+
/commands
204
+
}
205
+
```
206
+
> run optional
207
+
> ein Pfad sollte als String angegeben werden
208
+
> ein nur aus Buchstaben bestehender name auch ohne ""
209
+
210
+
Eine Funktion generiert eine weitere mcfunction mit den angegebenen Namen oder Pfad. Mit dem run keyword kann eine Funktion auch direkt ausgeführt werden.
211
+
Dies ist eine alternative zu einer wesentlich komplizierteren Variante mit `#file:`.
212
+
Bsp:
213
+
```
214
+
run function test {
215
+
/say function
216
+
}
217
+
/say not function
218
+
=
219
+
/function prj:test
220
+
/say not function
221
+
222
+
#file: ./test
223
+
/say function
224
+
```
195
225
<aid="vars"></a>
196
-
### 4.2 Variablen
226
+
### 4.3 Variablen
197
227
Wie jede Programmiersprache hat auch Minecraft Script Variablen. Sie müssen wiefolgt initialisiert werden:
198
228
`var test`
199
229
Der Variablen kann ein Wert hinzugewiesen werden:
@@ -253,7 +283,7 @@ Beispiel mit /data get:
253
283
`var varResult = run: data get entity @s Pos[0]`
254
284
255
285
<aid="boolean"></a>
256
-
### 4.3 Boolean Variablen (Tags)
286
+
### 4.4 Boolean Variablen (Tags)
257
287
> `bool [name] [selector](optional) = true|false`
258
288
259
289
So können Wahrheitswerte deklariert werden.
@@ -268,7 +298,7 @@ if(isCool){
268
298
}
269
299
```
270
300
<aid="consts"></a>
271
-
### 4.4 Konstanten
301
+
### 4.5 Konstanten
272
302
Eine andere Art Variable ist die Konstante, so deklariert:
273
303
> `const [name] = [value]`
274
304
@@ -293,7 +323,7 @@ Auch kann hier ein [RegEx](https://developer.mozilla.org/de/docs/Web/JavaScript/
293
323
`$(const).repl([/regex/],["$&"])`
294
324
295
325
<aid="if"></a>
296
-
### 4.5 If/Else Statements
326
+
### 4.6 If/Else Statements
297
327
298
328
If funktioniert ähnlich wie das Command Wrapping:
299
329
@@ -324,18 +354,18 @@ Mit einigen extra Features:
324
354
325
355
Hier darauf achten das Argument nicht zu verändern!
326
356
```
327
-
if('entity @s[tag=test]'){
357
+
if(@s[tag=test]){
328
358
/tag @s remove test
329
359
} else {
330
360
/tag @s remove test
331
361
}
332
362
```
333
363
Hier werden beide ausgeführt!! Verbessert:
334
364
```
335
-
if('entity @s[tag=test]'){
365
+
if(@s[tag=test]){
336
366
/tag @s add testIf
337
367
}
338
-
if('entity @s[tag=testIf]'){
368
+
if(@s[tag=testIf]){
339
369
/tag @s remove test
340
370
} else {
341
371
/tag @s remove test
@@ -352,7 +382,7 @@ Hier werden beide ausgeführt!! Verbessert:
352
382
```
353
383
354
384
<aid="operators"></a>
355
-
### 4.6 Logische Operatoren
385
+
### 4.7 Logische Operatoren
356
386
357
387
In Kombination mit Command Gruppen und If-Else-Statements können zusätzlich logische Operatoren benutzt werden:
358
388
@@ -410,7 +440,7 @@ if(test @s > test2 @a){
410
440
}
411
441
```
412
442
<aid="switch"></a>
413
-
### 4.7 Switch-Cases
443
+
### 4.8 Switch-Cases
414
444
```
415
445
switch([var_name]){
416
446
case <=|<|==|>|>= [other_var]|[number] {
@@ -448,7 +478,7 @@ switch(test){
448
478
}
449
479
```
450
480
<aid="for"></a>
451
-
### 4.8 For-Loops
481
+
### 4.9 For-Loops
452
482
```
453
483
for([from],[to],[var_name](optional)){
454
484
[actions]
@@ -491,7 +521,7 @@ Das ist bei 2 dimensionalen Loops sinnvoll:
491
521
# es wird 10x say mit 1.1 - 5.2 ausgegeben
492
522
}
493
523
<aid="raycast"></a>
494
-
### 4.9 Raycasting
524
+
### 4.10 Raycasting
495
525
```
496
526
raycast([distance](optional), [block to travel through](optional),entity | block [target](optional) ){
Mcscript weiß nun, dass das Ziel eine Entity ist und führt den Command als diese aus, wenn sie getroffen wurde.
551
581
Also würde der Armor Stand test sagen.
552
582
<aid="while"></a>
553
-
### 4.10 while-Loops
583
+
### 4.11 while-Loops
554
584
Der while-Loop ist so zu definieren:
555
585
```
556
586
while([cond]){
@@ -586,7 +616,7 @@ while(test < 10){
586
616
}
587
617
```
588
618
<aid="dowhile"></a>
589
-
### 4.11 do-while-Loops
619
+
### 4.12 do-while-Loops
590
620
```
591
621
do {
592
622
/commands
@@ -595,7 +625,7 @@ do {
595
625
Der do-while-Loop funktioniert ähnlich, wie der while-Loop mit dem kleinen Unterschied, dass der Codeblock ausgeführt wird und danach erst die Bedingung geprüft wird.
@@ -696,11 +726,29 @@ Auch kann hier ein [RegEx](https://developer.mozilla.org/de/docs/Web/JavaScript/
696
726
`$(argument).repl([/regex/],["$&"])`
697
727
698
728
<a id="systemModals"></a>
699
-
### 4.14 System Modals
729
+
### 4.15 System Modals
700
730
701
731
Es gibt schon einige vordefinierte Modals, die hilfreich sein könnten. Bitte schaue dir dafür die spezifischen Dokumentationen [hier](https://github.com/Stevertus/mcscript/blob/master/Core%20Modals.md) an.
702
732
703
733
Du hast Ideen, welche Modals unbedingt als Standart-Modal aufgegriffen werden müssen? Sende mir einfach die [Konfigurationsdatei](#24_Dev_mcscript_modals_54) zur Überprüfung.
734
+
<a id="debugging"></a>
735
+
### 4.16 Error handling und Debugging
736
+
Minecraft Script zeigt mit der Version 0.2 nur noch begrenzt Fehler an mit der Zeilen- und Dateiangabe.
737
+
Benutze beim generieren bitte die Flag `-fullErr`, um vollständige alte Fehler wiederzuerlangen, falls du sie wünscht.
738
+
739
+
Falls du Fehlerangaben findest, die im Kontext keinen Sinn machen, wende dich bitte an das Team.
740
+
741
+
**Debug keyword**
742
+
Mit "Debug" kannst du deinen Code debuggen und auch mögliche Fehler in Minecraft Script viel leichter entdecken. Sie können irgendwo im Code platziert werden und beeinflussen den generierten Code nicht.*
743
+
* `debug message: [message]`
744
+
Sendet eine einfache Nachricht in die Konsole mit Zeilen- und Dateiangaben.
745
+
* `debug success: [message]`
746
+
Sendet eine erfolgreiche Nachricht mit grüner Kennzeichnung in die Konsole mit Zeilen- und Dateiangaben.
747
+
* `debug break: [message]`
748
+
Dein Programm bricht an dieser Stelle ab und sendet erneut eine Nachricht.
749
+
* `debug error: [message]`
750
+
Dein Programm bricht an dieser Stelle ab und gibt einen kritischen Fehler mit Systeminformationen und relevanten Codestellen aus.
Vielen Dank an alle die Minecraft Script benutzen und diese Dokumentation gelesen haben. Bei Vorschlägen, Problemen oder Fehlern bitte mich kontaktieren.
763
+
Ich freue mich euch ebenfalls euch auf meinem Discord begrüßen zu dürfen und Vorschläge und Kritik zu hören.
0 commit comments