Shiftklick-Sensor (Befehle)

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

Grid Roter Sand blass.png mit Mechaniken

Grid Redstone blass.png mit Redstone
                Hier:
Grid Befehlsblock.png mit Befehlen
Verfügbar in:
Wiki Redstone-Welt.png Redstone-Welt

Ein Shiftklick-Sensor erkennt, ob der Spieler die Shift-Taste (Umschalttaste) geklickt oder gehalten hat. Das Klicken der Shift-Taste lässt sich über Statistikdaten, Prädikate oder Fortschritte erfassen.

Variante 1[Bearbeiten | Quelltext bearbeiten]

Shiftklick-Sensor (Befehle) Bild 1.1.png Shiftklick-Sensor (Befehle) Bild 1.2.png

Der Sensor wird aktiv, wenn man einen Stock mit Verzauberungsschimmer in der Schnellleiste ausgewählt hat. Drückt man kurz die Shift-Taste, wird über der Schnellleiste der aktuelle Zustand geändert und angezeigt. Ebenfalls erhält man eine Chat-Nachricht, die das Drücken und loslassen aufzeichnet. Das Testen der Shift-Taste wird über ein Punkte-Ziel ermöglicht, das prüft ob der Spieler sich bückt und nur dann wird sein Wert jeden Tick um eins erhöht.

Einschalten
Wiederholen
Ausschalten

Befehlsblöcke mit Befehlen:



Variante 1: Start-Funktion
Die Start-Funktion gibt dem Spieler einen verzauberten Stock und erstellt das Punkte-Ziel.

Editor Icon.png shiftklick-sensor:v1start.mcfunction
# Das Punkte-Ziel für das Erfassen von Shift-Klicks wird erstellt.
scoreboard objectives add PZShklS.1Shift minecraft.custom:minecraft.sneak_time ["Shiftklick-Sensor.1: ",{"text":"Schleich-Zeit","bold":true}]

# Den Spielern wird in einem Umkreis von 15 Blöcken ein Stock mit Verzauberungsschimmer gegeben, der verwendet wird um das Messen des Shift-Klicks zu aktivieren, sobald er gehalten wird.
give @a[distance=..15] minecraft:stick{EigShklS.1Alle:true,EigShklS.1Sensor:true,Enchantments:[{id:-1}],display:{Name:'{"text":"Shiftklick-Sensor","color":"dark_purple","bold":true}',Lore:['"Wähle den Stock aus"','"um nach dem Shiftklick"','"zu testen."'] } }

Variante 1: Zyklus-Funktion
Die Zyklus-Funktion prüft, ob der Spieler den Stock ausgewählt hat. Darauf aufbauend wird geprüft ob er sich bückt. Mit Hilfe von Etiketten die entsprechende Zustände speichern wird gemessen, ob der Spieler gerade geklickt oder losgelassen hat und ob er die Taste noch gedrückt hält.

Editor Icon.png shiftklick-sensor:v1zyklus.mcfunction
# Wenn der Spieler den Stock ausgewählt hat, erhält er zur Erkennung ein Etikett.
tag @a[nbt={SelectedItem:{tag:{EigShklS.1Sensor:true} } }] add EtiShklS.1Ausgewaehlt

# Da Spieler nicht von Anfang einen Wert besitzen wird ihnen der Wert auf null addiert, sodass sie einen besitzen und solche die vorher schon einen Wert besaßen, dieser sich nicht ändert.
scoreboard players add @a[tag=EtiShklS.1Ausgewaehlt,tag=!EtiShklS.1Auswahl] PZShklS.1Shift 0

# Spieler die das Etikett besitzen, erhalten eine Schnellleisten-Nachricht, die ausgibt ob man Shift gedrückt hält oder nicht.
title @a[tag=EtiShklS.1Ausgewaehlt,scores={PZShklS.1Shift=1..}] actionbar ["",{"text":"Shift halten == ","bold":true},{"text":"wahr","color":"green","bold":true}]
title @a[tag=EtiShklS.1Ausgewaehlt,scores={PZShklS.1Shift=0}] actionbar ["",{"text":"Shift halten == ","bold":true},{"text":"falsch","color":"red","bold":true}]

