Benutzerschnittstelle (Befehle)

Aus Technik Wiki
Wechseln zu: Navigation, Suche
Gruppe: Grid Klebriger Kolben.png
Anlagen

Grid Roter Sand blass.png mit Mechaniken

Grid Redstone blass.png mit Redstone
                Hier:
Grid Befehlsblock.png mit Befehlen
Noch in keiner
Download-Welt enthalten.
Wiki Redstone-Welt.png
Alle neuen oder überarbeiteten Techniken auf dieser Seite sind noch nicht in der aktuellen Redstone-Welt vorhanden.
In einem der nächsten Updates werden sie dort hinzugefügt werden.

Benutzerschnittstellen (engl. TUI) ermöglichen dem Spieler über anklickbare Textteile von Chat-Nachrichten ein Ereignis zu starten oder eine Einstellung vorzunehmen.

Inhaltsverzeichnis

Variante 1[Bearbeiten | Quelltext bearbeiten]

Benutzerschnittstelle (Befehle) Bild 1.1.png Benutzerschnittstelle (Befehle) Bild 1.2.png

Diese Benutzerschnittstelle lässt im Chat-Bereich eine Liste an Optionen anzeigen. Diese Liste erscheint, sobald man den Stock mit Verzauberungsschimmer ausgewählt hat. Klickt man auf eine der Optionen, so wird ein Ereignis gestartet und die Chat-Optionen werden aktualisiert.

Variante 1: Start-Funktion
Die Start-Funktion erzeugt das Punkte-Ziel und die Rüstungsständer. Sie sorgt ebenfalls dafür dass die Spieler den Stock mit Verzauberungsschimmer erhalten.

Editor Icon.png benutzerschnittstelle:v1start.mcfunction
# Ein Punkte-Ziel wird erstellt.
scoreboard objectives add PZBeScSt.1Ausl trigger ["Benutzerschnittstelle.1: ",{"text":"Auslöser für Nachrichten","bold":true}]

# Die Variable wird mit dem Wert null ausgestattet.
scoreboard players set VarBeScSt.1Variable PZBeScSt.1Ausl 0

# Spieler im Umkreis von 15 Blöcken erhalten einen Stock mit Verzauberungsschimmer.
give @a[distance=..15] minecraft:stick{EigBeScSt.1Alle:true,EigBeScSt.1Stock:true,Enchantments:[{id:-1}],display:{Name:'{"text":"Benutzerschnittstelle","color":"dark_purple","bold":true}',Lore:['"Wähle den Stock aus"','"um die Einstellungs-"','"Optionen anzeigen zu lassen."'] } }

# Ein Rüstungsständer mit einem zweiten huckepack, wird erzeugt.
summon minecraft:armor_stand ~ ~1 ~ {Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"Westen","color":"gold","bold":true}',Tags:["EtiBeScSt.1Alle","EtiBeScSt.1Richtung"],Rotation:[90.0f,0.0f],Passengers:[{id:"minecraft:armor_stand",Small:true,NoGravity:true,CustomNameVisible:true,CustomName:'{"text":"wahr","color":"green","bold":true}',Tags:["EtiBeScSt.1Alle","EtiBeScSt.1Logik"],Rotation:[90.0f,0.0f]}]}

Variante 1: Zyklus-Funktion
Die Zyklus-Funktion prüft ob der Spieler den Stock ausgewählt hat und ruft dann im Anschluss die Auslöser-Funktion auf.

Editor Icon.png benutzerschnittstelle:v1zyklus.mcfunction
# Wenn der Stock ausgewählt ist, erhält der jenige Spieler ein Etikett.
tag @a[nbt={SelectedItem:{tag:{EigBeScSt.1Stock:true} } }] add EtiBeScSt.1Ausgewaehlt

# Wenn der Spieler gerade zum Slot mit dem Stock gewechselt hat, wird ihm ein Wert gegeben, sodass im Anschluss die Funktion geladen wird.
scoreboard players set @a[tag=EtiBeScSt.1Ausgewaehlt,tag=!EtiBeScSt.1Auswahl] PZBeScSt.1Ausl -99

# Hat der Spieler den Stock ausgewählt und nicht den Wert null, so wird durch ihn die Auslöser-Funktion gestartet.
execute as @a[tag=EtiBeScSt.1Ausgewaehlt] unless entity @s[scores={PZBeScSt.1Ausl=0}] run function benutzerschnittstelle:v1ausloeser

# Wenn der Spieler den Stock gerade ausgewählt hat oder ihne gerade nicht mehr auswählt bekommt er das Etikett oder es wird entfernt.
tag @a[tag=EtiBeScSt.1Ausgewaehlt,tag=!EtiBeScSt.1Auswahl] add EtiBeScSt.1Auswahl
tag @a[tag=!EtiBeScSt.1Ausgewaehlt,tag=EtiBeScSt.1Auswahl] remove EtiBeScSt.1Auswahl

# Das Etikett für die Auswahl des Stockes wird wieder entfernt.
tag @a[tag=EtiBeScSt.1Ausgewaehlt] remove EtiBeScSt.1Ausgewaehlt

Variante 1: Auslöser-Funktion
Die Auslöser-Funktion gibt den Spielern im Chat eine Liste an Optionen aus und führt die angeklickten Optionen aus.

