Befehle-System (Befehle)

Ein **Befehle-System** gibt Spielern die Möglichkeit Befehle in kürzerer Form aufzuschreiben und diese als Nicht-Operator nutzen zu dürfen. Neue Befehle kann man durch die fehlende Chat-Überprüfung nicht in das Spiel selbst einfügen, deshalb braucht man eine Art Ersatz-Befehlseingabe, diese wird dann beispielsweise durch ein beschreibbares Buch oder durch trigger-Befehle realisiert. Beides ist nicht so bedienerfreundlich wie das Eingeben von echten Minecraft-Befehlen, aber die beste Alternative, wenn Modifikationen keine Option darstellen.

Das Befehle-System besitzt jedoch keine Möglichkeit, Befehle die eingetippt wurden, über `↑` erneut anzubieten. Auch lässt sich keine Autovervollständigung realisieren.

## Variante 1

* Grundmodule
* Befehl
* Befehlssignal
* Grund-Element (Befehle)
* Signal-Element (Befehle)
* Signalleitung (Befehle)
* Vorrichtungen
* Anlagen
* Maschinen
 * Taktgeber (Befehle)

* 1 Redstone-Fackel
* 1 Befehlsblock
* 1 Ketten-Befehlsblock
* 1 Wiederhol-Befehlsblock

* von **Halbzwilling**
* von **Terracube**
* von **SimplySarc**
* von **ConStarTV**
* von **McMakistein**

Mit diesem Befehle-System lassen sich einfache Befehle ausführen, wie das Ausgeben einer Nachricht, ein Herz-Partikel erscheinen zu lassen, eine Kuh zu erzeugen oder Eier zu bekommen. Man kann recht einfach weitere eigene Befehle hinzufügen, in dem man den neuen Befehl als Buch-Test einfügt und dieser eine neue Nummer vergibt. diese fragt man ab und lässt dann damit was erscheinen.

Einschalten
Beim Einschalten wird das Ziel erstellt und der Spieler bekommt ein Buch mit Anweisungen welche Befehle er eintragen kann.

* Befehl 1.1 Das Punktestand-Ziel für die Befehls-ID wird erstellt.
* Befehl 1.2 Dem Spieler wird in einem Abstand von 15 Blöcken ein beschreibbares Buch in die Hand gegeben, in das er Befehle schreiben kann.
* Befehl 1.3 Als letztes erhält er eine Anleitung, welche Befehle möglich sind.

Wiederholen
Beim Einschalten wird ebenfalls der Wiederhol-Befehlsblock aktiv.

* Befehl 1.4 Wenn ein Spieler noch nicht das Etikett besitzt, erhält er den Wert 0.
* Befehl 1.5 Er erhält dann auch das Etikett, wenn er es nicht besitzt.
* Befehl 1.6 Wenn der Spieler den Wert größer null hat, wurde ein Befehl von diesem Spieler in das Buch eingetragen und ausgelöst. Darum wird ihm sein Buch durch ein neues leeres Buch ersetzt.
* Befehl 1.7 Wenn der Spieler ein Befehl eingetragen hatte, wird ihm auch das entsprechende Etikett wieder entfernt.
* Befehl 1.8 Im Buch des Spielers wird auf den Befehl "Nachricht" getestet. Wenn der eingetragen wurde, erhält der Spieler den Wert 1
* Befehl 1.9 Anschließend wird dem Spieler mit dem Wert eins eine Nachricht ausgegeben.
* Befehl 1.10 Wenn der Spieler ins Buch den Befehl "Herz" eingetragen hatte, erhält er den Wert 2
* Befehl 1.11 Darauf erscheint dann ein Herz-Partikel, wenn er den Wert 2 besitzt.
* Befehl 1.12 Wenn der Spieler "Kuh" in das Buch eingetragen hat, wird der Wert 3 gegeben.
* Befehl 1.13 Es erscheint eine Kuh, wenn der Spieler den Wert 3 besitzt.
* Befehl 1.14 Es wird nach dem Befehl "Ei" im Buch geprüft und wenn der Spieler diesen eingetragen hat, erhält er den Wert 4.
* Befehl 1.15 Spieler die den Wert 4 besitzen erhalten ein Ei.

Ausschalten
Beim Ausschalten werden alle Objekte und Gegenstände samt dem Ziel gelöscht.