# Wenn der Stock nicht mehr ausgewählt wird, wird die Nachricht über der Schnellleiste geleert.
title @a[tag=!EtiShklS.1Ausgewaehlt,tag=EtiShklS.1Auswahl] actionbar [""]

# Um zu erfassen ob der Spieler gerade den Stock ausgewählt hat oder ihn nicht mehr auswählt, wird ihm ein Etikett entsprechend gegeben oder entfernt.
tag @a[tag=EtiShklS.1Ausgewaehlt,tag=!EtiShklS.1Auswahl] add EtiShklS.1Auswahl
tag @a[tag=!EtiShklS.1Ausgewaehlt,tag=EtiShklS.1Auswahl] remove EtiShklS.1Auswahl

# Wenn der Spieler gerade erst Shift gedrückt oder gerade losgelassen hat, wird ihm eine Chat-Nachricht ausgegeben.
tellraw @a[tag=EtiShklS.1Auswahl,tag=!EtiShklS.1Shift,scores={PZShklS.1Shift=1..}] ["Shiftklick-Sensor.1:\n",{"text":"Shiftklick == ","bold":true},{"text":"wahr","color":"green","bold":true}]
tellraw @a[tag=EtiShklS.1Auswahl,tag=EtiShklS.1Shift,scores={PZShklS.1Shift=0}] ["Shiftklick-Sensor.1:\n",{"text":"Shiftklick == ","bold":true},{"text":"falsch","color":"red","bold":true}]

# Wenn der Spieler Shift klickt oder loslässt wird ihm ein Etikett gegeben oder entfernt.
tag @a[tag=EtiShklS.1Auswahl,tag=!EtiShklS.1Shift,scores={PZShklS.1Shift=1..}] add EtiShklS.1Shift
tag @a[tag=EtiShklS.1Auswahl,tag=EtiShklS.1Shift,scores={PZShklS.1Shift=0}] remove EtiShklS.1Shift

# Der Punkte-Wert der Spieler wird auf null gesetzt, wenn sie Shift geklickt haben.
scoreboard players set @a[scores={PZShklS.1Shift=1..}] PZShklS.1Shift 0

# Das Etikett wird wieder entfernt.
tag @a[tag=EtiShklS.1Ausgewaehlt] remove EtiShklS.1Ausgewaehlt

Variante 1: Stopp-Funktion
Die Stopp-Funktion löscht das Punkte-Ziel, die Etiketten und den Stock wieder.

Editor Icon.png shiftklick-sensor:v1stopp.mcfunction
# Das Punkte-Ziel wird wieder entfernt.
scoreboard objectives remove PZShklS.1Shift

# Das Etikett zur Auswahl des Stockes und für den Shiftklick, werden wieder entfernt, falls sie noch vorhanden waren.
tag @a[tag=EtiShklS.1Auswahl] remove EtiShklS.1Auswahl
tag @a[tag=EtiShklS.1Shift] remove EtiShklS.1Shift

# Der Stock wird aus dem Inventar entfernt.
clear @a minecraft:stick{EigShklS.1Alle:true}

# Falls der Stock auf dem Boden geworfen wurde, wird der Drop entfernt.
kill @e[type=minecraft:item,nbt={Item:{tag:{EigShklS.1Alle:true} } }]

Variante 2[Bearbeiten | Quelltext bearbeiten]

Shiftklick-Sensor (Befehle) Bild 1.1.png Shiftklick-Sensor (Befehle) Bild 1.2.png

Dieser Sensor erfasst das Shift-Klicken mit Hilfe eines Prädikates. Nimmt man den Stock in die Schnellleiste und drückt dann auf die Shift-Taste, so erhält man über der Schnellleiste die Ausgabe. Im Chat wird der Beginn und das Loslassen der Taste angezeigt.

Einschalten
Wiederholen
Ausschalten

Befehlsblöcke mit Befehlen:



Variante 2: Start-Funktion
Die Start-Funktion gibt dem Spieler einen Stock, den er auswählen muss um den Sensor zu aktivieren.

Editor Icon.png shiftklick-sensor:v2start.mcfunction
# Den Spielern wird in einem Umkreis von 15 Blöcken ein Stock mit Verzauberungsschimmer gegeben, der verwendet wird um das Messen des Shift-Klicks zu aktivieren, sobald er gehalten wird.
give @a[distance=..15] minecraft:stick{EigShklS.2Alle:true,EigShklS.2Sensor:true,Enchantments:[{id:-1}],display:{Name:'{"text":"Shiftklick-Sensor","color":"dark_purple","bold":true}',Lore:['"Wähle den Stock aus"','"um nach dem Shiftklick"','"zu testen."'] } }

Variante 2: Zyklus-Funktion
Die Zyklus-Funktion prüft ob der Spieler den Stock ausgewählt hat und die Shift-Taste geklickt hat. Das Drücken der Shift-Taste wird über ein Prädikat erfasst und anschließend wird eine Nachricht über der Schnellleiste und eine weitere im Chat ausgegeben.

Editor Icon.png shiftklick-sensor:v2zyklus.mcfunction
# Wenn der Spieler den Stock ausgewählt hat, erhält er zur Erkennung ein Etikett.
tag @a[nbt={SelectedItem:{tag:{EigShklS.2Sensor:true} } }] add EtiShklS.2Ausgewaehlt

# Spieler die das Etikett besitzen, erhalten eine Schnellleisten-Nachricht, die ausgibt ob man Shift gedrückt hält oder nicht.
title @a[tag=EtiShklS.2Ausgewaehlt,predicate=shiftklick-sensor:v2shift] actionbar ["",{"text":"Shift halten == ","bold":true},{"text":"wahr","color":"green","bold":true}]
title @a[tag=EtiShklS.2Ausgewaehlt,predicate=!shiftklick-sensor:v2shift] actionbar ["",{"text":"Shift halten == ","bold":true},{"text":"falsch","color":"red","bold":true}]

# Wenn der Stock nicht mehr ausgewählt wird, wird die Nachricht über der Schnellleiste geleert.
title @a[tag=!EtiShklS.2Ausgewaehlt,tag=EtiShklS.2Auswahl] actionbar [""]

# Um zu erfassen ob der Spieler gerade den Stock ausgewählt hat oder ihn nicht mehr auswählt, wird ihm ein Etikett entsprechend gegeben oder entfernt.
tag @a[tag=EtiShklS.2Ausgewaehlt,tag=!EtiShklS.2Auswahl] add EtiShklS.2Auswahl
tag @a[tag=!EtiShklS.2Ausgewaehlt,tag=EtiShklS.2Auswahl] remove EtiShklS.2Auswahl

# Wenn der Spieler gerade erst Shift gedrückt oder gerade losgelassen hat, wird ihm eine Chat-Nachricht ausgegeben.
tellraw @a[tag=EtiShklS.2Auswahl,tag=!EtiShklS.2Shift,predicate=shiftklick-sensor:v2shift] ["Shiftklick-Sensor.2:\n",{"text":"Shiftklick == ","bold":true},{"text":"wahr","color":"green","bold":true}]
tellraw @a[tag=EtiShklS.2Auswahl,tag=EtiShklS.2Shift,predicate=!shiftklick-sensor:v2shift] ["Shiftklick-Sensor.2:\n",{"text":"Shiftklick == ","bold":true},{"text":"falsch","color":"red","bold":true}]

# Wenn der Spieler Shift klickt oder loslässt wird ihm ein Etikett gegeben oder entfernt.
tag @a[tag=EtiShklS.2Auswahl,tag=!EtiShklS.2Shift,predicate=shiftklick-sensor:v2shift] add EtiShklS.2Shift
tag @a[tag=EtiShklS.2Auswahl,tag=EtiShklS.2Shift,predicate=!shiftklick-sensor:v2shift] remove EtiShklS.2Shift