Editor Icon.png benutzerschnittstelle:v1ausloeser.mcfunction
# Wenn der Spieler auf die Logik-Option geklickt hat, wird der Wahrheitswert entsprechend gesetzt. Der wahrheitswert wird im Namen des Rüstungsständer gespeichert.
execute if entity @s[scores={PZBeScSt.1Ausl=1}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiBeScSt.1Logik,sort=nearest,limit=1] {CustomName:'{"text":"wahr","color":"green","bold":true}'}
execute if entity @s[scores={PZBeScSt.1Ausl=-1}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiBeScSt.1Logik,sort=nearest,limit=1] {CustomName:'{"text":"falsch","color":"red","bold":true}'}

# Wenn der Spieler eine der Richtungs-Optionen angeklickt hat, wird die entsprechende Richtung eingestellt.
execute if entity @s[scores={PZBeScSt.1Ausl=11}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiBeScSt.1Richtung,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"blue","text":"Norden"}',Rotation:[180.0f,0.0f]}
execute if entity @s[scores={PZBeScSt.1Ausl=12}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiBeScSt.1Richtung,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"gold","text":"Osten"}',Rotation:[270.0f,0.0f]}
execute if entity @s[scores={PZBeScSt.1Ausl=13}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiBeScSt.1Richtung,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"blue","text":"Süden"}',Rotation:[0.0f,0.0f]}
execute if entity @s[scores={PZBeScSt.1Ausl=14}] run data merge entity @e[type=minecraft:armor_stand,tag=EtiBeScSt.1Richtung,sort=nearest,limit=1] {CustomName:'{"bold":true,"color":"gold","text":"Westen"}',Rotation:[90.0f,0.0f]}

# Wenn der Spieler auf die Variablen-Option geklickt hat, wird die Variable entweder um eins erhöht oder verringert.
execute if entity @s[scores={PZBeScSt.1Ausl=2}] run scoreboard players add VarBeScSt.1Variable PZBeScSt.1Ausl 1
execute if entity @s[scores={PZBeScSt.1Ausl=-2}] run scoreboard players remove VarBeScSt.1Variable PZBeScSt.1Ausl 1

# Dem Spieler wird im Chat die Optionen-Liste angezeigt, mit Logik-, Richtungs- und Variablen-Option.
tellraw @s ["Benutzerschnittstelle.1: ",{"text":"\nlogik = ","bold":true},{"text":"wahr","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für wahr"} },"clickEvent":{"action":"run_command","value":"/trigger PZBeScSt.1Ausl set 1"} },{"text":"\nlogik = ","bold":true},{"text":"falsch","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für falsch"} },"clickEvent":{"action":"run_command","value":"/trigger PZBeScSt.1Ausl set -1"} },{"text":"\nlogik == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiBeScSt.1Logik,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\nrichtung = ","bold":true},{"text":"Norden","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für Norden"} },"clickEvent":{"action":"run_command","value":"/trigger PZBeScSt.1Ausl set 11"} },{"text":"\nrichtung = ","bold":true},{"text":"Osten","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für Osten"} },"clickEvent":{"action":"run_command","value":"/trigger PZBeScSt.1Ausl set 12"} },{"text":"\nrichtung = ","bold":true},{"text":"Süden","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für Süden"} },"clickEvent":{"action":"run_command","value":"/trigger PZBeScSt.1Ausl set 13"} },{"text":"\nrichtung = ","bold":true},{"text":"Westen","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für Westen"} },"clickEvent":{"action":"run_command","value":"/trigger PZBeScSt.1Ausl set 14"} },{"text":"\nrichtung == ","bold":true},{"entity":"@e[type=minecraft:armor_stand,tag=EtiBeScSt.1Richtung,sort=nearest,limit=1]","nbt":"CustomName","interpret":true},{"text":"\nvariable = ","bold":true},{"text":"variable + 1","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für Variable + 1"} },"clickEvent":{"action":"run_command","value":"/trigger PZBeScSt.1Ausl set 2"} },{"text":"\nvariable = ","bold":true},{"text":"variable - 1","color":"gray","underlined":true,"bold":true,"hoverEvent":{"action":"show_text","value":{"text":"Tippe für Variable - 1"} },"clickEvent":{"action":"run_command","value":"/trigger PZBeScSt.1Ausl set -2"} },{"text":"\nvariable == ","bold":true},{"score":{"name":"VarBeScSt.1Variable","objective":"PZBeScSt.1Ausl"},"color":"dark_purple","bold":true} ]

# Damit der Spieler nach dem anklicken der Optionen erneut die Berechtigung erhält um nochmals eine Option aktivieren zu können.
scoreboard players enable @s PZBeScSt.1Ausl
scoreboard players set @s PZBeScSt.1Ausl 0

Variante 1: Stopp-Funktion
Die Stopp-Funktion löscht das Punkte-Ziel wieder und Gegenstände und die Rüstungsständer werden entfernt.

Editor Icon.png benutzerschnittstelle:v1stopp.mcfunction
# Das Punkte-Ziel wird wieder entfernt.
scoreboard objectives remove PZBeScSt.1Ausl

# Das Etikett zur Auswahl des Stockes wird wieder entfernt, falls es vorhanden ist.
tag @a[tag=EtiBeScSt.1Auswahl] remove EtiBeScSt.1Auswahl

# Der Stock wird entfernt.
clear @a minecraft:stick{EigBeScSt.1Alle:true}

# Falls der Stock auf den Boden geworfen wurde, wird er entfernt. Die beiden Rüstungsständer werden ebenfalls entfernt.
tag @e[type=minecraft:item,nbt={Item:{tag:{EigBeScSt.1Alle:true} } }] add EtiBeScSt.1Alle
kill @e[tag=EtiBeScSt.1Alle]