* Befehl 1.16 Das Punktestand-Ziel wird gelöscht.
* Befehl 1.17 Das schreibbare Buch wird gelöscht.
* Befehl 1.18 Das Ei dass man eventuell durch den gleichnamigen Befehl erhalten hatte, wird gelöscht.
* Befehl 1.19 Das Etikett für das Schreiben von Befehlen wird wieder entfernt.
* Befehl 1.20 Falls Gegenstände vom dem Befehle-System auf den Boden gelegt wurden, werden diese mit einem Etikett ausgestattet.
* Befehl 1.21 Alle Objekte mit dem Etikett werden gelöscht.

```
scoreboard objectives add PZBefS.1Befehl dummy ["Befehle-System.1: ",{"text":"Nummer des Befehls","bold":true}]

```

↑ 1.2:

```
give @a[distance=..15] minecraft:writable_book{befehle-system:"v1gegenstand",pages:[""],display:{Name:'{"text":"Befehlsbuch"}',Lore:['"Tippe hier einen Befehl ein"']} }

```

↑ 1.3:

```
tellraw @a[distance=..15] ["Befehle-System.1:\n",{"text":"Nachricht\nHerz\nKuh\nEi","bold":true}]

```

↑ 1.4:

```
scoreboard players set @a[tag=!EtiBefS.1Schreiben] PZBefS.1Befehl 0

```

↑ 1.5:

```
tag @a[tag=!EtiBefS.1Schreiben] add EtiBefS.1Schreiben

```

↑ 1.6:

```
replaceitem entity @a[scores={PZBefS.1Befehl=1..}] weapon.mainhand minecraft:writable_book{befehle-system:"v1gegenstand",pages:[""],display:{Name:'{"text":"Befehlsbuch"}',Lore:['"Tippe hier einen Befehl ein"']} }

```

↑ 1.7:

```
tag @a[scores={PZBefS.1Befehl=1..}] remove EtiBefS.1Schreiben

```

↑ 1.8:

```
scoreboard players set @a[tag=EtiBefS.1Schreiben,nbt={SelectedItem:{id:"minecraft:writable_book",tag:{pages:["Nachricht"]} } }] PZBefS.1Befehl 1

```

↑ 1.9:

```
tellraw @a[tag=EtiBefS.1Schreiben,scores={PZBefS.1Befehl=1}] ["Befehle-System.1: ",{"text":"Hallo du da vor dem Bildschirm :-)","color":"aqua","bold":true}]

```

↑ 1.10:

```
scoreboard players set @a[tag=EtiBefS.1Schreiben,nbt={SelectedItem:{id:"minecraft:writable_book",tag:{pages:["Herz"]} } }] PZBefS.1Befehl 2

```

↑ 1.11:

```
execute as @a[tag=EtiBefS.1Schreiben,scores={PZBefS.1Befehl=2}] at @s run particle minecraft:heart ^ ^1 ^0.5 0 0 0 0.1 5 force @s

```

↑ 1.12:

```
scoreboard players set @a[tag=EtiBefS.1Schreiben,nbt={SelectedItem:{id:"minecraft:writable_book",tag:{pages:["Kuh"]} } }] PZBefS.1Befehl 3

```

↑ 1.13:

```
execute at @a[tag=EtiBefS.1Schreiben,scores={PZBefS.1Befehl=3}] run summon minecraft:cow ^ ^ ^0.5 {CustomNameVisible:true,CustomName:'{"text":"Muhh","bold":true}',DeathLootTable:"minecraft:empty",Tags:["EtiBefS.1Alle"]}

```

↑ 1.14:

```
scoreboard players set @a[tag=EtiBefS.1Schreiben,nbt={SelectedItem:{id:"minecraft:writable_book",tag:{pages:["Ei"]} } }] PZBefS.1Befehl 4

```

↑ 1.15:

```
give @a[tag=EtiBefS.1Schreiben,scores={PZBefS.1Befehl=4}] minecraft:egg{befehle-system:"v1gegenstand"}

```

↑ 1.16:

```
scoreboard objectives remove PZBefS.1Befehl

```

↑ 1.17:

```
clear @a minecraft:writable_book{befehle-system:"v1gegenstand"}

```

↑ 1.18:

```
clear @a minecraft:egg{befehle-system:"v1gegenstand"}

```

↑ 1.19:

```
tag @a[tag=EtiBefS.1Schreiben] remove EtiBefS.1Schreiben

```

↑ 1.20:

```
tag @e[type=minecraft:item,nbt={Item:{tag:{befehle-system:"v1gegenstand"} } }] add EtiBefS.1Alle

```

↑ 1.21:

```
kill @e[tag=EtiBefS.1Alle]

```

## Variante 2