# Das Etikett wird wieder entfernt.
tag @a[tag=EtiShklS.2Ausgewaehlt] remove EtiShklS.2Ausgewaehlt
JSON Icon.png shiftklick-sensor:v2shift.json
{
  "condition": "minecraft:entity_properties",
  "entity": "this",
  "predicate": {
    "flags": {
      "is_sneaking": true
    }
  }
}

Variante 2: Stopp-Funktion
Die Stopp-Funktion löscht den Stock als Drop und als Gegenstand im Inventar wieder. Die Etiketten werden ebenfalls gelöscht.

Editor Icon.png shiftklick-sensor:v2stopp.mcfunction
# Das Etikett zur Auswahl des Stockes und für den Shiftklick, werden wieder entfernt, falls sie noch vorhanden waren.
tag @a[tag=EtiShklS.2Auswahl] remove EtiShklS.2Auswahl
tag @a[tag=EtiShklS.2Shift] remove EtiShklS.2Shift

# Der Stock wird aus dem Inventar entfernt.
clear @a minecraft:stick{EigShklS.2Alle:true}

# Falls der Stock auf dem Boden geworfen wurde, wird der Drop entfernt.
kill @e[type=minecraft:item,nbt={Item:{tag:{EigShklS.2Alle:true} } }]

Variante 3[Bearbeiten | Quelltext bearbeiten]

Shiftklick-Sensor (Befehle) Bild 1.1.png Shiftklick-Sensor (Befehle) Bild 1.2.png

Dieser Shiftklick-Sensor erfasst das Klicken der Shift-Taste mit Hilfe von Fortschritten. Wenn der Spieler den Stock ausgewählt hat und dabei Shift klickt, erhält er den Fortschritt und das wiederum wird erkannt und dem Spieler wird eine Nachricht über der Schnelleiste ausgegeben und eine weitere im Chat. Hierbei wird im Chat das Drücken und Loslassen erfasst, während über der Schnellleiste der aktuelle Zustand der Shift-Taste angezeigt wird.

Einschalten
Wiederholen
Ausschalten

Befehlsblöcke mit Befehlen:



Variante 3: Start-Funktion
Die Start-Funktion gibt dem Spieler einen Stock, den er auswählen muss um den Sensor zu aktivieren.

Editor Icon.png shiftklick-sensor:v3start.mcfunction
# Den Spielern wird in einem Umkreis von 15 Blöcken ein Stock mit Verzauberungsschimmer gegeben, der verwendet wird um das Messen des Shift-Klicks zu aktivieren, sobald er gehalten wird.
give @a[distance=..15] minecraft:stick{EigShklS.3Alle:true,EigShklS.3Sensor:true,Enchantments:[{id:-1}],display:{Name:'{"text":"Shiftklick-Sensor","color":"dark_purple","bold":true}',Lore:['"Wähle den Stock aus"','"um nach dem Shiftklick"','"zu testen."'] } }

Variante 3: Zyklus-Funktion
Die Zyklus-Funktion prüft ob der Spieler den entsprechenden Fortschritt besitzt. Wenn er dabei den Stock ausgewählt hat, erscheint über der Schnellleiste eine Nachricht und im Chat wird eine weitere ausgegeben.

Editor Icon.png shiftklick-sensor:v3zyklus.mcfunction
# Wenn der Spieler den Stock ausgewählt hat, erhält er zur Erkennung ein Etikett.
tag @a[nbt={SelectedItem:{tag:{EigShklS.3Sensor:true} } }] add EtiShklS.3Ausgewaehlt

# Spieler die das Etikett besitzen, erhalten eine Schnellleisten-Nachricht, die ausgibt ob man Shift gedrückt hält oder nicht.
title @a[tag=EtiShklS.3Ausgewaehlt,advancements={shiftklick-sensor:v3shift=true}] actionbar ["",{"text":"Shiftklick == ","bold":true},{"text":"wahr","color":"green","bold":true}]
title @a[tag=EtiShklS.3Ausgewaehlt,advancements={shiftklick-sensor:v3shift=false}] actionbar ["",{"text":"Shiftklick == ","bold":true},{"text":"falsch","color":"red","bold":true}]

