Versionen-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 Versionen-Sensor erfasst die Minecraft-Version, in der eine Einzelspielerwelt oder auf ein Server gespielt wird. Das Auslesen der Version, lässt sich über NBT-Daten des jeweiligen Spielers, bewerkstelligen. Damit lassen sich bestimmte Ereignisse nur dann auslesen, wenn der Spieler in einer ganz bestimmte Version spielt.

Inhaltsverzeichnis

Variante 1[Bearbeiten | Quelltext bearbeiten]

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

Dieser Versionen-Sensor erfasst anhand der NBT-Daten die Vollversion, und vergibt dann ein entsprechendes Etikett um den Spieler zu markieren. Man erhält dann als Spieler eine Chat-Nachricht in der die Version angezeigt wird.

Wiederholen
  • Befehl 1.1 Allen Spielern im Umkreis von 25 Blöcken wird ein Etikett (doppelte Verneinung entspricht einem "Oder-Gatter") gegeben, wenn sie eine der Vollversions-Zahlenwerte besitzen, so für 1.13, für 1.14[B1.2], für 1.15[B1.3] und für 1.16[B1.4].
  • Befehl 1.5 Spielern die die Chat-Nachricht noch nicht erhalten haben, erhalten diese mit dem jeweiligen Versionsvermerk für 1.13, für 1.14[B1.6], für 1.15[B1.7] und für 1.16[B1.8].
  • Befehl 1.9 Falls der Spieler kein Etikett der entsprechenden Versionen besitzt, so spielt er in einer anderen Version und erhält eine Chat-Nachricht die ihm das mitteilt.
  • Befehl 1.10 Damit die Chat-Nachricht nur einmal ausgegeben wird, wird allen Spielern im Umkreis von 25 Blöcken die noch kein Etikett besitzen dieses gegeben.
Ausschalten

Befehlsblöcke mit Befehlen:
execute as @a[distance=..25,tag=!EtiVerSen.1Nachricht,tag=!EtiVerSen.1Version1.13] unless entity @s[nbt=!{DataVersion:1519},nbt=!{DataVersion:1628},nbt=!{DataVersion:1631}] run tag @s add EtiVerSen.1Version1.13
execute as @a[distance=..25,tag=!EtiVerSen.1Nachricht,tag=!EtiVerSen.1Version1.14] unless entity @s[nbt=!{DataVersion:1952},nbt=!{DataVersion:1957},nbt=!{DataVersion:1963},nbt=!{DataVersion:1968},nbt=!{DataVersion:1976}] run tag @s add EtiVerSen.1Version1.14
execute as @a[distance=..25,tag=!EtiVerSen.1Nachricht,tag=!EtiVerSen.1Version1.15] unless entity @s[nbt=!{DataVersion:2225},nbt=!{DataVersion:2227},nbt=!{DataVersion:2230}] run tag @s add EtiVerSen.1Version1.15
execute as @a[distance=..25,tag=!EtiVerSen.1Nachricht,tag=!EtiVerSen.1Version1.16] unless entity @s[nbt=!{DataVersion:2566},nbt=!{DataVersion:2567},nbt=!{DataVersion:2578}] run tag @s add EtiVerSen.1Version1.16
tellraw @a[tag=!EtiVerSen.1Nachricht,tag=EtiVerSen.1Version1.13] ["Versionen-Sensor.1:\n",{"text":"Du spielst mit der Vollversion 1.13.x","bold":"true"} ]
tellraw @a[tag=!EtiVerSen.1Nachricht,tag=EtiVerSen.1Version1.14] ["Versionen-Sensor.1:\n",{"text":"Du spielst mit der Vollversion 1.14.x","bold":"true"} ]
tellraw @a[tag=!EtiVerSen.1Nachricht,tag=EtiVerSen.1Version1.15] ["Versionen-Sensor.1:\n",{"text":"Du spielst mit der Vollversion 1.15.x","bold":"true"} ]
tellraw @a[tag=!EtiVerSen.1Nachricht,tag=EtiVerSen.1Version1.16] ["Versionen-Sensor.1:\n",{"text":"Du spielst mit der Vollversion 1.16.x","bold":"true"} ]
tellraw @a[tag=!EtiVerSen.1Nachricht,tag=!EtiVerSen.1Version1.13,tag=!EtiVerSen.1Version1.14,tag=!EtiVerSen.1Version1.15,tag=!EtiVerSen.1Version1.16] ["Versionen-Sensor.1:\n",{"text":"Die Version, mit der du spielst, wurde nicht erkannt!","color":"red","bold":true} ]
tag @a[distance=..25,tag=!EtiVerSen.1Nachricht] add EtiVerSen.1Nachricht