* Grundmodule
* Befehl
* Befehlssignal
* Grund-Element (Befehle)
* Signal-Element (Befehle)
* Signalleitung (Befehle)
* Vorrichtungen
* Anlagen
* Maschinen
 * Taktgeber (Befehle)

* 1 Redstone-Fackel
* 1 Befehlsblock
* 1 Wiederhol-Befehlsblock

* von **Halbzwilling**
* von **Terracube**
* von **SimplySarc**
* von **ConStarTV**
* von **McMakistein**

Dieses Befehle-System läuft auch über ein beschreibbares Buch in das man Befehle eintippen kann, allerdings gibt es für jeden Befehl ein Kürzel oder auch Alias, dass man stattdessen in das Buch eintragen kann um nicht den langen Befehl eintippen zu müssen. Hierbei kann man Befehle wie Artikel für einen Link hier in dieses Wiki, Excalibur für ein sehr scharfes Diamantschwert oder Zaubertrank für einen Trankgemisch, dass wenn man es trinkt so gut wie gegen alles immun ist, eintragen.

Einschalten
* Befehl 2.1 Wenn der Hebel umgelegt wird, wird die Start-Funktion gestartet.

Wiederholen
* Befehl 2.2 Beim Einschalten wird auch der Wiederhol-Befehlsblock gestartet, der jeden Tick die Zyklus-Funktion lädt.

Ausschalten
* Befehl 2.3 Wenn der Hebel wieder in Ausgangsstellung zurück gelegt wird, wird die Stopp-Funktion ausgelöst und schaltet alles wieder ab.

```
function befehle-system:v2start

```

↑ 2.2:

```
function befehle-system:v2zyklus

```

↑ 2.3:

```
function befehle-system:v2stopp

```

Variante 2: **Start-Funktion**

Die Start-Funktion erstellt das Punktestand-Ziel, welches für die IDs des jeweiligen Befehls verwendet wird, zudem erhält der Spieler die Liste aller möglichen Befehle, die er in das Buch eintragen kann.

```
# Das Punktestand-Ziel für die verschiedenen Befehle wird erstellt
scoreboard objectives add PZBefS.2Befehl dummy ["Befehle-System.2: ",{"text":"Nummer des Befehls","bold":true}]

# Eine Nachricht, die alle verfügbaren Befehle anzeigt
tellraw @a[distance=..15] ["Befehle-System.2:\n",{"text":"Artikel al\nExcalibur er\nZaubertrank zk","bold":true}]

```

Variante 2: **Zyklus-Funktion**

Die Zyklus-Funktion prüft jeden Tick, ob der Spieler einen der Befehle in das Buch eintragen hat und löst dann das entsprechende Ergebnis dazu aus.