# Wenn der Stock nicht mehr ausgewählt wird, wird die Nachricht über der Schnellleiste geleert.
title @a[tag=!EtiShklS.3Ausgewaehlt,tag=EtiShklS.3Auswahl] actionbar [""]

# Um zu erfassen ob der Spieler gerade den Stock ausgewählt hat oder ihn nicht mehr auswählt, wird ihm ein Etikett entsprechend gegeben oder entfernt.
tag @a[tag=EtiShklS.3Ausgewaehlt,tag=!EtiShklS.3Auswahl] add EtiShklS.3Auswahl
tag @a[tag=!EtiShklS.3Ausgewaehlt,tag=EtiShklS.3Auswahl] remove EtiShklS.3Auswahl

# Wenn der Spieler gerade erst Shift gedrückt oder gerade losgelassen hat, wird ihm eine Chat-Nachricht ausgegeben.
tellraw @a[tag=EtiShklS.3Auswahl,tag=!EtiShklS.3Shift,advancements={shiftklick-sensor:v3shift=true}] ["Shiftklick-Sensor.3:\n",{"text":"Shiftklick == ","bold":true},{"text":"wahr","color":"green","bold":true}]
tellraw @a[tag=EtiShklS.3Auswahl,tag=EtiShklS.3Shift,advancements={shiftklick-sensor:v3shift=false}] ["Shiftklick-Sensor.3:\n",{"text":"Shiftklick == ","bold":true},{"text":"falsch","color":"red","bold":true}]

# Wenn der Spieler Shift klickt oder loslässt wird ihm ein Etikett gegeben oder entfernt.
tag @a[tag=EtiShklS.3Auswahl,tag=!EtiShklS.3Shift,advancements={shiftklick-sensor:v3shift=true}] add EtiShklS.3Shift
tag @a[tag=EtiShklS.3Auswahl,tag=EtiShklS.3Shift,advancements={shiftklick-sensor:v3shift=false}] remove EtiShklS.3Shift

# Der Fortschritt wird wieder entfernt, damit er nur dann wieder vorhanden ist, wenn man wieder Shift geklickt hat.
advancement revoke @a[advancements={shiftklick-sensor:v3shift=true}] only shiftklick-sensor:v3shift

# Das Etikett wird wieder entfernt.
tag @a[tag=EtiShklS.3Ausgewaehlt] remove EtiShklS.3Ausgewaehlt
JSON Icon.png shiftklick-sensor:v3shift.json
{
  "criteria": {
    "requirement": {
      "trigger": "minecraft:tick",
      "conditions": {
        "player": [
          {
            "condition": "minecraft:entity_properties",
            "entity": "this",
            "predicate": {
              "flags": {
                "is_sneaking": true
              }
            }
          }
        ]
      }
    }
  }
}

Variante 3: Stopp-Funktion
Die Stopp-Funktion löscht den Stock als Drop und als Gegenstand im Inventar wieder.

Editor Icon.png shiftklick-sensor:v3stopp.mcfunction
# Das Etikett zur Auswahl des Stockes und für den Shiftklick, werden wieder entfernt, falls sie noch vorhanden waren.
tag @a[tag=EtiShklS.3Auswahl] remove EtiShklS.3Auswahl
tag @a[tag=EtiShklS.3Auswahl] remove EtiShklS.3Shift

# Der noch eventuell vorhande Fortschritt wird entfernt.
advancement revoke @a[advancements={shiftklick-sensor:v3shift=true}] only shiftklick-sensor:v3shift

# Der Stock wird aus dem Inventar entfernt.
clear @a minecraft:stick{EigShklS.3Alle:true}

# Falls der Stock auf dem Boden geworfen wurde, wird der Drop entfernt.
kill @e[type=minecraft:item,nbt={Item:{tag:{EigShklS.3Alle:true} } }]