tag @a[tag=EtiVerSen.1Version1.13] remove EtiVerSen.1Version1.13
tag @a[tag=EtiVerSen.1Version1.14] remove EtiVerSen.1Version1.14
tag @a[tag=EtiVerSen.1Version1.15] remove EtiVerSen.1Version1.15
tag @a[tag=EtiVerSen.1Version1.16] remove EtiVerSen.1Version1.16
tag @a[tag=EtiVerSen.1Nachricht] remove EtiVerSen.1Nachricht

Variante 2[Bearbeiten | Quelltext bearbeiten]

Versionen-Sensor (Befehle) Bild 2.1.png Versionen-Sensor (Befehle) Bild 2.2.png

Dieser Versionen-Sensor kann Vollversionen und Entwicklungsversionen erfassen. Die entsprechende Version wird als Chat-Nachricht dem Spieler mitgeteilt.

Einschalten
  • Befehl 2.1 Es wird ein Punkte-Ziel erstellt, dass dafür verwendet wird um die Version des Spielers auszulesen und zu speichern.
Wiederholen
  • Befehl 2.2 Von Spielern die sich im Umkreis von 25 Blöcken um die Befehlsquelle befinden, wird der Versions-Zahlenwert ausgelesen und in ein Punktewert gespeichert.
  • Befehl 2.3 Falls der jeweilige Spieler keinen Zahlenwert aller bekannten Vollversionen besitzt und der Wert dennoch innerhalb der Versionen liegt, so muss es sich um eine Entwicklungsversion handeln. Dazu bekommt dann der Spieler ein Etikett um das zu markieren.
  • Befehl 2.4 Wenn der Spieler in einer der bekannten Vollversionen spielt, so wird das am entsprechenden Zahlenwert ermittelt. Sein Punktestand wird dann dynamisch auf den Wert der Version gesetzt, der später in der Chat-Nachricht wiederverwendet wird. Dies erfolgt für die 1.13, für 1.14[B2.5], für 1.15[B2.6] und für 1.16[B2.7].
  • Befehl 2.8 Wenn Spieler noch nicht die Nachricht erhalten haben und auch nicht in einer Entwicklungsversion spielen, so erhalten sie eine Chat-Nachricht mit der entsprechenden Version, sofern sie innerhalb des Versions-Zahlenbereich liegen.
  • Befehl 2.9 Wenn die Spieler das Etikett für Entwicklungsversionen besitzen, so wird ihnen stattdessen eine angepasste Chat-Nachricht mit entsprechender Version ausgegeben.
  • Befehl 2.10 Falls Spieler nicht innerhalb der bekannten Versionen spielen, so besitzen sie einen höheren Zahlenwert. Das führt dazu, dass sie eine andere Chat-Nachricht erhalten in der steht dass sie in einer neueren Version spielen.
  • Befehl 2.11 Damit die Chat-Nachrichten nur einmal bei Spielern auftauchen, wird ihnen als letztes ein Etikett gegeben, das dies verhindert.
Ausschalten
  • Befehl 2.12 Das Punkte-Ziel wird gelöscht und somit alle Zahlenwerte die damit vergeben wurden.
  • Befehl 2.13 Das Etikett für Nachrichten wird entfernt.
  • Befehl 2.14 Das Etikett für Entwicklungsversionen wird entfernt.

