1. Anstatt Befehle mit komplizierten Namen zu erstellen und auszuführen, gibt es eine viel einfachere und sinnvollere Methode, um bestimmte Code-Abschnitte auszuführen:
Functions
2. Um eine Schematic einzufügen, musst du diese zu erst mit
load schematic laden.
3. Speichere die Schematic mit /
/schem save <Name> -g. Damit wird sie global gespeichert, und nicht spezifisch auf dich als Spieler.
Fertig könnte das dann so aussehen: Ich habe eine Funktion (pasteBuilding) erstellt, die einfach nur aufgerufen wird. In der Funktion werden der Spieler und die Art der Schematic übergeben. Damit lässt sich die gleiche Funktion grundsätzlich auch für andere Möbel nutzen.
command /upgrade:
trigger:
pasteBuilding(player, "Couch")
function pasteBuilding(p: player, buildingType: text):
clear {buildingType::loaded}
if {_buildingType} is "Couch":
load schematic "plugins\FastAsyncWorldEdit\schematics\Couch.schem" as "loaded-schem" stored in {buildingType::loaded}
#if {_buildingType} is "Sessel":
#load schematic "plugins\FastAsyncWorldEdit\schematics\Sessel.schem" as "loaded-schem" stored in {buildingType::loaded}
paste schematic "loaded-schem" at {_p}
Auf den ersten Blick mag das if-Statement unnötig sein. Warum gebe ich nicht einfach die Variable direkt in den Pfad zur Schematic ein? Ganz simpler Grund: Geht nicht. Gibt eine NullPointerException, warum auch immer.
Ich möchte dabei anmerken, das Skematic nicht mehr aktiv weiterentwickelt wird: "Note that I stopped developing and up****** this plugin mainly due to FAWE and WorldEdit being a huge mess".
Mit 1.13.2 ist mir desweiteren aufgefallen, das das (asynchrone) einfügen der Schematic seeehr lange (30s Verzögerung) dauert & sie teilweise unsichtbar ist. Das mag mit anderen Versionen aber anders sein.