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.
11
12
@@ -39,6 +40,7 @@ English documentation [here](https://github.com/Stevertus/mcscript/blob/master/R
39
40
-[do-while-Loops](#dowhile)
40
41
-[forEach-Loops](#foreach)
41
42
-[Modals](#modals)
43
+
-[JavaScript Modals](#modaljs)
42
44
-[System Modals](#systemModals)
43
45
-[Fehler und Debugging](#debugging)
44
46
5)[IDEs und Syntax Highlighting](#ide)
@@ -321,7 +323,43 @@ Bei unserem Beispiel wollen wir das viel replacen:
321
323
```
322
324
Auch kann hier ein [RegEx](https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/RegExp) eingefügt werden und auch auf diesen im Replacement zugegriffen werden:
323
325
`$(const).repl([/regex/],["$&"])`
326
+
<aid="maps"></a>
327
+
#### Maps
328
+
Maps sind schlüssel-wert Paare ähnlich wie bei einem Wörterbuch. Wir definieren eine Map mit dem Map-Operator:
329
+
```js
330
+
consttestMap=Map{
324
331
332
+
}
333
+
```
334
+
In den Klammern kannst du so viele Paare angeben, wie du magst:
335
+
```js
336
+
consttestMap=Map{
337
+
"key1":"value",
338
+
"key2":"value2"
339
+
}
340
+
```
341
+
Wir können dann auf die Werte so zugreifen:
342
+
```js
343
+
/say $(testMap).key1
344
+
345
+
⇒ /say value
346
+
```
347
+
<aid="arrays"></a>
348
+
#### Arrays
349
+
Arrays sind ziemlich ähnlich zu Maps, nur dass wir nicht Paare sondern eine einfache Liste an Werten haben.
350
+
```js
351
+
consttestArr=Array{
352
+
"value", // index 0
353
+
"value2"// index 1
354
+
}
355
+
```
356
+
Die Werte können mit dem Index des Elements abgerufen werden:
357
+
```js
358
+
/say $(testArr).0
359
+
⇒ /say value
360
+
/say $(testArr).1
361
+
⇒ /say value2
362
+
```
325
363
<aid="if"></a>
326
364
### 4.6 If/Else Statements
327
365
@@ -704,6 +742,23 @@ Auch sind optionale und vordefinierte Argumente verfügbar:
704
742
705
743
say('test')
706
744
# => say test
745
+
746
+
**Maps und Arrays benutzen**
747
+
Du kannst auch die [Map](#maps) und[Array](#arrays) typen der Konstanten in Modals benutzen:
748
+
```js
749
+
modal defaultMap(args = Map{"key":"value"}){
750
+
/say $(args).key
751
+
}
752
+
defaultMap()
753
+
defaultMap(Map{
754
+
"key":"value2"
755
+
})
756
+
757
+
⇒ /say value
758
+
⇒ /say value2
759
+
```
760
+
761
+
707
762
**Modals überschreiben**
708
763
Bereits erstellte modals können innerhalb des Prozesses überschrieben werden:
709
764
> ```
@@ -724,15 +779,94 @@ Bei unserem Beispiel wollen wir ein eingegebenes test replacen:
724
779
```
725
780
Auch kann hier ein [RegEx](https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/RegExp) eingefügt werden und auch auf diesen im Replacement mit `$&` zugegriffen werden:
726
781
`$(argument).repl([/regex/],["$&"])`
782
+
<a id="modaljs"></a>
783
+
### 4.15 JavaScript Modals
784
+
JavaScript Modals sind modals, die in Javascript geschrieben sind. Du kannst sie, wie andere modals auch, so definieren:
785
+
786
+
> ```
787
+
> modaljs [name]([argumente]){
788
+
> [aktionen]
789
+
> return [Text]
790
+
> }
791
+
> ```
792
+
>
793
+
Das JavaScript Modal muss mit einem return statement enden. Das, was zurückgegeben wurde, wird in der `.mcfunction` Datei als einfacher Text erscheinen.
794
+
795
+
modaljs newModal(){
796
+
return "say hi";
797
+
}
798
+
799
+
newModal()
800
+
801
+
# => say hi
802
+
Für Absätze empfehle ich etwas ähnliches zu dem:
803
+
804
+
modaljs newModal(){
805
+
var ret = "";
806
+
807
+
ret += "say hi\n";
808
+
ret += "say ho\n";
809
+
810
+
return ret;
811
+
}
812
+
813
+
newModal()
727
814
815
+
# => say hi
816
+
# => say ho
817
+
Achtung: Du musst Absätze manuell mit `\n` hinzufügen.
818
+
819
+
Ein JavaScript modal ist immer deklariert durch das Keyword gefolgt vom Name und den Argumenten in den Klammern.
820
+
821
+
Die Argumente sind aufrufbar in dem Code.
822
+
823
+
modaljs newModal(argument){
824
+
return "say " + argument;
825
+
}
826
+
827
+
newModal('test')
828
+
829
+
# => say test
830
+
831
+
Du kannst auch mehrere Argumente verwenden:
832
+
833
+
modaljs newModal(text,monster){
834
+
var ret = "";
835
+
836
+
ret += "say " + text + "\n";
837
+
ret += "summon " + monster + "\n";
838
+
839
+
return ret;
840
+
}
841
+
842
+
newModal("Gehirne!!!","minecraft:zombie")
843
+
844
+
# => say Gehirne!!!
845
+
# => summon minecraft:zombie
846
+
847
+
Es gibt ebenfalls optionale Argumente:
848
+
849
+
modaljs say(argument = "hallo"){
850
+
return "say " + argument ;
851
+
}
852
+
853
+
say()
854
+
# => say hallo
855
+
856
+
say('test')
857
+
# => say test
858
+
859
+
**Tipps und Tricks**
860
+
861
+
Benutze `console.log`, um einige Informationen in der Konsole, während des Kompelieren, auszugeben, ohne den Wert zu verändern.
728
862
<a id="systemModals"></a>
729
-
### 4.15 System Modals
863
+
### 4.16 System Modals
730
864
731
865
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.
732
866
733
867
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
868
<a id="debugging"></a>
735
-
### 4.16 Error handling und Debugging
869
+
### 4.17 Error handling und Debugging
736
870
Minecraft Script zeigt mit der Version 0.2 nur noch begrenzt Fehler an mit der Zeilen- und Dateiangabe.
737
871
Benutze beim generieren bitte die Flag `-fullErr`, um vollständige alte Fehler wiederzuerlangen, falls du sie wünscht.
738
872
@@ -750,11 +884,17 @@ Dein Programm bricht an dieser Stelle ab und sendet erneut eine Nachricht.
750
884
Dein Programm bricht an dieser Stelle ab und gibt einen kritischen Fehler mit Systeminformationen und relevanten Codestellen aus.
0 commit comments