Befehlsblöcke mit Befehlen:
scoreboard objectives add PZVerSen.2Ver dummy ["Versionen-Sensor.2: ",{"text":"Version","bold":true}]


execute as @a[distance=..25,tag=!EtiVerSen.2Nachricht] store result score @s PZVerSen.2Ver run data get entity @s DataVersion
execute as @a[distance=..25,tag=!EtiVerSen.2Nachricht,scores={PZVerSen.2Ver=1444..2578}] unless entity @s[scores={PZVerSen.2Ver=1519}] unless entity @s[scores={PZVerSen.2Ver=1628}] unless entity @s[scores={PZVerSen.2Ver=1631}] unless entity @s[scores={PZVerSen.2Ver=1952}] unless entity @s[scores={PZVerSen.2Ver=1957}] unless entity @s[scores={PZVerSen.2Ver=1963}] unless entity @s[scores={PZVerSen.2Ver=1968}] unless entity @s[scores={PZVerSen.2Ver=1976}] unless entity @s[scores={PZVerSen.2Ver=2225}] unless entity @s[scores={PZVerSen.2Ver=2227}] unless entity @s[scores={PZVerSen.2Ver=2230}] unless entity @s[scores={PZVerSen.2Ver=2566..2567}] unless entity @s[scores={PZVerSen.2Ver=2578}] run tag @s add EtiVerSen.2Entwicklungsversion
scoreboard players set @a[tag=!EtiVerSen.2Nachricht,scores={PZVerSen.2Ver=1444..1631}] PZVerSen.2Ver 13
scoreboard players set @a[tag=!EtiVerSen.2Nachricht,scores={PZVerSen.2Ver=1901..1976}] PZVerSen.2Ver 14
scoreboard players set @a[tag=!EtiVerSen.2Nachricht,scores={PZVerSen.2Ver=2200..2230}] PZVerSen.2Ver 15
scoreboard players set @a[tag=!EtiVerSen.2Nachricht,scores={PZVerSen.2Ver=2504..2578}] PZVerSen.2Ver 16
execute as @a[tag=!EtiVerSen.2Nachricht,tag=!EtiVerSen.2Entwicklungsversion,scores={PZVerSen.2Ver=13..1443}] run tellraw @s ["Versionen-Sensor.2:\n",{"text":"Du spielst mit der Vollversion 1.","bold":true},{"score":{"name":"@s","objective":"PZVerSen.2Ver"},"bold":true},{"text":".x","bold":true} ]
execute as @a[tag=!EtiVerSen.2Nachricht,tag=EtiVerSen.2Entwicklungsversion,scores={PZVerSen.2Ver=13..1443}] run tellraw @s ["Versionen-Sensor.2:\n",{"text":"Du spielst mit einer Entwicklungsversion der Vollversion 1.","bold":true},{"score":{"name":"@s","objective":"PZVerSen.2Ver"},"bold":true},{"text":".x","bold":true} ]
tellraw @a[tag=!EtiVerSen.2Nachricht,scores={PZVerSen.2Ver=2579..}] ["Versionen-Sensor.2:\n",{"text":"Du spielst mit einer neueren Version als 1.16.x!","color":"red","bold":true} ]
tag @a[distance=..25,tag=!EtiVerSen.2Nachricht,scores={PZVerSen.2Ver=0..}] add EtiVerSen.2Nachricht


scoreboard objectives remove PZVerSen.2Ver
tag @a[tag=EtiVerSen.2Nachricht] remove EtiVerSen.2Nachricht
tag @a[tag=EtiVerSen.2Entwicklungsversion] remove EtiVerSen.2Entwicklungsversion


Disambig color.svg
 
Grid Grasblock.png
Auch im Minecraft Wiki wird das Thema dieser Technik behandelt:
Versionen#Version-IDs