• Bitte beachte, dass wir eine Serverliste sind!
    Wenn du ein Problem auf einem Server hast (z.B. Entbannantrag, etc), dann ist das Forum hier der falsche Ort.
  • Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Skript Hilfe

m4ts

Schafhirte
Registriert
26 Januar 2019
Beiträge
102
Diamanten
306
Javascript:
command /upgrade:
    trigger:
        make console execute command "617462781346 %player%"

command /617462781346 <player>:
    trigger:
        paste skematic "plugins\WorldEdit\schematics\f568d0c0-1014-4732-b205-4f4a609862fa\Couch.schematic" at location of arg-1

Das ist mein Skript, aber Skematic platziert die Schematic nicht. Es kommen keine Errors.
 

Malfrador

Threadripper
Registriert
16 Juni 2013
Beiträge
1.473
Diamanten
396
Minecraft
Malfrador
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.

Code:
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.
 

m4ts

Schafhirte
Registriert
26 Januar 2019
Beiträge
102
Diamanten
306
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.

Code:
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.
Danke ich hab zwei fragen

meinst du das macht kein sinn weil das mit den 30 sekunden ist ja doof

und bei fawe gibt es ja das problem das man /wea noch vorher machen muss für die region ist das dann auch weg
 

Malfrador

Threadripper
Registriert
16 Juni 2013
Beiträge
1.473
Diamanten
396
Minecraft
Malfrador
Danke ich hab zwei fragen

meinst du das macht kein sinn weil das mit den 30 sekunden ist ja doof

und bei fawe gibt es ja das problem das man /wea noch vorher machen muss für die region ist das dann auch weg
Ich hab es wie gesagt nur mit 1.13.2 und nicht der aktuellsten FAWE-Version probiert. Es ist ziemlich sicher ein Bug, wenn du Glück hast tritt er bei dir nicht auf.

Das mit /wea sollte eigentlich nicht nötig sein, da Skematic ja die FAWE-API nutzt und nicht als Spieler agiert.
 

m4ts

Schafhirte
Registriert
26 Januar 2019
Beiträge
102
Diamanten
306
Ich hab es wie gesagt nur mit 1.13.2 und nicht der aktuellsten FAWE-Version probiert. Es ist ziemlich sicher ein Bug, wenn du Glück hast tritt er bei dir nicht auf.

Das mit /wea sollte eigentlich nicht nötig sein, da Skematic ja die FAWE-API nutzt und nicht als Spieler agiert.

Ich hab da jetzt das in der Console:

Code:
[21:32:42 WARN]: [Skript] Plugin Skript v2.4 generated an exception while executing task 26
java.lang.NullPointerException: null
        at com.efnilite.skematic.objects.Schematic.<init>(Schematic.java:27) ~[?:?]
        at com.efnilite.skematic.elements.effects.EffSchematicLoad.execute(EffSchematicLoad.java:57) ~[?:?]
        at ch.njol.skript.util.AsyncEffect.access$0(AsyncEffect.java:1) ~[?:?]
        at ch.njol.skript.util.AsyncEffect$1.run(AsyncEffect.java:60) ~[?:?]
        at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftTask.run(CraftTask.java:76) ~[spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
        at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:52) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_241]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_241]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_241]
>
 
Oben