```
# Wenn man den Befehl Artikel einträgt, erhält man den Wert 1 und erhält eine Nachricht mit Link zu dem Technik-Wiki-Artikel
scoreboard players set @a[tag=EtiBefS.2Schreiben,nbt={Inventory:[{Slot:4b,id:"minecraft:writable\_book",tag:{pages:["Artikel"] } } ] }] PZBefS.2Befehl 1
scoreboard players set @a[tag=EtiBefS.2Schreiben,nbt={Inventory:[{Slot:4b,id:"minecraft:writable\_book",tag:{pages:["al"] } } ] }] PZBefS.2Befehl 1
tellraw @a[tag=EtiBefS.2Schreiben,scores={PZBefS.2Befehl=1}] ["Befehle-System.2: ",{"text":"Zum Technik-Wiki-Artikel: ","color":"green"},{"text":"Klick Mich!","color":"yellow","hoverEvent":{"action":"show\_text","value":"Klick mich!"},"clickEvent":{"action":"open\_url","value":"https://technik-de.gamepedia.com/Befehle-System\_(Befehle)"} }]

# Wenn man den Befehl Excalibur einträgt, erhält man den Wert 2 und man erhält ein Diamantschwert mit der Schärfe-Verzauberung mit der Stufe 255
scoreboard players set @a[tag=EtiBefS.2Schreiben,nbt={Inventory:[{Slot:4b,id:"minecraft:writable\_book",tag:{pages:["Excalibur"] } } ] }] PZBefS.2Befehl 2
scoreboard players set @a[tag=EtiBefS.2Schreiben,nbt={Inventory:[{Slot:4b,id:"minecraft:writable\_book",tag:{pages:["er"] } } ] }] PZBefS.2Befehl 2
give @a[tag=EtiBefS.2Schreiben,scores={PZBefS.2Befehl=2}] minecraft:diamond\_sword{befehle-system:"v2gegenstand",Enchantments:[{id:"minecraft:sharpness",lvl:255s}],display:{Name:'{"text":"Excalibur","color":"gold"}'} }

# Wenn man den Befehl Zaubertrank einträgt, erhält man einen Trank mit den Effekten Resistenz, Stärke, Glück, Feuerschutz, Unterwasseratmung, Eile und Absorption
scoreboard players set @a[tag=EtiBefS.2Schreiben,nbt={Inventory:[{Slot:4b,id:"minecraft:writable\_book",tag:{pages:["Zaubertrank"] } } ] }] PZBefS.2Befehl 3
scoreboard players set @a[tag=EtiBefS.2Schreiben,nbt={Inventory:[{Slot:4b,id:"minecraft:writable\_book",tag:{pages:["zk"] } } ] }] PZBefS.2Befehl 3
give @a[tag=EtiBefS.2Schreiben,scores={PZBefS.2Befehl=3}] minecraft:potion{befehle-system:"v2gegenstand",CustomPotionColor:100000000,CustomPotionEffects:[{Id:11b,Ambient:false,ShowParticles:true,Duration:2000},{Id:5b,Ambient:false,ShowParticles:true,Duration:2000},{Id:26b,Ambient:false,ShowParticles:true,Duration:2000},{Id:12b,Ambient:false,ShowParticles:true,Duration:2000},{Id:13b,Ambient:false,ShowParticles:true,Duration:2000},{Id:3b,Ambient:false,ShowParticles:true,Duration:2000},{Id:22b,Amplifier:5b,Ambient:false,ShowParticles:true,Duration:2000}],display:{Name:'{"text":"Zaubertrank","color":"gold"}'} }

# Jeder der einen Befehl eintragen kann (Etikett), wird überprüft ob er etwas eingetragen hat, falls er es getan hat wird das Buch ersetzt, sodass es wieder leer ist
tag @r[tag=EtiBefS.2Schreiben,nbt=!{Inventory:[{Slot:4b,id:"minecraft:writable\_book",tag:{pages:[""] } } ] } ] remove EtiBefS.2Schreiben
tag @a[scores={PZBefS.2Befehl=1..}] remove EtiBefS.2Schreiben
replaceitem entity @a[tag=!EtiBefS.2Schreiben] hotbar.4 minecraft:writable\_book{befehle-system:"v2gegenstand",pages:[""],display:{Name:'{"text":"Befehlsbuch"}',Lore:['"Tippe hier Befehle ein"'] } }
scoreboard players set @a[tag=!EtiBefS.2Schreiben] PZBefS.2Befehl 0
tag @a[tag=!EtiBefS.2Schreiben,nbt={Inventory:[{Slot:4b,id:"minecraft:writable\_book",tag:{pages:[""] } } ] }] add EtiBefS.2Schreiben
execute as @a[scores={PZBefS.2Befehl=1..}] at @s run playsound minecraft:entity.player.levelup voice @s ~ ~ ~ 0.2 2

```

Variante 2: **Stopp-Funktion**

Die Stopp-Funktion löscht das Ziel, alle Effekte, das Etikett des Spielers und alle Gegenstände, die im Inventar des Spielers sind oder auf dem Boden liegen.

```
# Das Punktestand-Ziel wird gelöscht
scoreboard objectives remove PZBefS.2Befehl

# Alle Gegenstände die durch das Befehle-System gegeben wurden, werden entfernt
clear @a[distance=..15] minecraft:writable\_book{befehle-system:"v2gegenstand"}
clear @a[distance=..15] minecraft:diamond\_sword{befehle-system:"v2gegenstand"}
clear @a[distance=..15] minecraft:potion{befehle-system:"v2gegenstand"}

# Eventuell noch vorhandene Effekte werden entfernt
effect clear @a[distance=..25,nbt={ActiveEffects:[{}]}]

# Das Etikett für das Schreiben wird wieder entfernt
tag @a[tag=EtiBefS.2Schreiben] remove EtiBefS.2Schreiben

# Gegenstände die auf den Boden geworfen sind, werden mit einem Etikett ausgestattet und alle Objekte mit diesem Etikett werden entfernt
tag @e[type=minecraft:item,nbt={Item:{tag:{befehle-system:"v2gegenstand"} } }] add EtiBefS.2Alle
kill @e[tag=EtiBefS.2Alle]

```

*Benutzeroberfläche* => Befehle;
***Befehle-System* =>** **Befehle**;