Das offizielle Minecraft Wiki twittert hier: Wiki-Twitter  –  Chatte im Wiki-Discord  – Noch keinen Server gefunden? Es gibt einen Wiki-Server

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

Die vorgestellte Technik kann in der Redstone-Welt angesehen werden.

Ein Versionen-Sensor erfasst die Minecraft-Version, die gerade gespielt wird und kann dementsprechend bestimmte Techniken, je nach Version, aktivieren. Die Minecraft-Version kann durch das Abfragen von bestimmten NBT-Daten erfasst werden. So kann man einfach, wenn der Spieler die Welt betritt, diesen überprüfen und schlussfolgern welche Version gerade gespielt wird. Auf Servern kann das besonders interessant werden, wenn eine Server-Welt mit mehreren Versionen betreten werden kann.

Inhaltsverzeichnis

Variante 1[Bearbeiten | Quelltext bearbeiten]

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

Dieser Sensor erfasst anhand der NBT-Daten die Version, dies erfolgt über EtikettenBefehl 1.1Befehl 1.2Befehl 1.3, welches nur dann gegeben wird, wenn die Version, die geprüft wird, übereinstimmt. Anschließend wird dem Spielern mitgeteilt, in welcher Version sie sich gerade befindenBefehl 1.4Befehl 1.5Befehl 1.6. Falls die Version nicht erkannt wird, bekommt der Spieler eine FehlermeldungBefehl 1.7. Damit diese Nachricht auch nur einmal an die Spieler versendet wird, sorgt ein Etikett dafür, das nach der Benachrichtigung der execute-Befehl die Spieler nicht noch ein zweites mal findetBefehl 1.8. Wenn man den Sensor ausschaltet, werden den Spielern die Etiketten entferntBefehl 1.9Befehl 1.10Befehl 1.11Befehl 1.12.


Befehlsblöcke mit Befehlen:
execute as @a[distance=..25,tag=!EtiVerSen.1Version1.13,tag=!EtiVerSen.1Nachricht] 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.1Version1.14,tag=!EtiVerSen.1Nachricht] 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.1Version1.15,tag=!EtiVerSen.1Nachricht] unless entity @s[nbt=!{DataVersion:2225},nbt=!{DataVersion:2227},nbt=!{DataVersion:2230}] run tag @s add EtiVerSen.1Version1.15
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.13,tag=!EtiVerSen.1Version1.14,tag=!EtiVerSen.1Version1.15] ["Versionen-Sensor.1:\n",{"text":"Die Version, mit der du spielst, wurde nicht erkannt","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.1Nachricht] remove EtiVerSen.1Nachricht

Variante 2[Bearbeiten | Quelltext bearbeiten]

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

Dieser Sensor erfasst mehrere Vollversionen und Entwicklungsversionen, dazu wird beim Einschalten ein Punktestand-Ziel angelegtBefehl 2.1, welches je nach erfassten Version den Spielern einen entsprechenden Wert zuweist. Hierbei wird erst die interne ID der Version abgefragtBefehl 2.2, geprüft, ob es sich um eine Entwicklungsversion handeltBefehl 2.3 und, falls nicht, für die Vollversionen samt Unterversionen der entsprechende Wert den Spielern zugewiesenBefehl 2.4Befehl 2.5Befehl 2.6 und anschließend als Nachricht ausgegebenBefehl 2.7Befehl 2.8. Sollte die Version neuer sein, bekommt der Spieler die entsprechende MeldungBefehl 2.9. Damit die Nachricht nur einmal auftaucht, wird allen Spielern ein Etikett im Anschluss gegebenBefehl 2.10. Damit ist die Prüfung der Version abgeschlossen. Wenn der Sensor wieder ausgeschaltet wird, so wird das Punktestand-Ziel gelöschtBefehl 2.11 (die Punktestände der Spieler werden dadurch ebenfalls gelöscht) und die Etiketten werden entferntBefehl 2.12Befehl 2.13.


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[tag=!EtiVerSen.2Nachricht,scores={PZVerSen.2Ver=1444..2230}] 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}] 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
execute as @a[tag=!EtiVerSen.2Nachricht,tag=!EtiVerSen.2Entwicklungsversion,scores={PZVerSen.2Ver=13..}] 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..}] 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=2231..}] ["Versionen-Sensor.2:\n",{"text":"Du spielst mit einer höheren Version als 1.15.x","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